2018-05-15 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / ipa / ipa-icf-5.c
blobb2d48f9d79dffbfc7e82008c283015b50d300395
1 /* { dg-do compile { target c99_runtime } } */
2 /* { dg-options "-O2 -fdump-ipa-icf" } */
3 /* { dg-add-options c99_runtime } */
5 #include <complex.h>
7 static double test;
9 __attribute__ ((noinline))
10 double f1(void)
12 double complex z1 = 1.0 + 3.0 * I;
13 double complex z2 = 1.0 - 4.0 * I;
15 unsigned a = 123;
16 unsigned b = 321;
18 if (a & b)
19 return 1.2f;
21 if(cimag(z1) > 1)
22 return 1.0f;
24 test = cimag(z1) + 2;
26 return cimag(z1 + z2);
29 __attribute__ ((noinline))
30 double f2(void)
32 double complex z1 = 1.0 + 3.0 * I;
33 double complex z2 = 1.0 - 4.0 * I;
35 unsigned a = 123;
36 unsigned b = 321;
38 if (a & b)
39 return 1.2f;
41 if(cimag(z1) > 1)
42 return 1.0f;
44 test = cimag(z1) + 2;
46 return cimag(z1 + z2);
49 int main()
51 return 1;
54 /* { dg-final { scan-ipa-dump "Semantic equality hit:f1->f2" "icf" } } */
55 /* { dg-final { scan-ipa-dump "Equal symbols: 1" "icf" } } */