diff options
| author | Craig Topper <craig.topper@intel.com> | 2017-11-23 18:41:21 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2017-11-23 18:41:21 +0000 |
| commit | f31b0b850bb03bf53c9fd60c929bcf7462554526 (patch) | |
| tree | 10fd0b68a7a9baa182f407fe3f14de93635096f3 /llvm/lib | |
| parent | 94b994972c2932f12dde886ffe8a97bae5eaebda (diff) | |
| download | bcm5719-llvm-f31b0b850bb03bf53c9fd60c929bcf7462554526.tar.gz bcm5719-llvm-f31b0b850bb03bf53c9fd60c929bcf7462554526.zip | |
[X86] Teach isel that X86ISD::CMPM_RND zeros the upper bits of the mask register.
llvm-svn: 318933
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 1 |
2 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp index 504482a5e2a..93a3b9281d9 100644 --- a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -456,7 +456,8 @@ static bool isLegalMaskCompare(SDNode *N, const X86Subtarget *Subtarget) { unsigned Opcode = N->getOpcode(); if (Opcode == X86ISD::PCMPEQM || Opcode == X86ISD::PCMPGTM || Opcode == X86ISD::CMPM || Opcode == X86ISD::TESTM || - Opcode == X86ISD::TESTNM || Opcode == X86ISD::CMPMU) { + Opcode == X86ISD::TESTNM || Opcode == X86ISD::CMPMU || + Opcode == X86ISD::CMPM_RND) { // We can get 256-bit 8 element types here without VLX being enabled. When // this happens we will use 512-bit operations and the mask will not be // zero extended. diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index eabaad83d70..c0d850429e1 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -5013,6 +5013,7 @@ static bool isMaskedZeroUpperBitsvXi1(unsigned int Opcode) { case X86ISD::PCMPGTM: case X86ISD::CMPM: case X86ISD::CMPMU: + case X86ISD::CMPM_RND: return true; } } |

