summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2017-12-05 04:47:12 +0000
committerCraig Topper <craig.topper@intel.com>2017-12-05 04:47:12 +0000
commite1ba2450c2ec7954911fa7c7234c4b3f3be9f9ec (patch)
treeb0a9fcce9afe12b30ef37a29ec281cd0136f3da2 /llvm/lib/Target
parent7700912976a5948d31a0e34fe9f8c1059afabcac (diff)
downloadbcm5719-llvm-e1ba2450c2ec7954911fa7c7234c4b3f3be9f9ec.tar.gz
bcm5719-llvm-e1ba2450c2ec7954911fa7c7234c4b3f3be9f9ec.zip
[X86] Fix a crash if avx512bw and xop are both enabled when the IR contrains a v32i8 bitreverse.
llvm-svn: 319737
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index eae3800f86b..8e440743814 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -23792,12 +23792,13 @@ static SDValue LowerBITREVERSE_XOP(SDValue Op, SelectionDAG &DAG) {
static SDValue LowerBITREVERSE(SDValue Op, const X86Subtarget &Subtarget,
SelectionDAG &DAG) {
- if (Subtarget.hasXOP())
+ MVT VT = Op.getSimpleValueType();
+
+ if (Subtarget.hasXOP() && !VT.is512BitVector())
return LowerBITREVERSE_XOP(Op, DAG);
assert(Subtarget.hasSSSE3() && "SSSE3 required for BITREVERSE");
- MVT VT = Op.getSimpleValueType();
SDValue In = Op.getOperand(0);
SDLoc DL(Op);
OpenPOWER on IntegriCloud