1/* { dg-do compile } */ 2/* { dg-options "-fopenmp -fdump-tree-optimized -O3" } */ 3 4/* Test that functions that have SIMD clone counterparts are not 5 cloned by IPA-cp. For example, special_add() below has SIMD clones 6 created for it. However, if IPA-cp later decides to clone a 7 specialization of special_add(x, 666) when analyzing fillit(), we 8 will forever keep the vectorizer from using the SIMD versions of 9 special_add in a loop. 10 11 If IPA-CP gets taught how to adjust the SIMD clones as well, this 12 test could be removed. */ 13 14#pragma omp declare simd simdlen(4) 15static int __attribute__ ((noinline)) 16special_add (int x, int y) 17{ 18 if (y == 666) 19 return x + y + 123; 20 else 21 return x + y; 22} 23 24void fillit(int *tot) 25{ 26 int i; 27 28 for (i=0; i < 10000; ++i) 29 tot[i] = special_add (i, 666); 30} 31 32/* { dg-final { scan-tree-dump-not "special_add.constprop" "optimized" } } */ 33/* { dg-final { cleanup-tree-dump "optimized" } } */ 34