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