[llvm] [VectorCombine] foldShuffleOfBinops - failure to track OperandValueInfo (PR #171934)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 22 02:36:39 PST 2026
================
@@ -2437,21 +2437,26 @@ bool VectorCombine::foldShuffleOfBinops(Instruction &I) {
M -= NumSrcElts;
};
+ TTI::OperandValueInfo Op0Info, Op1Info;
SmallVector<int> NewMask0(OldMask);
TargetTransformInfo::ShuffleKind SK0 = TargetTransformInfo::SK_PermuteTwoSrc;
if (X == Z) {
llvm::for_each(NewMask0, ConvertToUnary);
SK0 = TargetTransformInfo::SK_PermuteSingleSrc;
Z = PoisonValue::get(BinOpTy);
- }
+ Op0Info = TTI.getOperandInfo(X);
+ } else
+ Op0Info = TTI.commonOperandInfo(X, Z);
SmallVector<int> NewMask1(OldMask);
TargetTransformInfo::ShuffleKind SK1 = TargetTransformInfo::SK_PermuteTwoSrc;
if (Y == W) {
----------------
RKSimon wrote:
Just put `TTI::OperandValueInfo Op1Info = TTI.commonOperandInfo(Y, W);` once above the if()?
https://github.com/llvm/llvm-project/pull/171934
More information about the llvm-commits
mailing list