1 /* { dg-require-effective-target vect_cond_mixed } */
6 float a[N], b[N], c[N], d[N];
10 __attribute__((noinline, noclone)) void
14 for (i = 0; i < N; ++i)
16 unsigned int x = a[i] < b[i] ? -1 : 0;
17 unsigned int y = c[i] < d[i] ? -1 : 0;
22 __attribute__((noinline, noclone)) void
26 for (i = 0; i < N; ++i)
34 __attribute__((noinline, noclone)) void
38 for (i = 0; i < N; ++i)
39 j[i] = (a[i] < b[i]) & (c[i] < d[i]);
42 __attribute__((noinline, noclone)) void
46 for (i = 0; i < N; ++i)
54 __attribute__((noinline, noclone)) void
58 for (i = 0; i < N; ++i)
59 k[i] = (a[i] < b[i]) & (c[i] < d[i]);
62 __attribute__((noinline, noclone)) void
66 for (i = 0; i < N; ++i)
68 unsigned int x = a[i] < b[i] ? -1 : 0;
69 unsigned int y = c[i] < d[i] ? -1 : 0;
74 __attribute__((noinline, noclone)) void
78 for (i = 0; i < N; ++i)
86 __attribute__((noinline, noclone)) void
90 for (i = 0; i < N; ++i)
91 j[i] = (a[i] < b[i]) | (c[i] < d[i]);
94 __attribute__((noinline, noclone)) void
98 for (i = 0; i < N; ++i)
106 __attribute__((noinline, noclone)) void
110 for (i = 0; i < N; ++i)
111 k[i] = (a[i] < b[i]) | (c[i] < d[i]);
121 for (i = 0; i < N; i++)
125 case 0: asm (""); a[i] = - i - 1; b[i] = i + 1; break;
126 case 1: a[i] = 0; b[i] = 0; break;
127 case 2: a[i] = i + 1; b[i] = - i - 1; break;
128 case 3: a[i] = i; b[i] = i + 7; break;
129 case 4: a[i] = i; b[i] = i; break;
130 case 5: a[i] = i + 16; b[i] = i + 3; break;
131 case 6: a[i] = - i - 5; b[i] = - i; break;
132 case 7: a[i] = - i; b[i] = - i; break;
133 case 8: a[i] = - i; b[i] = - i - 7; break;
136 for (i = 0; i < N; i++)
140 case 0: c[i] = a[i / 9]; d[i] = b[i / 9]; break;
141 case 1: c[i] = a[i / 9 + 3]; d[i] = b[i / 9 + 3]; break;
142 case 2: c[i] = a[i / 9 + 6]; d[i] = b[i / 9 + 6]; break;
146 for (i = 0; i < N; i++)
147 if (j[i] != ((i % 3) == 0 && ((i / 9) % 3) == 0))
149 __builtin_memset (j, -6, sizeof (j));
151 for (i = 0; i < N; i++)
152 if (j[i] != ((i % 3) == 0 && ((i / 9) % 3) == 0))
154 __builtin_memset (j, -6, sizeof (j));
156 for (i = 0; i < N; i++)
157 if (j[i] != ((i % 3) == 0 && ((i / 9) % 3) == 0))
159 __builtin_memset (j, -6, sizeof (j));
161 for (i = 0; i < N; i++)
162 if (k[i] != ((i % 3) == 0 && ((i / 9) % 3) == 0))
164 __builtin_memset (k, -6, sizeof (k));
166 for (i = 0; i < N; i++)
167 if (k[i] != ((i % 3) == 0 && ((i / 9) % 3) == 0))
169 __builtin_memset (k, -6, sizeof (k));
171 for (i = 0; i < N; i++)
172 if (j[i] != ((i % 3) == 0 || ((i / 9) % 3) == 0))
174 __builtin_memset (j, -6, sizeof (j));
176 for (i = 0; i < N; i++)
177 if (j[i] != ((i % 3) == 0 || ((i / 9) % 3) == 0))
179 __builtin_memset (j, -6, sizeof (j));
181 for (i = 0; i < N; i++)
182 if (j[i] != ((i % 3) == 0 || ((i / 9) % 3) == 0))
184 __builtin_memset (j, -6, sizeof (j));
186 for (i = 0; i < N; i++)
187 if (k[i] != ((i % 3) == 0 || ((i / 9) % 3) == 0))
189 __builtin_memset (k, -6, sizeof (k));
191 for (i = 0; i < N; i++)
192 if (k[i] != ((i % 3) == 0 || ((i / 9) % 3) == 0))
194 __builtin_memset (k, -6, sizeof (k));
199 /* { dg-final { scan-tree-dump-times "note: vectorized 1 loops" 10 "vect" } } */
200 /* { dg-final { cleanup-tree-dump "vect" } } */