From: Nikita Popov Date: Wed, 4 Jan 2023 16:13:32 +0000 (+0100) Subject: [LoopVersioningLICM] Convert tests to opaque pointers (NFC) X-Git-Tag: upstream/17.0.6~22157 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=970fcba0740852511f7c2c7d28259592fd3e7729;p=platform%2Fupstream%2Fllvm.git [LoopVersioningLICM] Convert tests to opaque pointers (NFC) --- diff --git a/llvm/test/Transforms/LoopVersioningLICM/convergent.ll b/llvm/test/Transforms/LoopVersioningLICM/convergent.ll index f9caf09..9a4a9e8 100644 --- a/llvm/test/Transforms/LoopVersioningLICM/convergent.ll +++ b/llvm/test/Transforms/LoopVersioningLICM/convergent.ll @@ -6,7 +6,7 @@ ; CHECK-LABEL: @test_convergent( ; CHECK: call void @llvm.convergent() ; CHECK-NOT: call void @llvm.convergent() -define i32 @test_convergent(i32* nocapture %var1, i32* nocapture readnone %var2, i32* nocapture %var3, i32 %itr) #1 { +define i32 @test_convergent(ptr nocapture %var1, ptr nocapture readnone %var2, ptr nocapture %var3, i32 %itr) #1 { entry: %cmp14 = icmp eq i32 %itr, 0 br i1 %cmp14, label %for.end13, label %for.cond1.preheader @@ -20,18 +20,18 @@ for.cond1.preheader: ; preds = %entry, %for.inc11 for.body3.lr.ph: ; preds = %for.cond1.preheader %add = add i32 %i.015, %itr %idxprom6 = zext i32 %i.015 to i64 - %arrayidx7 = getelementptr inbounds i32, i32* %var3, i64 %idxprom6 + %arrayidx7 = getelementptr inbounds i32, ptr %var3, i64 %idxprom6 br label %for.body3 for.body3: ; preds = %for.body3, %for.body3.lr.ph %j.113 = phi i32 [ %j.016, %for.body3.lr.ph ], [ %inc, %for.body3 ] %idxprom = zext i32 %j.113 to i64 - %arrayidx = getelementptr inbounds i32, i32* %var1, i64 %idxprom - store i32 %add, i32* %arrayidx, align 4 - %load.arrayidx7 = load i32, i32* %arrayidx7, align 4 + %arrayidx = getelementptr inbounds i32, ptr %var1, i64 %idxprom + store i32 %add, ptr %arrayidx, align 4 + %load.arrayidx7 = load i32, ptr %arrayidx7, align 4 call void @llvm.convergent() %add8 = add nsw i32 %load.arrayidx7, %add - store i32 %add8, i32* %arrayidx7, align 4 + store i32 %add8, ptr %arrayidx7, align 4 %inc = add nuw i32 %j.113, 1 %cmp2 = icmp ult i32 %inc, %itr br i1 %cmp2, label %for.body3, label %for.inc11 @@ -49,7 +49,7 @@ for.end13: ; preds = %for.inc11, %entry ; CHECK-LABEL: @test_noduplicate( ; CHECK: call void @llvm.noduplicate() ; CHECK-NOT: call void @llvm.noduplicate() -define i32 @test_noduplicate(i32* nocapture %var1, i32* nocapture readnone %var2, i32* nocapture %var3, i32 %itr) #2 { +define i32 @test_noduplicate(ptr nocapture %var1, ptr nocapture readnone %var2, ptr nocapture %var3, i32 %itr) #2 { entry: %cmp14 = icmp eq i32 %itr, 0 br i1 %cmp14, label %for.end13, label %for.cond1.preheader @@ -63,18 +63,18 @@ for.cond1.preheader: ; preds = %entry, %for.inc11 for.body3.lr.ph: ; preds = %for.cond1.preheader %add = add i32 %i.015, %itr %idxprom6 = zext i32 %i.015 to i64 - %arrayidx7 = getelementptr inbounds i32, i32* %var3, i64 %idxprom6 + %arrayidx7 = getelementptr inbounds i32, ptr %var3, i64 %idxprom6 br label %for.body3 for.body3: ; preds = %for.body3, %for.body3.lr.ph %j.113 = phi i32 [ %j.016, %for.body3.lr.ph ], [ %inc, %for.body3 ] %idxprom = zext i32 %j.113 to i64 - %arrayidx = getelementptr inbounds i32, i32* %var1, i64 %idxprom - store i32 %add, i32* %arrayidx, align 4 - %load.arrayidx7 = load i32, i32* %arrayidx7, align 4 + %arrayidx = getelementptr inbounds i32, ptr %var1, i64 %idxprom + store i32 %add, ptr %arrayidx, align 4 + %load.arrayidx7 = load i32, ptr %arrayidx7, align 4 call void @llvm.noduplicate() %add8 = add nsw i32 %load.arrayidx7, %add - store i32 %add8, i32* %arrayidx7, align 4 + store i32 %add8, ptr %arrayidx7, align 4 %inc = add nuw i32 %j.113, 1 %cmp2 = icmp ult i32 %inc, %itr br i1 %cmp2, label %for.body3, label %for.inc11 diff --git a/llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM1.ll b/llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM1.ll index 69cc1fd..eec772c 100644 --- a/llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM1.ll +++ b/llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM1.ll @@ -8,40 +8,39 @@ ; CHECK: Loop: Loop at depth 2 containing: %for.body3
; CHECK-NEXT: Loop Versioning found to be beneficial -define i32 @foo(i32* nocapture %var1, i32* nocapture readnone %var2, i32* nocapture %var3, i32 %itr) #0 { +define i32 @foo(ptr nocapture %var1, ptr nocapture readnone %var2, ptr nocapture %var3, i32 %itr) #0 { ; CHECK-LABEL: @foo( ; CHECK-NEXT: entry: ; CHECK-NEXT: [[CMP14:%.*]] = icmp eq i32 [[ITR:%.*]], 0 ; CHECK-NEXT: br i1 [[CMP14]], label [[FOR_END13:%.*]], label [[FOR_COND1_PREHEADER_PREHEADER:%.*]] ; CHECK: for.cond1.preheader.preheader: -; CHECK-NEXT: [[SCEVGEP2:%.*]] = getelementptr i32, i32* [[VAR1:%.*]], i64 1 +; CHECK-NEXT: [[UGLYGEP1:%.*]] = getelementptr i8, ptr [[VAR1:%.*]], i64 4 ; CHECK-NEXT: [[TMP0:%.*]] = add i32 [[ITR]], -1 ; CHECK-NEXT: br label [[FOR_COND1_PREHEADER:%.*]] ; CHECK: for.cond1.preheader: ; CHECK-NEXT: [[INDVAR:%.*]] = phi i64 [ 0, [[FOR_COND1_PREHEADER_PREHEADER]] ], [ [[INDVAR_NEXT:%.*]], [[FOR_INC11:%.*]] ] ; CHECK-NEXT: [[J_016:%.*]] = phi i32 [ [[J_1_LCSSA:%.*]], [[FOR_INC11]] ], [ 0, [[FOR_COND1_PREHEADER_PREHEADER]] ] ; CHECK-NEXT: [[I_015:%.*]] = phi i32 [ [[INC12:%.*]], [[FOR_INC11]] ], [ 0, [[FOR_COND1_PREHEADER_PREHEADER]] ] -; CHECK-NEXT: [[SCEVGEP5:%.*]] = getelementptr i32, i32* [[VAR3:%.*]], i64 [[INDVAR]] -; CHECK-NEXT: [[SCEVGEP56:%.*]] = bitcast i32* [[SCEVGEP5]] to i8* -; CHECK-NEXT: [[TMP1:%.*]] = add i64 [[INDVAR]], 1 -; CHECK-NEXT: [[SCEVGEP7:%.*]] = getelementptr i32, i32* [[VAR3]], i64 [[TMP1]] -; CHECK-NEXT: [[SCEVGEP78:%.*]] = bitcast i32* [[SCEVGEP7]] to i8* +; CHECK-NEXT: [[TMP1:%.*]] = shl nuw nsw i64 [[INDVAR]], 2 +; CHECK-NEXT: [[UGLYGEP3:%.*]] = getelementptr i8, ptr [[VAR3:%.*]], i64 [[TMP1]] +; CHECK-NEXT: [[TMP2:%.*]] = add i64 [[TMP1]], 4 +; CHECK-NEXT: [[UGLYGEP4:%.*]] = getelementptr i8, ptr [[VAR3]], i64 [[TMP2]] ; CHECK-NEXT: [[CMP212:%.*]] = icmp ult i32 [[J_016]], [[ITR]] ; CHECK-NEXT: br i1 [[CMP212]], label [[FOR_BODY3_LVER_CHECK:%.*]], label [[FOR_INC11]] ; CHECK: for.body3.lver.check: ; CHECK-NEXT: [[ADD:%.*]] = add i32 [[I_015]], [[ITR]] ; CHECK-NEXT: [[IDXPROM6:%.*]] = zext i32 [[I_015]] to i64 -; CHECK-NEXT: [[ARRAYIDX7:%.*]] = getelementptr inbounds i32, i32* [[VAR3]], i64 [[IDXPROM6]] -; CHECK-NEXT: [[TMP2:%.*]] = zext i32 [[J_016]] to i64 -; CHECK-NEXT: [[SCEVGEP:%.*]] = getelementptr i32, i32* [[VAR1]], i64 [[TMP2]] -; CHECK-NEXT: [[SCEVGEP1:%.*]] = bitcast i32* [[SCEVGEP]] to i8* -; CHECK-NEXT: [[TMP3:%.*]] = sub i32 [[TMP0]], [[J_016]] -; CHECK-NEXT: [[TMP4:%.*]] = zext i32 [[TMP3]] to i64 -; CHECK-NEXT: [[TMP5:%.*]] = add i64 [[TMP2]], [[TMP4]] -; CHECK-NEXT: [[SCEVGEP3:%.*]] = getelementptr i32, i32* [[SCEVGEP2]], i64 [[TMP5]] -; CHECK-NEXT: [[SCEVGEP34:%.*]] = bitcast i32* [[SCEVGEP3]] to i8* -; CHECK-NEXT: [[BOUND0:%.*]] = icmp ult i8* [[SCEVGEP1]], [[SCEVGEP78]] -; CHECK-NEXT: [[BOUND1:%.*]] = icmp ult i8* [[SCEVGEP56]], [[SCEVGEP34]] +; CHECK-NEXT: [[ARRAYIDX7:%.*]] = getelementptr inbounds i32, ptr [[VAR3]], i64 [[IDXPROM6]] +; CHECK-NEXT: [[TMP3:%.*]] = zext i32 [[J_016]] to i64 +; CHECK-NEXT: [[TMP4:%.*]] = shl nuw nsw i64 [[TMP3]], 2 +; CHECK-NEXT: [[UGLYGEP:%.*]] = getelementptr i8, ptr [[VAR1]], i64 [[TMP4]] +; CHECK-NEXT: [[TMP5:%.*]] = sub i32 [[TMP0]], [[J_016]] +; CHECK-NEXT: [[TMP6:%.*]] = zext i32 [[TMP5]] to i64 +; CHECK-NEXT: [[TMP7:%.*]] = shl nuw nsw i64 [[TMP6]], 2 +; CHECK-NEXT: [[TMP8:%.*]] = add i64 [[TMP4]], [[TMP7]] +; CHECK-NEXT: [[UGLYGEP2:%.*]] = getelementptr i8, ptr [[UGLYGEP1]], i64 [[TMP8]] +; CHECK-NEXT: [[BOUND0:%.*]] = icmp ult ptr [[UGLYGEP]], [[UGLYGEP4]] +; CHECK-NEXT: [[BOUND1:%.*]] = icmp ult ptr [[UGLYGEP3]], [[UGLYGEP2]] ; CHECK-NEXT: [[FOUND_CONFLICT:%.*]] = and i1 [[BOUND0]], [[BOUND1]] ; CHECK-NEXT: br i1 [[FOUND_CONFLICT]], label [[FOR_BODY3_PH_LVER_ORIG:%.*]], label [[FOR_BODY3_PH:%.*]] ; CHECK: for.body3.ph.lver.orig: @@ -49,32 +48,32 @@ define i32 @foo(i32* nocapture %var1, i32* nocapture readnone %var2, i32* nocapt ; CHECK: for.body3.lver.orig: ; CHECK-NEXT: [[J_113_LVER_ORIG:%.*]] = phi i32 [ [[J_016]], [[FOR_BODY3_PH_LVER_ORIG]] ], [ [[INC_LVER_ORIG:%.*]], [[FOR_BODY3_LVER_ORIG]] ] ; CHECK-NEXT: [[IDXPROM_LVER_ORIG:%.*]] = zext i32 [[J_113_LVER_ORIG]] to i64 -; CHECK-NEXT: [[ARRAYIDX_LVER_ORIG:%.*]] = getelementptr inbounds i32, i32* [[VAR1]], i64 [[IDXPROM_LVER_ORIG]] -; CHECK-NEXT: store i32 [[ADD]], i32* [[ARRAYIDX_LVER_ORIG]], align 4 -; CHECK-NEXT: [[TMP6:%.*]] = load i32, i32* [[ARRAYIDX7]], align 4 -; CHECK-NEXT: [[ADD8_LVER_ORIG:%.*]] = add nsw i32 [[TMP6]], [[ADD]] -; CHECK-NEXT: store i32 [[ADD8_LVER_ORIG]], i32* [[ARRAYIDX7]], align 4 +; CHECK-NEXT: [[ARRAYIDX_LVER_ORIG:%.*]] = getelementptr inbounds i32, ptr [[VAR1]], i64 [[IDXPROM_LVER_ORIG]] +; CHECK-NEXT: store i32 [[ADD]], ptr [[ARRAYIDX_LVER_ORIG]], align 4 +; CHECK-NEXT: [[TMP9:%.*]] = load i32, ptr [[ARRAYIDX7]], align 4 +; CHECK-NEXT: [[ADD8_LVER_ORIG:%.*]] = add nsw i32 [[TMP9]], [[ADD]] +; CHECK-NEXT: store i32 [[ADD8_LVER_ORIG]], ptr [[ARRAYIDX7]], align 4 ; CHECK-NEXT: [[INC_LVER_ORIG]] = add nuw i32 [[J_113_LVER_ORIG]], 1 ; CHECK-NEXT: [[CMP2_LVER_ORIG:%.*]] = icmp ult i32 [[INC_LVER_ORIG]], [[ITR]] ; CHECK-NEXT: br i1 [[CMP2_LVER_ORIG]], label [[FOR_BODY3_LVER_ORIG]], label [[FOR_INC11_LOOPEXIT_LOOPEXIT:%.*]], !llvm.loop [[LOOP0:![0-9]+]] ; CHECK: for.body3.ph: -; CHECK-NEXT: [[ARRAYIDX7_PROMOTED:%.*]] = load i32, i32* [[ARRAYIDX7]], align 4, !alias.scope !2, !noalias !2 +; CHECK-NEXT: [[ARRAYIDX7_PROMOTED:%.*]] = load i32, ptr [[ARRAYIDX7]], align 4, !alias.scope !2, !noalias !2 ; CHECK-NEXT: br label [[FOR_BODY3:%.*]] ; CHECK: for.body3: -; CHECK-NEXT: [[ADD810:%.*]] = phi i32 [ [[ARRAYIDX7_PROMOTED]], [[FOR_BODY3_PH]] ], [ [[ADD8:%.*]], [[FOR_BODY3]] ] +; CHECK-NEXT: [[ADD86:%.*]] = phi i32 [ [[ARRAYIDX7_PROMOTED]], [[FOR_BODY3_PH]] ], [ [[ADD8:%.*]], [[FOR_BODY3]] ] ; CHECK-NEXT: [[J_113:%.*]] = phi i32 [ [[J_016]], [[FOR_BODY3_PH]] ], [ [[INC:%.*]], [[FOR_BODY3]] ] ; CHECK-NEXT: [[IDXPROM:%.*]] = zext i32 [[J_113]] to i64 -; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, i32* [[VAR1]], i64 [[IDXPROM]] -; CHECK-NEXT: store i32 [[ADD]], i32* [[ARRAYIDX]], align 4, !alias.scope !2, !noalias !2 -; CHECK-NEXT: [[ADD8]] = add nsw i32 [[ADD810]], [[ADD]] +; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds i32, ptr [[VAR1]], i64 [[IDXPROM]] +; CHECK-NEXT: store i32 [[ADD]], ptr [[ARRAYIDX]], align 4, !alias.scope !2, !noalias !2 +; CHECK-NEXT: [[ADD8]] = add nsw i32 [[ADD86]], [[ADD]] ; CHECK-NEXT: [[INC]] = add nuw i32 [[J_113]], 1 ; CHECK-NEXT: [[CMP2:%.*]] = icmp ult i32 [[INC]], [[ITR]] -; CHECK-NEXT: br i1 [[CMP2]], label [[FOR_BODY3]], label [[FOR_INC11_LOOPEXIT_LOOPEXIT9:%.*]], !llvm.loop [[LOOP5:![0-9]+]] +; CHECK-NEXT: br i1 [[CMP2]], label [[FOR_BODY3]], label [[FOR_INC11_LOOPEXIT_LOOPEXIT5:%.*]], !llvm.loop [[LOOP5:![0-9]+]] ; CHECK: for.inc11.loopexit.loopexit: ; CHECK-NEXT: br label [[FOR_INC11_LOOPEXIT:%.*]] -; CHECK: for.inc11.loopexit.loopexit9: +; CHECK: for.inc11.loopexit.loopexit5: ; CHECK-NEXT: [[ADD8_LCSSA:%.*]] = phi i32 [ [[ADD8]], [[FOR_BODY3]] ] -; CHECK-NEXT: store i32 [[ADD8_LCSSA]], i32* [[ARRAYIDX7]], align 4, !alias.scope !2, !noalias !2 +; CHECK-NEXT: store i32 [[ADD8_LCSSA]], ptr [[ARRAYIDX7]], align 4, !alias.scope !2, !noalias !2 ; CHECK-NEXT: br label [[FOR_INC11_LOOPEXIT]] ; CHECK: for.inc11.loopexit: ; CHECK-NEXT: br label [[FOR_INC11]] @@ -105,17 +104,17 @@ for.cond1.preheader: ; preds = %for.cond1.preheader for.body3.lr.ph: ; preds = %for.cond1.preheader %add = add i32 %i.015, %itr %idxprom6 = zext i32 %i.015 to i64 - %arrayidx7 = getelementptr inbounds i32, i32* %var3, i64 %idxprom6 + %arrayidx7 = getelementptr inbounds i32, ptr %var3, i64 %idxprom6 br label %for.body3 for.body3: ; preds = %for.body3.lr.ph, %for.body3 %j.113 = phi i32 [ %j.016, %for.body3.lr.ph ], [ %inc, %for.body3 ] %idxprom = zext i32 %j.113 to i64 - %arrayidx = getelementptr inbounds i32, i32* %var1, i64 %idxprom - store i32 %add, i32* %arrayidx, align 4 - %0 = load i32, i32* %arrayidx7, align 4 + %arrayidx = getelementptr inbounds i32, ptr %var1, i64 %idxprom + store i32 %add, ptr %arrayidx, align 4 + %0 = load i32, ptr %arrayidx7, align 4 %add8 = add nsw i32 %0, %add - store i32 %add8, i32* %arrayidx7, align 4 + store i32 %add8, ptr %arrayidx7, align 4 %inc = add nuw i32 %j.113, 1 %cmp2 = icmp ult i32 %inc, %itr br i1 %cmp2, label %for.body3, label %for.inc11.loopexit diff --git a/llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM2.ll b/llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM2.ll index a7181f5..22ca534 100644 --- a/llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM2.ll +++ b/llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM2.ll @@ -7,12 +7,12 @@ ; CHECK: Loop: Loop at depth 2 containing: %for.body3.us
; CHECK-NEXT: Loop Versioning found to be beneficial ; -; CHECK: for.cond1.for.inc17_crit_edge.us.loopexit9: ; preds = %for.body3.us +; CHECK: for.cond1.for.inc17_crit_edge.us.loopexit5: ; preds = %for.body3.us ; CHECK-NEXT: %add14.us.lcssa = phi float [ %add14.us, %for.body3.us ] -; CHECK-NEXT: store float %add14.us.lcssa, float* %arrayidx.us, align 4, !alias.scope !0, !noalias !0 +; CHECK-NEXT: store float %add14.us.lcssa, ptr %arrayidx.us, align 4, !alias.scope !0, !noalias !0 ; CHECK-NEXT: br label %for.cond1.for.inc17_crit_edge.us ; -define i32 @foo(float* nocapture %var2, float** nocapture readonly %var3, i32 %itr) #0 { +define i32 @foo(ptr nocapture %var2, ptr nocapture readonly %var3, i32 %itr) #0 { entry: %cmp38 = icmp sgt i32 %itr, 1 br i1 %cmp38, label %for.body3.lr.ph.us, label %for.end19 @@ -23,11 +23,11 @@ for.body3.us: ; preds = %for.body3.us, %for. %1 = trunc i64 %indvars.iv to i32 %conv.us = sitofp i32 %1 to float %add.us = fadd float %conv.us, %0 - %arrayidx7.us = getelementptr inbounds float, float* %3, i64 %indvars.iv - store float %add.us, float* %arrayidx7.us, align 4 - %2 = load float, float* %arrayidx.us, align 4 + %arrayidx7.us = getelementptr inbounds float, ptr %3, i64 %indvars.iv + store float %add.us, ptr %arrayidx7.us, align 4 + %2 = load float, ptr %arrayidx.us, align 4 %add14.us = fadd float %2, %add.us - store float %add14.us, float* %arrayidx.us, align 4 + store float %add14.us, ptr %arrayidx.us, align 4 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %lftr.wideiv = trunc i64 %indvars.iv.next to i32 %exitcond = icmp eq i32 %lftr.wideiv, %itr @@ -35,10 +35,10 @@ for.body3.us: ; preds = %for.body3.us, %for. for.body3.lr.ph.us: ; preds = %entry, %for.cond1.for.inc17_crit_edge.us %indvars.iv40 = phi i64 [ %indvars.iv.next41, %for.cond1.for.inc17_crit_edge.us ], [ 1, %entry ] - %arrayidx.us = getelementptr inbounds float, float* %var2, i64 %indvars.iv40 - %arrayidx6.us = getelementptr inbounds float*, float** %var3, i64 %indvars.iv40 - %3 = load float*, float** %arrayidx6.us, align 8 - %.pre = load float, float* %arrayidx.us, align 4 + %arrayidx.us = getelementptr inbounds float, ptr %var2, i64 %indvars.iv40 + %arrayidx6.us = getelementptr inbounds ptr, ptr %var3, i64 %indvars.iv40 + %3 = load ptr, ptr %arrayidx6.us, align 8 + %.pre = load float, ptr %arrayidx.us, align 4 br label %for.body3.us for.cond1.for.inc17_crit_edge.us: ; preds = %for.body3.us diff --git a/llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM3.ll b/llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM3.ll index 0db07ed..ee7ba49 100644 --- a/llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM3.ll +++ b/llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM3.ll @@ -8,7 +8,7 @@ ; CHECK-NEXT: LAA: Runtime check not found !! ; CHECK-NEXT: Loop instructions not suitable for LoopVersioningLICM -define i32 @foo(i32* nocapture %var1, i32 %itr) #0 { +define i32 @foo(ptr nocapture %var1, i32 %itr) #0 { entry: %cmp18 = icmp eq i32 %itr, 0 br i1 %cmp18, label %for.end8, label %for.cond1.preheader @@ -25,10 +25,10 @@ for.body3.lr.ph: ; preds = %for.cond1.preheader for.body3: ; preds = %for.body3, %for.body3.lr.ph %indvars.iv = phi i64 [ %0, %for.body3.lr.ph ], [ %indvars.iv.next, %for.body3 ] - %arrayidx = getelementptr inbounds i32, i32* %var1, i64 %indvars.iv - %1 = load i32, i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, ptr %var1, i64 %indvars.iv + %1 = load i32, ptr %arrayidx, align 4 %add = add nsw i32 %1, %itr - store i32 %add, i32* %arrayidx, align 4 + store i32 %add, ptr %arrayidx, align 4 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %lftr.wideiv = trunc i64 %indvars.iv.next to i32 %exitcond = icmp eq i32 %lftr.wideiv, %itr diff --git a/llvm/test/Transforms/LoopVersioningLICM/metadata.ll b/llvm/test/Transforms/LoopVersioningLICM/metadata.ll index 3656218..1b0faed 100644 --- a/llvm/test/Transforms/LoopVersioningLICM/metadata.ll +++ b/llvm/test/Transforms/LoopVersioningLICM/metadata.ll @@ -1,7 +1,7 @@ ; RUN: opt < %s -S -passes='function(loop-versioning-licm,loop-mssa(licm))' 2>&1 | FileCheck %s ; CHECK-LABEL: @without_metadata( -define i32 @without_metadata(i32* nocapture %var1, i32* nocapture readnone %var2, i32* nocapture %var3, i32 %itr) #0 { +define i32 @without_metadata(ptr nocapture %var1, ptr nocapture readnone %var2, ptr nocapture %var3, i32 %itr) #0 { entry: %cmp14 = icmp eq i32 %itr, 0 br i1 %cmp14, label %for.end13, label %for.cond1.preheader.preheader @@ -18,18 +18,18 @@ for.cond1.preheader: ; preds = %for.cond1.preheader for.body3.lr.ph: ; preds = %for.cond1.preheader %add = add i32 %i.015, %itr %idxprom6 = zext i32 %i.015 to i64 - %arrayidx7 = getelementptr inbounds i32, i32* %var3, i64 %idxprom6 + %arrayidx7 = getelementptr inbounds i32, ptr %var3, i64 %idxprom6 br label %for.body3 for.body3: ; preds = %for.body3.lr.ph, %for.body3 %j.113 = phi i32 [ %j.016, %for.body3.lr.ph ], [ %inc, %for.body3 ] %idxprom = zext i32 %j.113 to i64 - %arrayidx = getelementptr inbounds i32, i32* %var1, i64 %idxprom -; CHECK: store i32 %add, i32* %arrayidx, align 4, !alias.scope {{.*}}, !noalias {{.*}} - store i32 %add, i32* %arrayidx, align 4 - %0 = load i32, i32* %arrayidx7, align 4 + %arrayidx = getelementptr inbounds i32, ptr %var1, i64 %idxprom +; CHECK: store i32 %add, ptr %arrayidx, align 4, !alias.scope {{.*}}, !noalias {{.*}} + store i32 %add, ptr %arrayidx, align 4 + %0 = load i32, ptr %arrayidx7, align 4 %add8 = add nsw i32 %0, %add - store i32 %add8, i32* %arrayidx7, align 4 + store i32 %add8, ptr %arrayidx7, align 4 %inc = add nuw i32 %j.113, 1 %cmp2 = icmp ult i32 %inc, %itr br i1 %cmp2, label %for.body3, label %for.inc11.loopexit @@ -51,7 +51,7 @@ for.end13: ; preds = %for.end13.loopexit, } ; CHECK-LABEL: @with_metadata( -define i32 @with_metadata(i32* nocapture %var1, i32* nocapture readnone %var2, i32* nocapture %var3, i32 %itr) #0 { +define i32 @with_metadata(ptr nocapture %var1, ptr nocapture readnone %var2, ptr nocapture %var3, i32 %itr) #0 { entry: %cmp14 = icmp eq i32 %itr, 0 br i1 %cmp14, label %for.end13, label %for.cond1.preheader.preheader @@ -68,18 +68,18 @@ for.cond1.preheader: ; preds = %for.cond1.preheader for.body3.lr.ph: ; preds = %for.cond1.preheader %add = add i32 %i.015, %itr %idxprom6 = zext i32 %i.015 to i64 - %arrayidx7 = getelementptr inbounds i32, i32* %var3, i64 %idxprom6 + %arrayidx7 = getelementptr inbounds i32, ptr %var3, i64 %idxprom6 br label %for.body3 for.body3: ; preds = %for.body3.lr.ph, %for.body3 %j.113 = phi i32 [ %j.016, %for.body3.lr.ph ], [ %inc, %for.body3 ] %idxprom = zext i32 %j.113 to i64 - %arrayidx = getelementptr inbounds i32, i32* %var1, i64 %idxprom -; CHECK-NOT: store i32 %add, i32* %arrayidx, align 4, !alias.scope {{.*}}, !noalias {{.*}} - store i32 %add, i32* %arrayidx, align 4 - %0 = load i32, i32* %arrayidx7, align 4 + %arrayidx = getelementptr inbounds i32, ptr %var1, i64 %idxprom +; CHECK-NOT: store i32 %add, ptr %arrayidx, align 4, !alias.scope {{.*}}, !noalias {{.*}} + store i32 %add, ptr %arrayidx, align 4 + %0 = load i32, ptr %arrayidx7, align 4 %add8 = add nsw i32 %0, %add - store i32 %add8, i32* %arrayidx7, align 4 + store i32 %add8, ptr %arrayidx7, align 4 %inc = add nuw i32 %j.113, 1 %cmp2 = icmp ult i32 %inc, %itr br i1 %cmp2, label %for.body3, label %for.inc11.loopexit, !llvm.loop !0