[llvm] ede6a16 - [PowerPC] Use constant 64-bit indices for Extract/InsertElement (#209015)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Jul 12 10:01:54 PDT 2026
Author: Andreas Jonson
Date: 2026-07-12T19:01:50+02:00
New Revision: ede6a16b1bc4a870ff6180caeb87b727699cd9c1
URL: https://github.com/llvm/llvm-project/commit/ede6a16b1bc4a870ff6180caeb87b727699cd9c1
DIFF: https://github.com/llvm/llvm-project/commit/ede6a16b1bc4a870ff6180caeb87b727699cd9c1.diff
LOG: [PowerPC] Use constant 64-bit indices for Extract/InsertElement (#209015)
The canonical form preferred by instCombine is to use 64-bit values for
constant index in ExtractElement and InsertElement.
Added:
Modified:
llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp b/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
index 667195ea410ef..9d08273aea19a 100644
--- a/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
+++ b/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
@@ -153,12 +153,12 @@ PPCTTIImpl::instCombineIntrinsic(InstCombiner &IC, IntrinsicInst &II) const {
Value *Op0ToUse = (DL.isLittleEndian()) ? Op1 : Op0;
Value *Op1ToUse = (DL.isLittleEndian()) ? Op0 : Op1;
ExtractedElts[Idx] = IC.Builder.CreateExtractElement(
- Idx < 16 ? Op0ToUse : Op1ToUse, IC.Builder.getInt32(Idx & 15));
+ Idx < 16 ? Op0ToUse : Op1ToUse, Idx & 15);
}
// Insert this value into the result vector.
- Result = IC.Builder.CreateInsertElement(Result, ExtractedElts[Idx],
- IC.Builder.getInt32(I));
+ Result =
+ IC.Builder.CreateInsertElement(Result, ExtractedElts[Idx], I);
}
return CastInst::Create(Instruction::BitCast, Result, II.getType());
}
More information about the llvm-commits
mailing list