1 /* { dg-do compile { target { ! ia32 } } } */
2 /* { dg-require-effective-target maybe_x32 } */
3 /* { dg-options "-maddress-mode=short -mx32 -Ofast -funroll-loops -march=haswell" } */
4 /* { dg-final { scan-assembler-not "\tvgather" } } */
5 /* { dg-final { scan-assembler "addr32 vgather" } } */
6
7 void foo (void);
8
9 extern float *ncost;
10
11 float
bar(int type,int num)12 bar (int type, int num)
13 {
14 int i;
15 float cost;
16
17 cost = 0;
18 for (i = 0; i < num; i++)
19 if (type)
20 cost += ncost[i];
21 else
22 foo ();
23 return (cost);
24 }
25