1 /* { dg-require-effective-target vect_cond_mixed } */
6 float a[N], b[N], c[N];
10 __attribute__((noinline, noclone)) void
14 for (i = 0; i < N; ++i)
15 k[i] = a[i] < b[i] ? 17 : 0;
18 __attribute__((noinline, noclone)) void
22 for (i = 0; i < N; ++i)
23 k[i] = a[i] < b[i] ? 0 : 24;
26 __attribute__((noinline, noclone)) void
30 for (i = 0; i < N; ++i)
31 k[i] = a[i] < b[i] ? 51 : 12;
34 __attribute__((noinline, noclone)) void
38 for (i = 0; i < N; ++i)
40 int d2 = d[i], e2 = e[i];
41 f[i] = a[i] < b[i] ? d2 : e2;
45 __attribute__((noinline, noclone)) void
49 for (i = 0; i < N; ++i)
51 float a2 = a[i], b2 = b[i];
52 c[i] = d[i] < e[i] ? a2 : b2;
63 for (i = 0; i < N; i++)
67 case 0: asm (""); a[i] = - i - 1; b[i] = i + 1; break;
68 case 1: a[i] = 0; b[i] = 0; break;
69 case 2: a[i] = i + 1; b[i] = - i - 1; break;
70 case 3: a[i] = i; b[i] = i + 7; break;
71 case 4: a[i] = i; b[i] = i; break;
72 case 5: a[i] = i + 16; b[i] = i + 3; break;
73 case 6: a[i] = - i - 5; b[i] = - i; break;
74 case 7: a[i] = - i; b[i] = - i; break;
75 case 8: a[i] = - i; b[i] = - i - 7; break;
81 for (i = 0; i < N; i++)
82 if (k[i] != ((i % 3) == 0 ? 17 : 0))
85 for (i = 0; i < N; i++)
86 if (k[i] != ((i % 3) == 0 ? 0 : 24))
89 for (i = 0; i < N; i++)
90 if (k[i] != ((i % 3) == 0 ? 51 : 12))
93 for (i = 0; i < N; i++)
94 if (f[i] != ((i % 3) == 0 ? d[i] : e[i]))
96 for (i = 0; i < N; i++)
100 case 0: asm (""); d[i] = - i - 1; e[i] = i + 1; break;
101 case 1: d[i] = 0; e[i] = 0; break;
102 case 2: d[i] = i + 1; e[i] = - i - 1; break;
103 case 3: d[i] = i; e[i] = i + 7; break;
104 case 4: d[i] = i; e[i] = i; break;
105 case 5: d[i] = i + 16; e[i] = i + 3; break;
106 case 6: d[i] = - i - 5; e[i] = - i; break;
107 case 7: d[i] = - i; e[i] = - i; break;
108 case 8: d[i] = - i; e[i] = - i - 7; break;
114 for (i = 0; i < N; i++)
115 if (c[i] != ((i % 3) == 0 ? a[i] : b[i]))
121 /* { dg-final { scan-tree-dump-times "note: vectorized 1 loops" 5 "vect" } } */
122 /* { dg-final { cleanup-tree-dump "vect" } } */