]> gcc.gnu.org Git - gcc.git/blob - gcc/testsuite/gcc.target/i386/pr71077.c
Fix folding of VECTOR_CST comparisons
[gcc.git] / gcc / testsuite / gcc.target / i386 / pr71077.c
1 /* { dg-do run } */
2 /* { dg-require-effective-target avx2 } */
3 /* { dg-options "-O3 -mavx2" } */
4
5 #include "avx2-check.h"
6
7 typedef unsigned int ui;
8 ui x[32*32];
9 ui y[32];
10 ui z[32];
11 void __attribute__ ((noinline, noclone)) foo (ui n, ui z)
12 {
13 ui i, b;
14 ui v;
15 for (i = 0; i< n; i++)
16 {
17 v = y[i];
18 if (v) {
19 for (b = 0; b < 32; b++)
20 if ((v >> b) & 1)
21 x[i*32 +b] = z;
22 y[i] = 0;
23 }
24 }
25 }
26
27 static void
28 avx2_test (void)
29 {
30 int i;
31 unsigned int val;
32 for (i = 0; i<32; i++)
33 {
34 val = 1U << i;
35 y[i] = (i & 1)? 0 : val;
36 z[i] = i;
37 }
38 foo (32, 10);
39 for (i=0; i<1024; i+=66)
40 if (x[i] != 10)
41 __builtin_abort ();
42 }
This page took 0.040897 seconds and 5 git commands to generate.