diff options
| author | Craig Topper <craig.topper@gmail.com> | 2016-05-08 23:43:17 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2016-05-08 23:43:17 +0000 |
| commit | 707c89c00d93d74a359df5e7d885e5c588b7fd55 (patch) | |
| tree | a537ec1d5e9a10062f39cea344b48e01446f08ae /llvm/lib | |
| parent | 955298746d9fe544255512d9a4cde6e54efbbee5 (diff) | |
| download | bcm5719-llvm-707c89c00d93d74a359df5e7d885e5c588b7fd55.tar.gz bcm5719-llvm-707c89c00d93d74a359df5e7d885e5c588b7fd55.zip | |
[AVX512] Add non-temporal store patterns for v16i32/v32i16/v64i8.
llvm-svn: 268889
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrAVX512.td | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td index 2115ec2ce81..047b3c30a4e 100644 --- a/llvm/lib/Target/X86/X86InstrAVX512.td +++ b/llvm/lib/Target/X86/X86InstrAVX512.td @@ -3214,6 +3214,15 @@ defm VMOVNTDQ : avx512_movnt_vl<0xE7, "vmovntdq", avx512vl_i64_info>, PD; defm VMOVNTPD : avx512_movnt_vl<0x2B, "vmovntpd", avx512vl_f64_info>, PD, VEX_W; defm VMOVNTPS : avx512_movnt_vl<0x2B, "vmovntps", avx512vl_f32_info>, PS; +let Predicates = [HasAVX512], AddedComplexity = 400 in { + def : Pat<(alignednontemporalstore (v16i32 VR512:$src), addr:$dst), + (VMOVNTDQZmr addr:$dst, VR512:$src)>; + def : Pat<(alignednontemporalstore (v32i16 VR512:$src), addr:$dst), + (VMOVNTDQZmr addr:$dst, VR512:$src)>; + def : Pat<(alignednontemporalstore (v64i8 VR512:$src), addr:$dst), + (VMOVNTDQZmr addr:$dst, VR512:$src)>; +} + let Predicates = [HasVLX], AddedComplexity = 400 in { def : Pat<(alignednontemporalstore (v8i32 VR256X:$src), addr:$dst), (VMOVNTDQZ256mr addr:$dst, VR256X:$src)>; |

