@@ -46,9 +46,9 @@ for.end:
4646; CHECK: LV: Found uniform instruction: %tmp1 = getelementptr inbounds i32, ptr %a, i64 %i
4747; CHECK: vector.body
4848; CHECK: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
49- ; CHECK: %offset.idx = sub i64 %n, %index
49+ ; CHECK: [[OFFSET_IDX:%.+]] = sub i64 %n, %index
5050; CHECK-NOT: getelementptr
51- ; CHECK: %[[G0:.+]] = getelementptr inbounds i32, ptr %a, i64 %offset.idx
51+ ; CHECK: %[[G0:.+]] = getelementptr inbounds i32, ptr %a, i64 [[OFFSET_IDX]]
5252; CHECK: getelementptr inbounds i8, ptr %[[G0]], i64 -12
5353; CHECK-NOT: getelementptr
5454; CHECK: br i1 {{.*}}, label %middle.block, label %vector.body
@@ -141,15 +141,15 @@ for.end:
141141; CHECK-NOT: LV: Found uniform instruction: %tmp2 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 1
142142; CHECK: vector.body
143143; CHECK: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
144- ; CHECK: %offset.idx = sub i64 %n, %index
145- ; CHECK: %[[I1:.+]] = add i64 %offset.idx , -1
146- ; CHECK: %[[I2:.+]] = add i64 %offset.idx , -2
147- ; CHECK: %[[I3:.+]] = add i64 %offset.idx , -3
148- ; CHECK: getelementptr inbounds %pair, ptr %p, i64 %offset.idx , i32 0
144+ ; CHECK: [[OFFSET_IDX:%.+]] = sub i64 %n, %index
145+ ; CHECK: %[[I1:.+]] = add i64 [[OFFSET_IDX]] , -1
146+ ; CHECK: %[[I2:.+]] = add i64 [[OFFSET_IDX]] , -2
147+ ; CHECK: %[[I3:.+]] = add i64 [[OFFSET_IDX]] , -3
148+ ; CHECK: getelementptr inbounds %pair, ptr %p, i64 [[OFFSET_IDX]] , i32 0
149149; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I1]], i32 0
150150; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I2]], i32 0
151151; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I3]], i32 0
152- ; CHECK: getelementptr inbounds %pair, ptr %p, i64 %offset.idx , i32 1
152+ ; CHECK: getelementptr inbounds %pair, ptr %p, i64 [[OFFSET_IDX]] , i32 1
153153; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I1]], i32 1
154154; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I2]], i32 1
155155; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I3]], i32 1
@@ -159,9 +159,9 @@ for.end:
159159; INTER: LV: Found uniform instruction: %tmp2 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 1
160160; INTER: vector.body
161161; INTER: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
162- ; INTER: %offset.idx = sub i64 %n, %index
162+ ; INTER: [[OFFSET_IDX:%.+]] = sub i64 %n, %index
163163; INTER-NOT: getelementptr
164- ; INTER: %[[G0:.+]] = getelementptr inbounds %pair, ptr %p, i64 %offset.idx , i32 0
164+ ; INTER: %[[G0:.+]] = getelementptr inbounds %pair, ptr %p, i64 [[OFFSET_IDX]] , i32 0
165165; INTER: getelementptr inbounds i8, ptr %[[G0]], i64 -24
166166; INTER-NOT: getelementptr
167167; INTER: br i1 {{.*}}, label %middle.block, label %vector.body
@@ -315,9 +315,9 @@ for.end:
315315; INTER: %[[I2:.+]] = or disjoint i64 %[[I0]], 32
316316; INTER: %[[I3:.+]] = or disjoint i64 %[[I0]], 48
317317; INTER: %next.gep = getelementptr i8, ptr %a, i64 %[[I0]]
318- ; INTER: %next.gep1 = getelementptr i8, ptr %a, i64 %[[I1]]
319- ; INTER: %next.gep2 = getelementptr i8, ptr %a, i64 %[[I2]]
320- ; INTER: %next.gep3 = getelementptr i8, ptr %a, i64 %[[I3]]
318+ ; INTER-NEXT: = getelementptr i8, ptr %a, i64 %[[I1]]
319+ ; INTER-NEXT: = getelementptr i8, ptr %a, i64 %[[I2]]
320+ ; INTER-NEXT: = getelementptr i8, ptr %a, i64 %[[I3]]
321321; INTER: br i1 {{.*}}, label %middle.block, label %vector.body
322322;
323323define void @pointer_iv_non_uniform_0 (ptr %a , i64 %n ) {
@@ -362,9 +362,9 @@ for.end:
362362; CHECK: %[[I2:.+]] = or disjoint i64 [[SHL1]], 32
363363; CHECK: %[[I3:.+]] = or disjoint i64 [[SHL1]], 48
364364; CHECK: %next.gep = getelementptr i8, ptr %a, i64 [[SHL1]]
365- ; CHECK: %next.gep1 = getelementptr i8, ptr %a, i64 %[[I1]]
366- ; CHECK: %next.gep2 = getelementptr i8, ptr %a, i64 %[[I2]]
367- ; CHECK: %next.gep3 = getelementptr i8, ptr %a, i64 %[[I3]]
365+ ; CHECK: {{.+}} = getelementptr i8, ptr %a, i64 %[[I1]]
366+ ; CHECK: {{.+}} = getelementptr i8, ptr %a, i64 %[[I2]]
367+ ; CHECK: {{.+}} = getelementptr i8, ptr %a, i64 %[[I3]]
368368; CHECK: br i1 {{.*}}, label %middle.block, label %vector.body
369369;
370370define void @pointer_iv_non_uniform_1 (ptr %a , i64 %n ) {
0 commit comments