Skip to content

Commit f03345a

Browse files
authored
[LV] Improve a test; get rid of runtime checks (#152182)
1 parent 8a2d3f5 commit f03345a

File tree

1 file changed

+11
-23
lines changed

1 file changed

+11
-23
lines changed

llvm/test/Transforms/LoopVectorize/assume.ll

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -61,41 +61,32 @@ declare void @llvm.assume(i1) #0
6161

6262
attributes #0 = { nounwind willreturn }
6363

64-
%struct.data = type { ptr, ptr }
65-
66-
define void @test2(ptr nocapture readonly %d) {
64+
define void @test2(ptr noalias %a, ptr noalias %b) {
6765
; CHECK-LABEL: define void @test2(
68-
; CHECK-SAME: ptr readonly captures(none) [[D:%.*]]) {
66+
; CHECK-SAME: ptr noalias [[A:%.*]], ptr noalias [[B:%.*]]) {
6967
; CHECK-NEXT: [[ENTRY:.*:]]
70-
; CHECK-NEXT: [[B:%.*]] = getelementptr inbounds [[STRUCT_DATA:%.*]], ptr [[D]], i64 0, i32 1
71-
; CHECK-NEXT: [[TMP0:%.*]] = load ptr, ptr [[B]], align 8
72-
; CHECK-NEXT: [[PTRINT:%.*]] = ptrtoint ptr [[TMP0]] to i64
68+
; CHECK-NEXT: [[PTRINT:%.*]] = ptrtoint ptr [[A]] to i64
7369
; CHECK-NEXT: [[MASKEDPTR:%.*]] = and i64 [[PTRINT]], 31
7470
; CHECK-NEXT: [[MASKCOND:%.*]] = icmp eq i64 [[MASKEDPTR]], 0
75-
; CHECK-NEXT: [[TMP1:%.*]] = load ptr, ptr [[D]], align 8
76-
; CHECK-NEXT: [[PTRINT2:%.*]] = ptrtoint ptr [[TMP1]] to i64
71+
; CHECK-NEXT: [[PTRINT2:%.*]] = ptrtoint ptr [[B]] to i64
7772
; CHECK-NEXT: [[MASKEDPTR3:%.*]] = and i64 [[PTRINT2]], 31
7873
; CHECK-NEXT: [[MASKCOND4:%.*]] = icmp eq i64 [[MASKEDPTR3]], 0
79-
; CHECK-NEXT: br i1 false, label %[[SCALAR_PH:.*]], label %[[VECTOR_MEMCHECK:.*]]
80-
; CHECK: [[VECTOR_MEMCHECK]]:
81-
; CHECK-NEXT: [[TMP2:%.*]] = sub i64 [[PTRINT2]], [[PTRINT]]
82-
; CHECK-NEXT: [[DIFF_CHECK:%.*]] = icmp ult i64 [[TMP2]], 16
83-
; CHECK-NEXT: br i1 [[DIFF_CHECK]], label %[[SCALAR_PH]], label %[[VECTOR_PH:.*]]
74+
; CHECK-NEXT: br i1 false, label %[[SCALAR_PH:.*]], label %[[VECTOR_PH:.*]]
8475
; CHECK: [[VECTOR_PH]]:
8576
; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
8677
; CHECK: [[VECTOR_BODY]]:
8778
; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
8879
; CHECK-NEXT: tail call void @llvm.assume(i1 [[MASKCOND]])
8980
; CHECK-NEXT: tail call void @llvm.assume(i1 [[MASKCOND]])
90-
; CHECK-NEXT: [[TMP3:%.*]] = getelementptr inbounds float, ptr [[TMP0]], i64 [[INDEX]]
81+
; CHECK-NEXT: [[TMP3:%.*]] = getelementptr inbounds float, ptr [[A]], i64 [[INDEX]]
9182
; CHECK-NEXT: [[TMP4:%.*]] = getelementptr inbounds float, ptr [[TMP3]], i32 2
9283
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <2 x float>, ptr [[TMP3]], align 4
9384
; CHECK-NEXT: [[WIDE_LOAD1:%.*]] = load <2 x float>, ptr [[TMP4]], align 4
9485
; CHECK-NEXT: [[TMP5:%.*]] = fadd <2 x float> [[WIDE_LOAD]], splat (float 1.000000e+00)
9586
; CHECK-NEXT: [[TMP6:%.*]] = fadd <2 x float> [[WIDE_LOAD1]], splat (float 1.000000e+00)
9687
; CHECK-NEXT: tail call void @llvm.assume(i1 [[MASKCOND4]])
9788
; CHECK-NEXT: tail call void @llvm.assume(i1 [[MASKCOND4]])
98-
; CHECK-NEXT: [[TMP7:%.*]] = getelementptr inbounds float, ptr [[TMP1]], i64 [[INDEX]]
89+
; CHECK-NEXT: [[TMP7:%.*]] = getelementptr inbounds float, ptr [[B]], i64 [[INDEX]]
9990
; CHECK-NEXT: [[TMP8:%.*]] = getelementptr inbounds float, ptr [[TMP7]], i32 2
10091
; CHECK-NEXT: store <2 x float> [[TMP5]], ptr [[TMP7]], align 4
10192
; CHECK-NEXT: store <2 x float> [[TMP6]], ptr [[TMP8]], align 4
@@ -107,13 +98,10 @@ define void @test2(ptr nocapture readonly %d) {
10798
; CHECK: [[SCALAR_PH]]:
10899
;
109100
entry:
110-
%b = getelementptr inbounds %struct.data, ptr %d, i64 0, i32 1
111-
%0 = load ptr, ptr %b, align 8
112-
%ptrint = ptrtoint ptr %0 to i64
101+
%ptrint = ptrtoint ptr %a to i64
113102
%maskedptr = and i64 %ptrint, 31
114103
%maskcond = icmp eq i64 %maskedptr, 0
115-
%1 = load ptr, ptr %d, align 8
116-
%ptrint2 = ptrtoint ptr %1 to i64
104+
%ptrint2 = ptrtoint ptr %b to i64
117105
%maskedptr3 = and i64 %ptrint2, 31
118106
%maskcond4 = icmp eq i64 %maskedptr3, 0
119107
br label %for.body
@@ -122,11 +110,11 @@ entry:
122110
for.body: ; preds = %for.body, %entry
123111
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]
124112
tail call void @llvm.assume(i1 %maskcond)
125-
%arrayidx = getelementptr inbounds float, ptr %0, i64 %indvars.iv
113+
%arrayidx = getelementptr inbounds float, ptr %a, i64 %indvars.iv
126114
%2 = load float, ptr %arrayidx, align 4
127115
%add = fadd float %2, 1.000000e+00
128116
tail call void @llvm.assume(i1 %maskcond4)
129-
%arrayidx5 = getelementptr inbounds float, ptr %1, i64 %indvars.iv
117+
%arrayidx5 = getelementptr inbounds float, ptr %b, i64 %indvars.iv
130118
store float %add, ptr %arrayidx5, align 4
131119
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
132120
%exitcond = icmp eq i64 %indvars.iv, 1599

0 commit comments

Comments
 (0)