1 /* { dg-require-effective-target vect_condition } */
9 __attribute__((noinline
, noclone
)) void
13 for (i
= 0; i
< N
/4; i
++)
15 k
[4*i
] = a
[4*i
] < b
[4*i
] ? 17 : 0;
16 k
[4*i
+1] = a
[4*i
+1] < b
[4*i
+1] ? 17 : 0;
17 k
[4*i
+2] = a
[4*i
+2] < b
[4*i
+2] ? 17 : 0;
18 k
[4*i
+3] = a
[4*i
+3] < b
[4*i
+3] ? 17 : 0;
22 __attribute__((noinline
, noclone
)) void
26 for (i
= 0; i
< N
/2; ++i
)
28 k
[2*i
] = a
[2*i
] < b
[2*i
] ? 0 : 24;
29 k
[2*i
+1] = a
[2*i
+1] < b
[2*i
+1] ? 7 : 4;
33 __attribute__((noinline
, noclone
)) void
37 for (i
= 0; i
< N
/2; ++i
)
39 k
[2*i
] = a
[2*i
] < b
[2*i
] ? 51 : 12;
40 k
[2*i
+1] = a
[2*i
+1] > b
[2*i
+1] ? 51 : 12;
44 __attribute__((noinline
, noclone
)) void
48 for (i
= 0; i
< N
/2; ++i
)
50 int d0
= d
[2*i
], e0
= e
[2*i
];
51 int d1
= d
[2*i
+1], e1
= e
[2*i
+1];
52 k
[2*i
] = a
[2*i
] >= b
[2*i
] ? d0
: e0
;
53 k
[2*i
+1] = a
[2*i
+1] >= b
[2*i
+1] ? d1
: e1
;
64 for (i
= 0; i
< N
; i
++)
68 case 0: asm (""); a
[i
] = - i
- 1; b
[i
] = i
+ 1; break;
69 case 1: a
[i
] = 0; b
[i
] = 0; break;
70 case 2: a
[i
] = i
+ 1; b
[i
] = - i
- 1; break;
71 case 3: a
[i
] = i
; b
[i
] = i
+ 7; break;
72 case 4: a
[i
] = i
; b
[i
] = i
; break;
73 case 5: a
[i
] = i
+ 16; b
[i
] = i
+ 3; break;
74 case 6: a
[i
] = - i
- 5; b
[i
] = - i
; break;
75 case 7: a
[i
] = - i
; b
[i
] = - i
; break;
76 case 8: a
[i
] = - i
; b
[i
] = - i
- 7; break;
83 for (i
= 0; i
< N
; i
++)
84 if (k
[i
] != ((i
% 3) == 0 ? 17 : 0))
89 for (i
= 0; i
< N
; i
++)
95 if (k
[i
] != ((i
/9 % 2) == 0 ? 0 : 7))
101 if (k
[i
] != ((i
/9 % 2) == 0 ? 4 : 24))
107 if (k
[i
] != ((i
/9 % 2) == 0 ? 24 : 4))
111 if (k
[i
] != ((i
/9 % 2) == 0 ? 7 : 0))
121 for (i
= 0; i
< N
; i
++)
122 if (k
[i
] != ((i
% 3) == 0 ? e
[i
] : d
[i
]))
128 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 4 "vect" { target { ! vect_load_lanes } } } } */
129 /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "vect" { target { vect_load_lanes } } } } */