/* { dg-do compile } */ | |
/* { dg-options "-O2 -fdump-rtl-reload-details" } */ | |
#define R1(X, Y) X (Y##0) X (Y##1) X (Y##2) X (Y##3) \ | |
X (Y##4) X (Y##5) X (Y##6) X (Y##7) | |
#define R2(X) R1 (X, 0) R1 (X, 1) R1 (X, 2) R1 (X, 3) | |
#define DEFINE(N) extern int x##N; | |
R2 (DEFINE) | |
void b1 (int *); | |
void | |
foo (int n) | |
{ | |
for (int i = 0; i < n; ++i) | |
{ | |
#define CALL(N) b1 (&x##N); | |
R2 (CALL); | |
R2 (CALL); | |
} | |
#define INC(N) x##N += 1; | |
R2 (INC); | |
} | |
/* { dg-final { scan-rtl-dump-not "DI 32 v0" "reload" } } */ |