Skip to content

Commit cca4f54

Browse files
committed
[InstCombine][X86] Avoid repeated getType() calls when folding blendv->select. NFC.
Cleanup prep work for #58895
1 parent 16f3492 commit cca4f54

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

llvm/lib/Target/X86/X86InstCombineIntrinsic.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2701,23 +2701,23 @@ X86TTIImpl::instCombineIntrinsic(InstCombiner &IC, IntrinsicInst &II) const {
27012701
if (match(Mask, PatternMatch::m_SExt(PatternMatch::m_Value(BoolVec))) &&
27022702
BoolVec->getType()->isVectorTy() &&
27032703
BoolVec->getType()->getScalarSizeInBits() == 1) {
2704-
assert(Mask->getType()->getPrimitiveSizeInBits() ==
2705-
II.getType()->getPrimitiveSizeInBits() &&
2704+
auto *MaskTy = cast<FixedVectorType>(Mask->getType());
2705+
auto *OpTy = cast<FixedVectorType>(II.getType());
2706+
assert(MaskTy->getPrimitiveSizeInBits() ==
2707+
OpTy->getPrimitiveSizeInBits() &&
27062708
"Not expecting mask and operands with different sizes");
2709+
unsigned NumMaskElts = MaskTy->getNumElements();
2710+
unsigned NumOperandElts = OpTy->getNumElements();
27072711

2708-
unsigned NumMaskElts =
2709-
cast<FixedVectorType>(Mask->getType())->getNumElements();
2710-
unsigned NumOperandElts =
2711-
cast<FixedVectorType>(II.getType())->getNumElements();
27122712
if (NumMaskElts == NumOperandElts) {
27132713
return SelectInst::Create(BoolVec, Op1, Op0);
27142714
}
27152715

27162716
// If the mask has less elements than the operands, each mask bit maps to
27172717
// multiple elements of the operands. Bitcast back and forth.
27182718
if (NumMaskElts < NumOperandElts) {
2719-
Value *CastOp0 = IC.Builder.CreateBitCast(Op0, Mask->getType());
2720-
Value *CastOp1 = IC.Builder.CreateBitCast(Op1, Mask->getType());
2719+
Value *CastOp0 = IC.Builder.CreateBitCast(Op0, MaskTy);
2720+
Value *CastOp1 = IC.Builder.CreateBitCast(Op1, MaskTy);
27212721
Value *Sel = IC.Builder.CreateSelect(BoolVec, CastOp1, CastOp0);
27222722
return new BitCastInst(Sel, II.getType());
27232723
}

0 commit comments

Comments
 (0)