summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2017-11-23 18:41:21 +0000
committerCraig Topper <craig.topper@intel.com>2017-11-23 18:41:21 +0000
commitf31b0b850bb03bf53c9fd60c929bcf7462554526 (patch)
tree10fd0b68a7a9baa182f407fe3f14de93635096f3 /llvm/lib
parent94b994972c2932f12dde886ffe8a97bae5eaebda (diff)
downloadbcm5719-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.cpp3
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp1
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;
}
}
OpenPOWER on IntegriCloud