[llvm] [PowerPC] Use constant 64-bit indices for Extract/InsertElement (PR #209015)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Jul 12 06:23:06 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-powerpc
Author: Andreas Jonson (andjo403)
<details>
<summary>Changes</summary>
The canonical form preferred by instCombine is to use 64-bit values for constant index in ExtractElement and InsertElement see
https://github.com/llvm/llvm-project/blob/9d5d8834793da9efe297620db3ef39633688f830/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp#L401-L411
---
Full diff: https://github.com/llvm/llvm-project/pull/209015.diff
1 Files Affected:
- (modified) llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp (+3-3)
``````````diff
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());
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/209015
More information about the llvm-commits
mailing list