mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-24 15:12:36 +00:00
[X86] Node need to check if AVX512 is supported when lowering vector CTLZ. The CTLZ operation is only Custom for vectors if AVX512 is enabled so if a vector gets here AVX512 is implied. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267330 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
822155bcb5
commit
5a6c34b731
@ -18711,14 +18711,13 @@ static SDValue LowerVectorCTLZ_AVX512(SDValue Op, SelectionDAG &DAG) {
|
||||
return DAG.getNode(ISD::SUB, dl, VT, TruncNode, Delta);
|
||||
}
|
||||
|
||||
static SDValue LowerCTLZ(SDValue Op, const X86Subtarget &Subtarget,
|
||||
SelectionDAG &DAG) {
|
||||
static SDValue LowerCTLZ(SDValue Op, SelectionDAG &DAG) {
|
||||
MVT VT = Op.getSimpleValueType();
|
||||
MVT OpVT = VT;
|
||||
unsigned NumBits = VT.getSizeInBits();
|
||||
SDLoc dl(Op);
|
||||
|
||||
if (VT.isVector() && Subtarget.hasAVX512())
|
||||
if (VT.isVector())
|
||||
return LowerVectorCTLZ_AVX512(Op, DAG);
|
||||
|
||||
Op = Op.getOperand(0);
|
||||
@ -18750,8 +18749,7 @@ static SDValue LowerCTLZ(SDValue Op, const X86Subtarget &Subtarget,
|
||||
return Op;
|
||||
}
|
||||
|
||||
static SDValue LowerCTLZ_ZERO_UNDEF(SDValue Op, const X86Subtarget &Subtarget,
|
||||
SelectionDAG &DAG) {
|
||||
static SDValue LowerCTLZ_ZERO_UNDEF(SDValue Op, SelectionDAG &DAG) {
|
||||
MVT VT = Op.getSimpleValueType();
|
||||
EVT OpVT = VT;
|
||||
unsigned NumBits = VT.getSizeInBits();
|
||||
@ -21272,8 +21270,8 @@ SDValue X86TargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG) const {
|
||||
case ISD::INIT_TRAMPOLINE: return LowerINIT_TRAMPOLINE(Op, DAG);
|
||||
case ISD::ADJUST_TRAMPOLINE: return LowerADJUST_TRAMPOLINE(Op, DAG);
|
||||
case ISD::FLT_ROUNDS_: return LowerFLT_ROUNDS_(Op, DAG);
|
||||
case ISD::CTLZ: return LowerCTLZ(Op, Subtarget, DAG);
|
||||
case ISD::CTLZ_ZERO_UNDEF: return LowerCTLZ_ZERO_UNDEF(Op, Subtarget, DAG);
|
||||
case ISD::CTLZ: return LowerCTLZ(Op, DAG);
|
||||
case ISD::CTLZ_ZERO_UNDEF: return LowerCTLZ_ZERO_UNDEF(Op, DAG);
|
||||
case ISD::CTTZ:
|
||||
case ISD::CTTZ_ZERO_UNDEF: return LowerCTTZ(Op, DAG);
|
||||
case ISD::MUL: return LowerMUL(Op, Subtarget, DAG);
|
||||
|
Loading…
x
Reference in New Issue
Block a user