2 /* { dg-options "-O -fdump-tree-optimized-raw" } */
5 __attribute__((noinline,noclone)) \
6 int f##n(int A,int B){ \
11 __attribute__((noinline,noclone)) \
12 int g##n(int A,int B){ \
16 __attribute__((noinline,noclone)) \
17 int h##n(int A,int B){ \
22 __attribute__((noinline,noclone)) \
23 int i##n(int A,int B){ \
27 __attribute__((noinline,noclone)) \
28 int J##n(int A,int B){ \
33 __attribute__((noinline,noclone)) \
34 int k##n(int A,int B){ \
39 __attribute__((noinline,noclone)) \
40 int l##n(int A,int B){ \
44 __attribute__((noinline,noclone)) \
45 int m##n(int A,int B){ \
55 for(int A
= 0; A
<= 1; ++A
)
56 for(int B
= 0; B
<= 1; ++B
)
58 if (f0 (A
, B
) != f1 (A
, B
)) __builtin_abort();
59 if (g0 (A
, B
) != g1 (A
, B
)) __builtin_abort();
60 if (h0 (A
, B
) != h1 (A
, B
)) __builtin_abort();
61 if (i0 (A
, B
) != i1 (A
, B
)) __builtin_abort();
62 if (J0 (A
, B
) != J1 (A
, B
)) __builtin_abort();
63 if (k0 (A
, B
) != k1 (A
, B
)) __builtin_abort();
64 if (l0 (A
, B
) != l1 (A
, B
)) __builtin_abort();
65 if (m0 (A
, B
) != m1 (A
, B
)) __builtin_abort();
69 /* { dg-final { scan-tree-dump-times "bit_not_expr" 12 "optimized"} } */
70 /* { dg-final { scan-tree-dump-times "bit_and_expr" 9 "optimized"} } */
71 /* { dg-final { scan-tree-dump-times "bit_ior_expr" 10 "optimized"} } */
72 /* { dg-final { scan-tree-dump-times "bit_xor_expr" 9 "optimized"} } */