1 /* { dg-do link } */
2 /* { dg-options "-O2 -fdump-ipa-icf -flto -fdump-tree-optimized" } */
3 /* { dg-require-effective-target lto } */
4 /* { dg-additional-sources "ipa-icf-38a.c" }*/
5 
6 /* Based on ipa-icf-3.c.  */
7 
8 typedef int v4si __attribute__ ((vector_size (16)));
9 
10 __attribute__ ((noinline))
foo(void)11 int foo(void)
12 {
13   v4si a = {1,2,3,4};
14   v4si b = {3,2,1,4};
15   v4si c;
16 
17   return 54;
18 }
19 
20 extern int bar(void);
21 
main()22 int main()
23 {
24   int volatile a = foo();
25   int volatile b = bar();
26 
27   return 0;
28 }
29 
30 /* { dg-final { scan-wpa-ipa-dump "Semantic equality hit:foo->bar" "icf"  } } */
31 /* { dg-final { scan-wpa-ipa-dump "Equal symbols: 1" "icf"  } } */
32 /* { dg-final { scan-ltrans-tree-dump "Function foo" "optimized" } } */
33 /* { dg-final { scan-ltrans-tree-dump-not "Function bar" "optimized" } } */
34