Skip to content

Commit 1fef3b3

Browse files
fix reviews
1 parent abd6a4d commit 1fef3b3

File tree

2 files changed

+316
-90
lines changed

2 files changed

+316
-90
lines changed

llvm/lib/Target/X86/X86ISelLowering.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55447,6 +55447,9 @@ static SDValue truncateAVX512SetCCNoBWI(EVT VT, EVT OpVT, SDValue LHS,
5544755447
return SDValue();
5544855448
}
5544955449

55450+
// The pattern (setcc (and (broadcast x), (2^n, 2^{n+1}, ...)), (0, 0, ...),
55451+
// eq/ne) is generated when using an integer as a mask. Instead of generating a
55452+
// broadcast + vptest, we can directly move the integer to a mask register.
5545055453
static SDValue combineAVX512SetCCToKMOV(EVT VT, SDValue Op0, ISD::CondCode CC,
5545155454
const SDLoc &DL, SelectionDAG &DAG,
5545255455
const X86Subtarget &Subtarget) {
@@ -55476,6 +55479,9 @@ static SDValue combineAVX512SetCCToKMOV(EVT VT, SDValue Op0, ISD::CondCode CC,
5547655479
UndefElts[0] || !EltBits[0].isPowerOf2())
5547755480
return SDValue();
5547855481

55482+
// Check if the constant pool contains only powers of 2 starting from some
55483+
// 2^N. The table may also contain undefs because of widening of vector
55484+
// operands.
5547955485
unsigned N = EltBits[0].logBase2();
5548055486
unsigned Len = UndefElts.getBitWidth();
5548155487
for (unsigned I = 1; I != Len; ++I) {
@@ -55501,9 +55507,7 @@ static SDValue combineAVX512SetCCToKMOV(EVT VT, SDValue Op0, ISD::CondCode CC,
5550155507
Masked = DAG.getNode(ISD::AND, DL, BroadcastOpVT, ShiftedValue,
5550255508
DAG.getConstant(Mask, DL, BroadcastOpVT));
5550355509
}
55504-
SDValue Trunc = DAG.getNode(BroadcastOpVT.bitsGT(MVT::i16) ? ISD::TRUNCATE
55505-
: ISD::ANY_EXTEND,
55506-
DL, MVT::i16, Masked);
55510+
SDValue Trunc = DAG.getAnyExtOrTrunc(Masked, DL, MVT::i16);
5550755511
SDValue Bitcast = DAG.getNode(ISD::BITCAST, DL, MVT::v16i1, Trunc);
5550855512
MVT PtrTy = DAG.getTargetLoweringInfo().getPointerTy(DAG.getDataLayout());
5550955513

0 commit comments

Comments
 (0)