diff options
| author | Craig Topper <craig.topper@intel.com> | 2018-01-07 18:34:08 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2018-01-07 18:34:08 +0000 |
| commit | c1ec57c3e236b620ce0ebeb7773c429fb579d938 (patch) | |
| tree | ec09e7b6854c1e372d70ff45241ddaab594bbd94 /llvm/lib/Target | |
| parent | d58c1655454b14e719d3c4163bc76195e1dfaec8 (diff) | |
| download | bcm5719-llvm-c1ec57c3e236b620ce0ebeb7773c429fb579d938.tar.gz bcm5719-llvm-c1ec57c3e236b620ce0ebeb7773c429fb579d938.zip | |
[X86] Remove unneeded code from combineGatherScatter that used to delte SIGN_EXTEND_INREG nodes created during legalization of v2i1/v4i1 masks on KNL.
v2i1/v4i1 are now legal on KNL so no sign_extend_inreg is generated.
llvm-svn: 321968
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 56bdb3583a9..ca24d6df891 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -36479,22 +36479,12 @@ static SDValue combineGatherScatter(SDNode *N, SelectionDAG &DAG, } } - // Gather and Scatter instructions use k-registers for masks. The type of - // the masks is v*i1. So the mask will be truncated anyway. - // The SIGN_EXTEND_INREG my be dropped. - SDValue Mask = N->getOperand(2); - if (Subtarget.hasAVX512() && Mask.getOpcode() == ISD::SIGN_EXTEND_INREG) { - SmallVector<SDValue, 5> NewOps(N->op_begin(), N->op_end()); - NewOps[2] = Mask.getOperand(0); - DAG.UpdateNodeOperands(N, NewOps); - return SDValue(N, 0); - } - // With AVX2 we only demand the upper bit of the mask. if (!Subtarget.hasAVX512()) { const TargetLowering &TLI = DAG.getTargetLoweringInfo(); TargetLowering::TargetLoweringOpt TLO(DAG, !DCI.isBeforeLegalize(), !DCI.isBeforeLegalizeOps()); + SDValue Mask = N->getOperand(2); KnownBits Known; APInt DemandedMask(APInt::getSignMask(Mask.getScalarValueSizeInBits())); if (TLI.SimplifyDemandedBits(Mask, DemandedMask, Known, TLO)) { |

