[llvm] 521adc9 - [VPlan] Use createScalarZExtOrTrunc when expanding expandVPWidenIntOrFpInduction
Luke Lau via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 20 11:18:56 PDT 2025
Author: Luke Lau
Date: 2025-06-20T19:18:49+01:00
New Revision: 521adc9fa270c1524f125f155327bf8f3743bb87
URL: https://github.com/llvm/llvm-project/commit/521adc9fa270c1524f125f155327bf8f3743bb87
DIFF: https://github.com/llvm/llvm-project/commit/521adc9fa270c1524f125f155327bf8f3743bb87.diff
LOG: [VPlan] Use createScalarZExtOrTrunc when expanding expandVPWidenIntOrFpInduction
Split off from #144666
Added:
Modified:
llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
llvm/test/Transforms/LoopVectorize/vplan-iv-transforms.ll
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
index b6ca50549fa35..fbfc527ff7db4 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+++ b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
@@ -2608,8 +2608,8 @@ expandVPWidenIntOrFpInduction(VPWidenIntOrFpInductionRecipe *WidenIVR,
VF = Builder.createScalarCast(Instruction::CastOps::UIToFP, VF, StepTy,
DL);
else
- VF =
- Builder.createScalarCast(Instruction::CastOps::Trunc, VF, StepTy, DL);
+ VF = Builder.createScalarZExtOrTrunc(VF, StepTy,
+ TypeInfo.inferScalarType(VF), DL);
Inc = Builder.createNaryOp(MulOp, {Step, VF}, Flags);
Inc = Builder.createNaryOp(VPInstruction::Broadcast, Inc);
diff --git a/llvm/test/Transforms/LoopVectorize/vplan-iv-transforms.ll b/llvm/test/Transforms/LoopVectorize/vplan-iv-transforms.ll
index 7654bc9a141e0..49a7fb734ade6 100644
--- a/llvm/test/Transforms/LoopVectorize/vplan-iv-transforms.ll
+++ b/llvm/test/Transforms/LoopVectorize/vplan-iv-transforms.ll
@@ -96,8 +96,7 @@ define void @iv_expand(ptr %p, i64 %n) {
; CHECK-NEXT: EMIT vp<[[BROADCAST_1:%.+]]> = broadcast ir<1>
; CHECK-NEXT: EMIT vp<[[MUL:%.+]]> = mul vp<[[STEP_VECTOR]]>, vp<[[BROADCAST_1]]>
; CHECK-NEXT: EMIT vp<[[INDUCTION:%.+]]> = add vp<[[BROADCAST_0]]>, vp<[[MUL]]>
-; CHECK-NEXT: EMIT vp<[[TRUNC:%.+]]> = trunc ir<8> to i64
-; CHECK-NEXT: EMIT vp<[[INC:%.+]]> = mul ir<1>, vp<[[TRUNC]]>
+; CHECK-NEXT: EMIT vp<[[INC:%.+]]> = mul ir<1>, ir<8>
; CHECK-NEXT: EMIT vp<[[BROADCAST_INC:%.+]]> = broadcast vp<[[INC]]>
; CHECK-NEXT: Successor(s): vector.body
; CHECK-EMPTY:
More information about the llvm-commits
mailing list