summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86ISelLowering.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2016-10-22 20:15:39 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2016-10-22 20:15:39 +0000
commitd3829c89bc29b17309ccb01f5ccc9eb34caf857f (patch)
tree88635bff33729146979d47164d939f2a2db4f4f7 /llvm/lib/Target/X86/X86ISelLowering.cpp
parent56c0524f0fdcd3f3b0c0c2b1914e8438d721736a (diff)
downloadbcm5719-llvm-d3829c89bc29b17309ccb01f5ccc9eb34caf857f.tar.gz
bcm5719-llvm-d3829c89bc29b17309ccb01f5ccc9eb34caf857f.zip
[X86][AVX512VL] Added support for combining target 256-bit shuffles to AVX512VL VPERMV3
llvm-svn: 284922
Diffstat (limited to 'llvm/lib/Target/X86/X86ISelLowering.cpp')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 1431db77d78..3ffebf84521 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -25564,6 +25564,9 @@ static bool combineX86ShuffleChain(ArrayRef<SDValue> Inputs, SDValue Root,
((Subtarget.hasAVX512() &&
(MaskVT == MVT::v8f64 || MaskVT == MVT::v8i64 ||
MaskVT == MVT::v16f32 || MaskVT == MVT::v16i32)) ||
+ (Subtarget.hasVLX() &&
+ (MaskVT == MVT::v4f64 || MaskVT == MVT::v4i64 ||
+ MaskVT == MVT::v8f32 || MaskVT == MVT::v8i32)) ||
(Subtarget.hasBWI() && MaskVT == MVT::v32i16) ||
(Subtarget.hasBWI() && Subtarget.hasVLX() && MaskVT == MVT::v16i16))) {
MVT VPermMaskSVT = MVT::getIntegerVT(MaskEltSizeInBits);
OpenPOWER on IntegriCloud