summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2018-09-23 06:49:48 +0000
committerCraig Topper <craig.topper@intel.com>2018-09-23 06:49:48 +0000
commitc296436a301845d96360ce978afe50522d2b3f12 (patch)
treec7c4d000b5ba0ce3545f94144eb1fb654891c8bc /llvm/lib
parent3e0b4b0eb7575654b34e67aff7452cab3c85d82d (diff)
downloadbcm5719-llvm-c296436a301845d96360ce978afe50522d2b3f12.tar.gz
bcm5719-llvm-c296436a301845d96360ce978afe50522d2b3f12.zip
[X86] Add isel pattern for (v8i16 (sext (v8i1))) with DQI and no BWI.
Our lowering that tries to avoid this sign extend can be defeated by the DAG combine folding it with a truncate. The pattern needs to extend to an v8i32 then truncate back down to v8i16. llvm-svn: 342830
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86InstrAVX512.td5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td
index bf57a2b5fde..d21777a0e91 100644
--- a/llvm/lib/Target/X86/X86InstrAVX512.td
+++ b/llvm/lib/Target/X86/X86InstrAVX512.td
@@ -9687,6 +9687,11 @@ let Predicates = [HasDQI, NoBWI] in {
(VPMOVDWZrr (v16i32 (VPMOVM2DZrr VK16:$src)))>;
}
+let Predicates = [HasDQI, NoBWI, HasVLX] in {
+ def : Pat<(v8i16 (sext (v8i1 VK8:$src))),
+ (VPMOVDWZ256rr (v8i32 (VPMOVM2DZ256rr VK8:$src)))>;
+}
+
//===----------------------------------------------------------------------===//
// AVX-512 - COMPRESS and EXPAND
//
OpenPOWER on IntegriCloud