@@ -158,23 +158,41 @@ void template_test(double *List, int Length) {
158
158
for_template_constant_expression_test<double , 2 , 4 , 8 >(List, Length);
159
159
}
160
160
161
+ void vec_width_1 (int *List, int Length) {
162
+ // CHECK-LABEL: @{{.*}}vec_width_1{{.*}}(
163
+ // CHECK: br label {{.*}}, !llvm.loop ![[LOOP_15:.*]]
164
+
165
+ #pragma clang loop vectorize(enable) vectorize_width(1)
166
+ for (int i = 0 ; i < Length; i++)
167
+ List[i] = i * 2 ;
168
+ }
169
+
170
+ void width_1 (int *List, int Length) {
171
+ // CHECK-LABEL: @{{.*}}width_1{{.*}}(
172
+ // CHECK: br label {{.*}}, !llvm.loop ![[LOOP_16:.*]]
173
+
174
+ #pragma clang loop vectorize_width(1)
175
+ for (int i = 0 ; i < Length; i++)
176
+ List[i] = i * 2 ;
177
+ }
178
+
161
179
// CHECK: ![[LOOP_1]] = distinct !{![[LOOP_1]], ![[UNROLL_FULL:.*]]}
162
180
// CHECK: ![[UNROLL_FULL]] = !{!"llvm.loop.unroll.full"}
163
181
164
- // CHECK: ![[LOOP_2]] = distinct !{![[LOOP_2]], ![[UNROLL_DISABLE:.*]], ![[DISTRIBUTE_DISABLE:.*]], ![[WIDTH_8:.*]], ![[INTERLEAVE_4:.*]]}
182
+ // CHECK: ![[LOOP_2]] = distinct !{![[LOOP_2]], ![[UNROLL_DISABLE:.*]], ![[DISTRIBUTE_DISABLE:.*]], ![[VECTORIZE_ENABLE:.*]], ![[ WIDTH_8:.*]], ![[INTERLEAVE_4:.*]]}
165
183
// CHECK: ![[UNROLL_DISABLE]] = !{!"llvm.loop.unroll.disable"}
166
184
// CHECK: ![[DISTRIBUTE_DISABLE]] = !{!"llvm.loop.distribute.enable", i1 false}
185
+ // CHECK: ![[VECTORIZE_ENABLE]] = !{!"llvm.loop.vectorize.enable", i1 true}
167
186
// CHECK: ![[WIDTH_8]] = !{!"llvm.loop.vectorize.width", i32 8}
168
187
// CHECK: ![[INTERLEAVE_4]] = !{!"llvm.loop.interleave.count", i32 4}
169
188
170
- // CHECK: ![[LOOP_3]] = distinct !{![[LOOP_3]], ![[INTERLEAVE_4:.*]], ![[INTENABLE_1:.*]], ![[FOLLOWUP_VECTOR_3:.*]]}
171
- // CHECK: ![[INTENABLE_1]] = !{!"llvm.loop.vectorize.enable", i1 true}
189
+ // CHECK: ![[LOOP_3]] = distinct !{![[LOOP_3]], ![[INTERLEAVE_4:.*]], ![[VECTORIZE_ENABLE]], ![[FOLLOWUP_VECTOR_3:.*]]}
172
190
// CHECK: ![[FOLLOWUP_VECTOR_3]] = !{!"llvm.loop.vectorize.followup_all", ![[AFTER_VECTOR_3:.*]]}
173
191
// CHECK: ![[AFTER_VECTOR_3]] = distinct !{![[AFTER_VECTOR_3]], ![[ISVECTORIZED:.*]], ![[UNROLL_8:.*]]}
174
192
// CHECK: ![[ISVECTORIZED]] = !{!"llvm.loop.isvectorized"}
175
193
// CHECK: ![[UNROLL_8]] = !{!"llvm.loop.unroll.count", i32 8}
176
194
177
- // CHECK: ![[LOOP_4]] = distinct !{![[LOOP_4]], ![[WIDTH_2:.*]], ![[INTERLEAVE_2:.*]]}
195
+ // CHECK: ![[LOOP_4]] = distinct !{![[LOOP_4]], ![[VECTORIZE_ENABLE]], ![[ WIDTH_2:.*]], ![[INTERLEAVE_2:.*]]}
178
196
// CHECK: ![[WIDTH_2]] = !{!"llvm.loop.vectorize.width", i32 2}
179
197
// CHECK: ![[INTERLEAVE_2]] = !{!"llvm.loop.interleave.count", i32 2}
180
198
@@ -185,7 +203,7 @@ void template_test(double *List, int Length) {
185
203
// CHECK: ![[FOLLOWUP_VECTOR_6]] = !{!"llvm.loop.vectorize.followup_all", ![[AFTER_VECTOR_6:.*]]}
186
204
// CHECK: ![[AFTER_VECTOR_6]] = distinct !{![[AFTER_VECTOR_6]], ![[ISVECTORIZED:.*]], ![[UNROLL_8:.*]]}
187
205
188
- // CHECK: ![[LOOP_7]] = distinct !{![[LOOP_7]], ![[WIDTH_5:.*]]}
206
+ // CHECK: ![[LOOP_7]] = distinct !{![[LOOP_7]], ![[VECTORIZE_ENABLE]], ![[ WIDTH_5:.*]]}
189
207
// CHECK: ![[WIDTH_5]] = !{!"llvm.loop.vectorize.width", i32 5}
190
208
191
209
// CHECK: ![[LOOP_8]] = distinct !{![[LOOP_8]], ![[WIDTH_5:.*]]}
@@ -213,5 +231,9 @@ void template_test(double *List, int Length) {
213
231
// CHECK: ![[AFTER_VECTOR_13]] = distinct !{![[AFTER_VECTOR_13]], ![[ISVECTORIZED:.*]], ![[UNROLL_32:.*]]}
214
232
// CHECK: ![[UNROLL_32]] = !{!"llvm.loop.unroll.count", i32 32}
215
233
216
- // CHECK: ![[LOOP_14]] = distinct !{![[LOOP_14]], ![[WIDTH_10:.*]]}
234
+ // CHECK: ![[LOOP_14]] = distinct !{![[LOOP_14]], ![[VECTORIZE_ENABLE]], ![[ WIDTH_10:.*]]}
217
235
// CHECK: ![[WIDTH_10]] = !{!"llvm.loop.vectorize.width", i32 10}
236
+
237
+ // CHECK: ![[LOOP_15]] = distinct !{![[LOOP_15]], ![[WIDTH_1]], ![[VECTORIZE_ENABLE]]}
238
+
239
+ // CHECK-NEXT: ![[LOOP_16]] = distinct !{![[LOOP_16]], ![[VECTORIZE_ENABLE]], ![[WIDTH_1]]}
0 commit comments