Skip to content

Commit 521adc9

Browse files
committed
[VPlan] Use createScalarZExtOrTrunc when expanding expandVPWidenIntOrFpInduction
Split off from #144666
1 parent ff6367b commit 521adc9

File tree

2 files changed

+3
-4
lines changed

2 files changed

+3
-4
lines changed

llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2608,8 +2608,8 @@ expandVPWidenIntOrFpInduction(VPWidenIntOrFpInductionRecipe *WidenIVR,
26082608
VF = Builder.createScalarCast(Instruction::CastOps::UIToFP, VF, StepTy,
26092609
DL);
26102610
else
2611-
VF =
2612-
Builder.createScalarCast(Instruction::CastOps::Trunc, VF, StepTy, DL);
2611+
VF = Builder.createScalarZExtOrTrunc(VF, StepTy,
2612+
TypeInfo.inferScalarType(VF), DL);
26132613

26142614
Inc = Builder.createNaryOp(MulOp, {Step, VF}, Flags);
26152615
Inc = Builder.createNaryOp(VPInstruction::Broadcast, Inc);

llvm/test/Transforms/LoopVectorize/vplan-iv-transforms.ll

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,7 @@ define void @iv_expand(ptr %p, i64 %n) {
9696
; CHECK-NEXT: EMIT vp<[[BROADCAST_1:%.+]]> = broadcast ir<1>
9797
; CHECK-NEXT: EMIT vp<[[MUL:%.+]]> = mul vp<[[STEP_VECTOR]]>, vp<[[BROADCAST_1]]>
9898
; CHECK-NEXT: EMIT vp<[[INDUCTION:%.+]]> = add vp<[[BROADCAST_0]]>, vp<[[MUL]]>
99-
; CHECK-NEXT: EMIT vp<[[TRUNC:%.+]]> = trunc ir<8> to i64
100-
; CHECK-NEXT: EMIT vp<[[INC:%.+]]> = mul ir<1>, vp<[[TRUNC]]>
99+
; CHECK-NEXT: EMIT vp<[[INC:%.+]]> = mul ir<1>, ir<8>
101100
; CHECK-NEXT: EMIT vp<[[BROADCAST_INC:%.+]]> = broadcast vp<[[INC]]>
102101
; CHECK-NEXT: Successor(s): vector.body
103102
; CHECK-EMPTY:

0 commit comments

Comments
 (0)