diff options
| author | Craig Topper <craig.topper@intel.com> | 2017-09-05 05:49:44 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2017-09-05 05:49:44 +0000 |
| commit | c228d790afddfc71847108969080d9341599c406 (patch) | |
| tree | 0ffa6fb98ffd18f8bee16b408d0d14564f0a6f77 | |
| parent | 43c80be2e59b8defc295a4320742dd3d0d12d662 (diff) | |
| download | bcm5719-llvm-c228d790afddfc71847108969080d9341599c406.tar.gz bcm5719-llvm-c228d790afddfc71847108969080d9341599c406.zip | |
[X86] Add hasSideEffects=0 and mayLoad=1 to some instructions that recently had their patterns removed.
llvm-svn: 312520
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrAVX512.td | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td index 91e6df7b014..394dfbf6fc4 100644 --- a/llvm/lib/Target/X86/X86InstrAVX512.td +++ b/llvm/lib/Target/X86/X86InstrAVX512.td @@ -519,7 +519,7 @@ multiclass vinsert_for_size_split<int Opcode, X86VectorVTInfo From, X86VectorVTInfo To, SDPatternOperator vinsert_insert, SDPatternOperator vinsert_for_mask> { - let ExeDomain = To.ExeDomain in { + let hasSideEffects = 0, ExeDomain = To.ExeDomain in { defm rr : AVX512_maskable_split<Opcode, MRMSrcReg, To, (outs To.RC:$dst), (ins To.RC:$src1, From.RC:$src2, u8imm:$src3), "vinsert" # From.EltTypeName # "x" # From.NumElts, @@ -531,6 +531,7 @@ multiclass vinsert_for_size_split<int Opcode, X86VectorVTInfo From, (From.VT From.RC:$src2), (iPTR imm))>, AVX512AIi8Base, EVEX_4V; + let mayLoad = 1 in defm rm : AVX512_maskable_split<Opcode, MRMSrcMem, To, (outs To.RC:$dst), (ins To.RC:$src1, From.MemOp:$src2, u8imm:$src3), "vinsert" # From.EltTypeName # "x" # From.NumElts, @@ -1283,6 +1284,7 @@ multiclass avx512_subvec_broadcast_rm<bits<8> opc, string OpcodeStr, // is requested. multiclass avx512_subvec_broadcast_rm_dq<bits<8> opc, string OpcodeStr, X86VectorVTInfo _Dst, X86VectorVTInfo _Src> { + let hasSideEffects = 0, mayLoad = 1 in defm rm : AVX512_maskable_split<opc, MRMSrcMem, _Dst, (outs _Dst.RC:$dst), (ins _Src.MemOp:$src), OpcodeStr, "$src", "$src", (null_frag), |

