@@ -61,41 +61,32 @@ declare void @llvm.assume(i1) #0
6161
6262attributes #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;
109100entry:
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:
122110for.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