diff options
| author | Craig Topper <craig.topper@intel.com> | 2018-01-06 21:02:26 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2018-01-06 21:02:26 +0000 |
| commit | 0f4ccb78067578e1666bbd9ea86b417a892ee571 (patch) | |
| tree | b02120bf58911277a1531720125770c311d6d6cc /llvm/lib/Target/X86 | |
| parent | 90353a9f42a3c99c34cbdaf7d6ea1ab47badccd2 (diff) | |
| download | bcm5719-llvm-0f4ccb78067578e1666bbd9ea86b417a892ee571.tar.gz bcm5719-llvm-0f4ccb78067578e1666bbd9ea86b417a892ee571.zip | |
[X86] Add load folding pattern to EVEX vcvttss2si/vcvtsd2si.
llvm-svn: 321945
Diffstat (limited to 'llvm/lib/Target/X86')
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrAVX512.td | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td index 3c06ca34fa0..a701471c1af 100644 --- a/llvm/lib/Target/X86/X86InstrAVX512.td +++ b/llvm/lib/Target/X86/X86InstrAVX512.td @@ -6616,12 +6616,13 @@ let Predicates = [HasAVX512] in { [(set _DstRC.RC:$dst, (OpNodeRnd (_SrcRC.VT _SrcRC.RC:$src), (i32 FROUND_NO_EXC)))], itins.rr>, EVEX,VEX_LIG , EVEX_B, Sched<[itins.Sched]>; - let mayLoad = 1, hasSideEffects = 0 in - def rm_Int : AVX512<opc, MRMSrcMem, (outs _DstRC.RC:$dst), - (ins _SrcRC.IntScalarMemOp:$src), - !strconcat(asm,"\t{$src, $dst|$dst, $src}"), - [], itins.rm>, EVEX, VEX_LIG, - Sched<[itins.Sched.Folded, ReadAfterLd]>; + def rm_Int : AVX512<opc, MRMSrcMem, (outs _DstRC.RC:$dst), + (ins _SrcRC.IntScalarMemOp:$src), + !strconcat(asm,"\t{$src, $dst|$dst, $src}"), + [(set _DstRC.RC:$dst, (OpNodeRnd + (_SrcRC.VT _SrcRC.ScalarIntMemCPat:$src), + (i32 FROUND_CURRENT)))], itins.rm>, + EVEX, VEX_LIG, Sched<[itins.Sched.Folded, ReadAfterLd]>; def : InstAlias<asm # aliasStr # "\t{$src, $dst|$dst, $src}", (!cast<Instruction>(NAME # "rr_Int") _DstRC.RC:$dst, _SrcRC.RC:$src), 0>; |

