summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86FastISel.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2017-10-30 21:09:19 +0000
committerCraig Topper <craig.topper@intel.com>2017-10-30 21:09:19 +0000
commit9f01f6093cef31a7c972e7ffc98f60964c4941ba (patch)
treeb74a98901378062b3e4b85453252968023424173 /llvm/lib/Target/X86/X86FastISel.cpp
parent205e5f656b2f279b74c1f47d56643624e46271b4 (diff)
downloadbcm5719-llvm-9f01f6093cef31a7c972e7ffc98f60964c4941ba.tar.gz
bcm5719-llvm-9f01f6093cef31a7c972e7ffc98f60964c4941ba.zip
[X86] Add AVX512 support to fast isel's X86ChooseCmpOpcode.
llvm-svn: 316955
Diffstat (limited to 'llvm/lib/Target/X86/X86FastISel.cpp')
-rw-r--r--llvm/lib/Target/X86/X86FastISel.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86FastISel.cpp b/llvm/lib/Target/X86/X86FastISel.cpp
index 19ee52efe1d..654283f32f6 100644
--- a/llvm/lib/Target/X86/X86FastISel.cpp
+++ b/llvm/lib/Target/X86/X86FastISel.cpp
@@ -1342,6 +1342,7 @@ bool X86FastISel::X86SelectLoad(const Instruction *I) {
}
static unsigned X86ChooseCmpOpcode(EVT VT, const X86Subtarget *Subtarget) {
+ bool HasAVX512 = Subtarget->hasAVX512();
bool HasAVX = Subtarget->hasAVX();
bool X86ScalarSSEf32 = Subtarget->hasSSE1();
bool X86ScalarSSEf64 = Subtarget->hasSSE2();
@@ -1353,9 +1354,9 @@ static unsigned X86ChooseCmpOpcode(EVT VT, const X86Subtarget *Subtarget) {
case MVT::i32: return X86::CMP32rr;
case MVT::i64: return X86::CMP64rr;
case MVT::f32:
- return X86ScalarSSEf32 ? (HasAVX ? X86::VUCOMISSrr : X86::UCOMISSrr) : 0;
+ return X86ScalarSSEf32 ? (HasAVX512 ? X86::VUCOMISSZrr : HasAVX ? X86::VUCOMISSrr : X86::UCOMISSrr) : 0;
case MVT::f64:
- return X86ScalarSSEf64 ? (HasAVX ? X86::VUCOMISDrr : X86::UCOMISDrr) : 0;
+ return X86ScalarSSEf64 ? (HasAVX512 ? X86::VUCOMISDZrr : HasAVX ? X86::VUCOMISDrr : X86::UCOMISDrr) : 0;
}
}
OpenPOWER on IntegriCloud