libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / pr96779.c
blob03618bf81d27636d6fbc1d26343f45e0235dda00
1 /* PR tree-optimization/96779 */
2 /* { dg-do run } */
3 /* { dg-options "-O -fdump-tree-optimized" } */
4 /* { dg-require-effective-target int32plus } */
6 #include <stdbool.h>
8 bool __attribute__ ((noipa)) f_func(int a)
10 return -a == a;
13 bool __attribute__ ((noipa)) h_func(short a)
15 return -a == a;
18 bool __attribute__ ((noipa)) k_func(long a)
20 return -a == a;
23 int
24 main (void)
26 // few randomly generated test cases
27 if (f_func (71856034))
29 __builtin_abort ();
31 if (f_func (71856034))
33 __builtin_abort ();
35 if (h_func (1744))
37 __builtin_abort ();
39 if (k_func (68268386))
41 __builtin_abort ();
43 if (f_func (-112237))
45 __builtin_abort ();
47 if (f_func (-787116))
49 __builtin_abort ();
51 if (h_func (-863))
53 __builtin_abort ();
55 if (k_func (-787116))
57 __builtin_abort ();
59 if (!f_func (0))
61 __builtin_abort ();
63 if (!f_func (0))
65 __builtin_abort ();
67 if (!h_func (0))
69 __builtin_abort ();
71 if (!k_func (0))
73 __builtin_abort ();
76 return 0;
79 /* Verify that we transfered to "= -" pattern from "_2 = -_1;". */
80 /* { dg-final { scan-tree-dump-not "= -" "optimized" } } */