libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / vect-early-break_93.c
blob656a7788896d7c5da187990594a8c1d2e37284ae
1 /* { dg-add-options vect_early_break } */
2 /* { dg-require-effective-target vect_early_break_hw } */
3 /* { dg-require-effective-target vect_int } */
5 /* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" } } */
7 #include "tree-vect.h"
9 #ifndef N
10 #define N 30
11 #endif
13 #ifndef IDX
14 #define IDX 29
15 #endif
17 int n_earlyclobbers;
19 typedef void* rtx;
20 rtx reload_earlyclobbers[N] = {0};
22 rtx foo = (void*)0xbadf00d;
24 int
25 __attribute__((noinline, noipa))
26 earlyclobber_operand_p (rtx x)
28 int i;
30 for (i = 0; i < n_earlyclobbers; i++)
31 if (reload_earlyclobbers[i] == x)
32 return 1;
34 return 0;
37 extern void abort ();
39 int main ()
41 check_vect ();
43 n_earlyclobbers = IDX;
44 if (earlyclobber_operand_p (foo))
45 abort ();
47 return 0;