@@ -79,7 +79,7 @@ define void @vp_smax(ptr %a, ptr %b, ptr %c, i64 %N) {
79
79
; IF-EVL-NEXT: store i32 [[DOT]], ptr [[GEP11]], align 4
80
80
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
81
81
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
82
- ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP3 :![0-9]+]]
82
+ ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP4 :![0-9]+]]
83
83
; IF-EVL: [[EXIT]]:
84
84
; IF-EVL-NEXT: ret void
85
85
;
@@ -176,7 +176,7 @@ define void @vp_smin(ptr %a, ptr %b, ptr %c, i64 %N) {
176
176
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP18]], [[EVL_BASED_IV]]
177
177
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP8]]
178
178
; IF-EVL-NEXT: [[TMP19:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
179
- ; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP4 :![0-9]+]]
179
+ ; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP5 :![0-9]+]]
180
180
; IF-EVL: [[MIDDLE_BLOCK]]:
181
181
; IF-EVL-NEXT: br label %[[EXIT:.*]]
182
182
; IF-EVL: [[SCALAR_PH]]:
@@ -193,7 +193,7 @@ define void @vp_smin(ptr %a, ptr %b, ptr %c, i64 %N) {
193
193
; IF-EVL-NEXT: store i32 [[DOT]], ptr [[GEP11]], align 4
194
194
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
195
195
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
196
- ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP5 :![0-9]+]]
196
+ ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP6 :![0-9]+]]
197
197
; IF-EVL: [[EXIT]]:
198
198
; IF-EVL-NEXT: ret void
199
199
;
@@ -290,7 +290,7 @@ define void @vp_umax(ptr %a, ptr %b, ptr %c, i64 %N) {
290
290
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP18]], [[EVL_BASED_IV]]
291
291
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP8]]
292
292
; IF-EVL-NEXT: [[TMP19:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
293
- ; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP6 :![0-9]+]]
293
+ ; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP7 :![0-9]+]]
294
294
; IF-EVL: [[MIDDLE_BLOCK]]:
295
295
; IF-EVL-NEXT: br label %[[EXIT:.*]]
296
296
; IF-EVL: [[SCALAR_PH]]:
@@ -307,7 +307,7 @@ define void @vp_umax(ptr %a, ptr %b, ptr %c, i64 %N) {
307
307
; IF-EVL-NEXT: store i32 [[DOT]], ptr [[GEP11]], align 4
308
308
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
309
309
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
310
- ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP7 :![0-9]+]]
310
+ ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP8 :![0-9]+]]
311
311
; IF-EVL: [[EXIT]]:
312
312
; IF-EVL-NEXT: ret void
313
313
;
@@ -404,7 +404,7 @@ define void @vp_umin(ptr %a, ptr %b, ptr %c, i64 %N) {
404
404
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP18]], [[EVL_BASED_IV]]
405
405
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP8]]
406
406
; IF-EVL-NEXT: [[TMP19:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
407
- ; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP8 :![0-9]+]]
407
+ ; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP9 :![0-9]+]]
408
408
; IF-EVL: [[MIDDLE_BLOCK]]:
409
409
; IF-EVL-NEXT: br label %[[EXIT:.*]]
410
410
; IF-EVL: [[SCALAR_PH]]:
@@ -421,7 +421,7 @@ define void @vp_umin(ptr %a, ptr %b, ptr %c, i64 %N) {
421
421
; IF-EVL-NEXT: store i32 [[DOT]], ptr [[GEP11]], align 4
422
422
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
423
423
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
424
- ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP9 :![0-9]+]]
424
+ ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP10 :![0-9]+]]
425
425
; IF-EVL: [[EXIT]]:
426
426
; IF-EVL-NEXT: ret void
427
427
;
@@ -510,7 +510,7 @@ define void @vp_ctlz(ptr %a, ptr %b, i64 %N) {
510
510
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP16]], [[EVL_BASED_IV]]
511
511
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP8]]
512
512
; IF-EVL-NEXT: [[TMP17:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
513
- ; IF-EVL-NEXT: br i1 [[TMP17]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP10 :![0-9]+]]
513
+ ; IF-EVL-NEXT: br i1 [[TMP17]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP11 :![0-9]+]]
514
514
; IF-EVL: [[MIDDLE_BLOCK]]:
515
515
; IF-EVL-NEXT: br label %[[EXIT:.*]]
516
516
; IF-EVL: [[SCALAR_PH]]:
@@ -525,7 +525,7 @@ define void @vp_ctlz(ptr %a, ptr %b, i64 %N) {
525
525
; IF-EVL-NEXT: store i32 [[TMP19]], ptr [[GEP3]], align 4
526
526
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
527
527
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
528
- ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP11 :![0-9]+]]
528
+ ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP12 :![0-9]+]]
529
529
; IF-EVL: [[EXIT]]:
530
530
; IF-EVL-NEXT: ret void
531
531
;
@@ -609,7 +609,7 @@ define void @vp_cttz(ptr %a, ptr %b, i64 %N) {
609
609
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP20]], [[EVL_BASED_IV]]
610
610
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP12]]
611
611
; IF-EVL-NEXT: [[TMP21:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
612
- ; IF-EVL-NEXT: br i1 [[TMP21]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP12 :![0-9]+]]
612
+ ; IF-EVL-NEXT: br i1 [[TMP21]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP13 :![0-9]+]]
613
613
; IF-EVL: [[MIDDLE_BLOCK]]:
614
614
; IF-EVL-NEXT: br label %[[EXIT:.*]]
615
615
; IF-EVL: [[SCALAR_PH]]:
@@ -624,7 +624,7 @@ define void @vp_cttz(ptr %a, ptr %b, i64 %N) {
624
624
; IF-EVL-NEXT: store i32 [[TMP23]], ptr [[GEP3]], align 4
625
625
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
626
626
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
627
- ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP13 :![0-9]+]]
627
+ ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP14 :![0-9]+]]
628
628
; IF-EVL: [[EXIT]]:
629
629
; IF-EVL-NEXT: ret void
630
630
;
@@ -711,7 +711,7 @@ define void @vp_lrint(ptr %a, ptr %b, i64 %N) {
711
711
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP18]], [[EVL_BASED_IV]]
712
712
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP8]]
713
713
; IF-EVL-NEXT: [[TMP19:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
714
- ; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP14 :![0-9]+]]
714
+ ; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP15 :![0-9]+]]
715
715
; IF-EVL: [[MIDDLE_BLOCK]]:
716
716
; IF-EVL-NEXT: br label %[[EXIT:.*]]
717
717
; IF-EVL: [[SCALAR_PH]]:
@@ -728,7 +728,7 @@ define void @vp_lrint(ptr %a, ptr %b, i64 %N) {
728
728
; IF-EVL-NEXT: store i32 [[CONV3]], ptr [[GEP5]], align 4
729
729
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
730
730
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
731
- ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP15 :![0-9]+]]
731
+ ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP16 :![0-9]+]]
732
732
; IF-EVL: [[EXIT]]:
733
733
; IF-EVL-NEXT: ret void
734
734
;
@@ -819,7 +819,7 @@ define void @vp_llrint(ptr %a, ptr %b, i64 %N) {
819
819
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP18]], [[EVL_BASED_IV]]
820
820
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP8]]
821
821
; IF-EVL-NEXT: [[TMP19:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
822
- ; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP16 :![0-9]+]]
822
+ ; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP17 :![0-9]+]]
823
823
; IF-EVL: [[MIDDLE_BLOCK]]:
824
824
; IF-EVL-NEXT: br label %[[EXIT:.*]]
825
825
; IF-EVL: [[SCALAR_PH]]:
@@ -836,7 +836,7 @@ define void @vp_llrint(ptr %a, ptr %b, i64 %N) {
836
836
; IF-EVL-NEXT: store i32 [[CONV3]], ptr [[GEP5]], align 4
837
837
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
838
838
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
839
- ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP17 :![0-9]+]]
839
+ ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP18 :![0-9]+]]
840
840
; IF-EVL: [[EXIT]]:
841
841
; IF-EVL-NEXT: ret void
842
842
;
@@ -925,7 +925,7 @@ define void @vp_abs(ptr %a, ptr %b, i64 %N) {
925
925
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP16]], [[EVL_BASED_IV]]
926
926
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP8]]
927
927
; IF-EVL-NEXT: [[TMP17:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
928
- ; IF-EVL-NEXT: br i1 [[TMP17]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP18 :![0-9]+]]
928
+ ; IF-EVL-NEXT: br i1 [[TMP17]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP19 :![0-9]+]]
929
929
; IF-EVL: [[MIDDLE_BLOCK]]:
930
930
; IF-EVL-NEXT: br label %[[EXIT:.*]]
931
931
; IF-EVL: [[SCALAR_PH]]:
@@ -940,7 +940,7 @@ define void @vp_abs(ptr %a, ptr %b, i64 %N) {
940
940
; IF-EVL-NEXT: store i32 [[COND]], ptr [[GEP9]], align 4
941
941
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
942
942
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
943
- ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP19 :![0-9]+]]
943
+ ; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP20 :![0-9]+]]
944
944
; IF-EVL: [[EXIT]]:
945
945
; IF-EVL-NEXT: ret void
946
946
;
@@ -1046,24 +1046,25 @@ declare i64 @llvm.lrint.i64.f64(double)
1046
1046
declare i64 @llvm.llrint.i64.f64 (double )
1047
1047
declare i32 @llvm.abs.i32 (i32 , i1 immarg)
1048
1048
;.
1049
- ; IF-EVL: [[LOOP0]] = distinct !{[[LOOP0]], [[META1:![0-9]+]], [[META2:![0-9]+]]}
1049
+ ; IF-EVL: [[LOOP0]] = distinct !{[[LOOP0]], [[META1:![0-9]+]], [[META2:![0-9]+]], [[META3:![0-9]+]] }
1050
1050
; IF-EVL: [[META1]] = !{!"llvm.loop.isvectorized", i32 1}
1051
- ; IF-EVL: [[META2]] = !{!"llvm.loop.unroll.runtime.disable"}
1052
- ; IF-EVL: [[LOOP3]] = distinct !{[[LOOP3]], [[META1]]}
1053
- ; IF-EVL: [[LOOP4]] = distinct !{[[LOOP4]], [[META1]], [[META2]]}
1054
- ; IF-EVL: [[LOOP5]] = distinct !{[[LOOP5]], [[META1]]}
1055
- ; IF-EVL: [[LOOP6]] = distinct !{[[LOOP6]], [[META1]], [[META2]]}
1056
- ; IF-EVL: [[LOOP7]] = distinct !{[[LOOP7]], [[META1]]}
1057
- ; IF-EVL: [[LOOP8]] = distinct !{[[LOOP8]], [[META1]], [[META2]]}
1058
- ; IF-EVL: [[LOOP9]] = distinct !{[[LOOP9]], [[META1]]}
1059
- ; IF-EVL: [[LOOP10]] = distinct !{[[LOOP10]], [[META1]], [[META2]]}
1060
- ; IF-EVL: [[LOOP11]] = distinct !{[[LOOP11]], [[META1]]}
1061
- ; IF-EVL: [[LOOP12]] = distinct !{[[LOOP12]], [[META1]], [[META2]]}
1062
- ; IF-EVL: [[LOOP13]] = distinct !{[[LOOP13]], [[META1]]}
1063
- ; IF-EVL: [[LOOP14]] = distinct !{[[LOOP14]], [[META1]], [[META2]]}
1064
- ; IF-EVL: [[LOOP15]] = distinct !{[[LOOP15]], [[META1]]}
1065
- ; IF-EVL: [[LOOP16]] = distinct !{[[LOOP16]], [[META1]], [[META2]]}
1066
- ; IF-EVL: [[LOOP17]] = distinct !{[[LOOP17]], [[META1]]}
1067
- ; IF-EVL: [[LOOP18]] = distinct !{[[LOOP18]], [[META1]], [[META2]]}
1068
- ; IF-EVL: [[LOOP19]] = distinct !{[[LOOP19]], [[META1]]}
1051
+ ; IF-EVL: [[META2]] = !{!"llvm.loop.isvectorized.tailfoldingstyle", !"evl"}
1052
+ ; IF-EVL: [[META3]] = !{!"llvm.loop.unroll.runtime.disable"}
1053
+ ; IF-EVL: [[LOOP4]] = distinct !{[[LOOP4]], [[META1]]}
1054
+ ; IF-EVL: [[LOOP5]] = distinct !{[[LOOP5]], [[META1]], [[META2]], [[META3]]}
1055
+ ; IF-EVL: [[LOOP6]] = distinct !{[[LOOP6]], [[META1]]}
1056
+ ; IF-EVL: [[LOOP7]] = distinct !{[[LOOP7]], [[META1]], [[META2]], [[META3]]}
1057
+ ; IF-EVL: [[LOOP8]] = distinct !{[[LOOP8]], [[META1]]}
1058
+ ; IF-EVL: [[LOOP9]] = distinct !{[[LOOP9]], [[META1]], [[META2]], [[META3]]}
1059
+ ; IF-EVL: [[LOOP10]] = distinct !{[[LOOP10]], [[META1]]}
1060
+ ; IF-EVL: [[LOOP11]] = distinct !{[[LOOP11]], [[META1]], [[META2]], [[META3]]}
1061
+ ; IF-EVL: [[LOOP12]] = distinct !{[[LOOP12]], [[META1]]}
1062
+ ; IF-EVL: [[LOOP13]] = distinct !{[[LOOP13]], [[META1]], [[META2]], [[META3]]}
1063
+ ; IF-EVL: [[LOOP14]] = distinct !{[[LOOP14]], [[META1]]}
1064
+ ; IF-EVL: [[LOOP15]] = distinct !{[[LOOP15]], [[META1]], [[META2]], [[META3]]}
1065
+ ; IF-EVL: [[LOOP16]] = distinct !{[[LOOP16]], [[META1]]}
1066
+ ; IF-EVL: [[LOOP17]] = distinct !{[[LOOP17]], [[META1]], [[META2]], [[META3]]}
1067
+ ; IF-EVL: [[LOOP18]] = distinct !{[[LOOP18]], [[META1]]}
1068
+ ; IF-EVL: [[LOOP19]] = distinct !{[[LOOP19]], [[META1]], [[META2]], [[META3]]}
1069
+ ; IF-EVL: [[LOOP20]] = distinct !{[[LOOP20]], [[META1]]}
1069
1070
;.
0 commit comments