1 /* { dg-require-effective-target vect_cond_mixed } */
2 /* { dg-require-effective-target vect_float } */
3 /* { dg-additional-options "-fno-ipa-icf" } */
8 float a
[N
], b
[N
], c
[N
], d
[N
];
11 __attribute__((noinline
, noclone
)) void
15 for (i
= 0; i
< N
; ++i
)
23 __attribute__((noinline
, noclone
)) void
27 for (i
= 0; i
< N
; ++i
)
28 k
[i
] = (a
[i
] < b
[i
]) & (c
[i
] < d
[i
]);
31 __attribute__((noinline
, noclone
)) void
35 for (i
= 0; i
< N
; ++i
)
43 __attribute__((noinline
, noclone
)) void
47 for (i
= 0; i
< N
; ++i
)
48 k
[i
] = (a
[i
] < b
[i
]) | (c
[i
] < d
[i
]);
51 __attribute__((noinline
, noclone
)) void
55 for (i
= 0; i
< N
; ++i
)
63 __attribute__((noinline
, noclone
)) void
67 for (i
= 0; i
< N
; ++i
)
68 p
[i
] = (a
[i
] < b
[i
]) & (c
[i
] < d
[i
]);
71 __attribute__((noinline
, noclone
)) void
75 for (i
= 0; i
< N
; ++i
)
83 __attribute__((noinline
, noclone
)) void
87 for (i
= 0; i
< N
; ++i
)
88 p
[i
] = (a
[i
] < b
[i
]) | (c
[i
] < d
[i
]);
98 for (i
= 0; i
< N
; i
++)
102 case 0: asm (""); a
[i
] = - i
- 1; b
[i
] = i
+ 1; break;
103 case 1: a
[i
] = 0; b
[i
] = 0; break;
104 case 2: a
[i
] = i
+ 1; b
[i
] = - i
- 1; break;
105 case 3: a
[i
] = i
; b
[i
] = i
+ 7; break;
106 case 4: a
[i
] = i
; b
[i
] = i
; break;
107 case 5: a
[i
] = i
+ 16; b
[i
] = i
+ 3; break;
108 case 6: a
[i
] = - i
- 5; b
[i
] = - i
; break;
109 case 7: a
[i
] = - i
; b
[i
] = - i
; break;
110 case 8: a
[i
] = - i
; b
[i
] = - i
- 7; break;
113 for (i
= 0; i
< N
; i
++)
117 case 0: c
[i
] = a
[i
/ 9]; d
[i
] = b
[i
/ 9]; break;
118 case 1: c
[i
] = a
[i
/ 9 + 3]; d
[i
] = b
[i
/ 9 + 3]; break;
119 case 2: c
[i
] = a
[i
/ 9 + 6]; d
[i
] = b
[i
/ 9 + 6]; break;
124 for (i
= 0; i
< N
; i
++)
125 if (k
[i
] != ((i
% 3) == 0 && ((i
/ 9) % 3) == 0))
127 __builtin_memset (k
, 0, sizeof (k
));
130 for (i
= 0; i
< N
; i
++)
131 if (k
[i
] != ((i
% 3) == 0 && ((i
/ 9) % 3) == 0))
133 __builtin_memset (k
, 0, sizeof (k
));
136 for (i
= 0; i
< N
; i
++)
137 if (k
[i
] != ((i
% 3) == 0 || ((i
/ 9) % 3) == 0))
139 __builtin_memset (k
, 0, sizeof (k
));
142 for (i
= 0; i
< N
; i
++)
143 if (k
[i
] != ((i
% 3) == 0 || ((i
/ 9) % 3) == 0))
145 __builtin_memset (k
, 0, sizeof (k
));
148 for (i
= 0; i
< N
; i
++)
149 if (k
[i
] != ((i
% 3) == 0 && ((i
/ 9) % 3) == 0))
151 __builtin_memset (k
, 0, sizeof (k
));
154 for (i
= 0; i
< N
; i
++)
155 if (k
[i
] != ((i
% 3) == 0 && ((i
/ 9) % 3) == 0))
157 __builtin_memset (k
, 0, sizeof (k
));
160 for (i
= 0; i
< N
; i
++)
161 if (k
[i
] != ((i
% 3) == 0 || ((i
/ 9) % 3) == 0))
163 __builtin_memset (k
, 0, sizeof (k
));
166 for (i
= 0; i
< N
; i
++)
167 if (k
[i
] != ((i
% 3) == 0 || ((i
/ 9) % 3) == 0))
169 __builtin_memset (k
, 0, sizeof (k
));
174 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 8 "vect" } } */