summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorIgor Breger <igor.breger@intel.com>2016-09-05 08:26:51 +0000
committerIgor Breger <igor.breger@intel.com>2016-09-05 08:26:51 +0000
commita2f8ca9a34f5635df0a842010dc69ef95a723b7d (patch)
tree0af3a2159e318f73130bed10aa92cf766a53d5ee /llvm/lib
parent428169a5d61066bcc33bc1f11d2d073a284d0fba (diff)
downloadbcm5719-llvm-a2f8ca9a34f5635df0a842010dc69ef95a723b7d.tar.gz
bcm5719-llvm-a2f8ca9a34f5635df0a842010dc69ef95a723b7d.zip
[AVX512] Fix v8i1 /v16i1 zext + bitcast lowering pattern. Explicitly zero upper bits.
Differential Revision: http://reviews.llvm.org/D23983 llvm-svn: 280650
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86InstrAVX512.td8
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td
index 78cd5878662..59218bcf552 100644
--- a/llvm/lib/Target/X86/X86InstrAVX512.td
+++ b/llvm/lib/Target/X86/X86InstrAVX512.td
@@ -2117,15 +2117,15 @@ def : Pat<(i8 (bitconvert (v8i1 VK8:$src))),
(COPY_TO_REGCLASS VK8:$src, GR8)>;
def : Pat<(i32 (zext (i16 (bitconvert (v16i1 VK16:$src))))),
- (i32 (SUBREG_TO_REG (i64 0),
- (i16 (COPY_TO_REGCLASS VK16:$src, GR16)), sub_16bit))>;
+ (KMOVWrk VK16:$src)>;
def : Pat<(i32 (anyext (i16 (bitconvert (v16i1 VK16:$src))))),
(i32 (SUBREG_TO_REG (i64 0),
(i16 (COPY_TO_REGCLASS VK16:$src, GR16)), sub_16bit))>;
def : Pat<(i32 (zext (i8 (bitconvert (v8i1 VK8:$src))))),
- (i32 (SUBREG_TO_REG (i64 0),
- (i8 (COPY_TO_REGCLASS VK8:$src, GR8)), sub_8bit))>;
+ (MOVZX32rr8 (COPY_TO_REGCLASS VK8:$src, GR8))>, Requires<[NoDQI]>;
+def : Pat<(i32 (zext (i8 (bitconvert (v8i1 VK8:$src))))),
+ (KMOVBrk VK8:$src)>, Requires<[HasDQI]>;
def : Pat<(i32 (anyext (i8 (bitconvert (v8i1 VK8:$src))))),
(i32 (SUBREG_TO_REG (i64 0),
(i8 (COPY_TO_REGCLASS VK8:$src, GR8)), sub_8bit))>;
OpenPOWER on IntegriCloud