[llvm] r280782 - [X86] Add hasSideEffects=0 to some instructions.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 6 21:46:15 PDT 2016
Author: ctopper
Date: Tue Sep 6 23:46:15 2016
New Revision: 280782
URL: http://llvm.org/viewvc/llvm-project?rev=280782&view=rev
Log:
[X86] Add hasSideEffects=0 to some instructions.
Modified:
llvm/trunk/lib/Target/X86/X86InstrAVX512.td
llvm/trunk/lib/Target/X86/X86InstrSSE.td
Modified: llvm/trunk/lib/Target/X86/X86InstrAVX512.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrAVX512.td?rev=280782&r1=280781&r2=280782&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrAVX512.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrAVX512.td Tue Sep 6 23:46:15 2016
@@ -5619,6 +5619,7 @@ let Predicates = [HasAVX512] in {
def rr : AVX512<opc, MRMSrcReg, (outs _DstRC.RC:$dst), (ins _SrcRC.FRC:$src),
!strconcat(asm,"\t{$src, $dst|$dst, $src}"),
[(set _DstRC.RC:$dst, (OpNode _SrcRC.FRC:$src))]>, EVEX;
+ let hasSideEffects = 0 in
def rb : AVX512<opc, MRMSrcReg, (outs _DstRC.RC:$dst), (ins _SrcRC.FRC:$src),
!strconcat(asm,"\t{{sae}, $src, $dst|$dst, $src, {sae}}"),
[]>, EVEX, EVEX_B;
Modified: llvm/trunk/lib/Target/X86/X86InstrSSE.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrSSE.td?rev=280782&r1=280781&r2=280782&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrSSE.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrSSE.td Tue Sep 6 23:46:15 2016
@@ -3880,13 +3880,14 @@ def VMOVDQUYmr : I<0x7F, MRMDestMem, (ou
}
let SchedRW = [WriteMove] in {
-let hasSideEffects = 0 in
+let hasSideEffects = 0 in {
def MOVDQArr : PDI<0x6F, MRMSrcReg, (outs VR128:$dst), (ins VR128:$src),
"movdqa\t{$src, $dst|$dst, $src}", [], IIC_SSE_MOVA_P_RR>;
def MOVDQUrr : I<0x6F, MRMSrcReg, (outs VR128:$dst), (ins VR128:$src),
"movdqu\t{$src, $dst|$dst, $src}",
[], IIC_SSE_MOVU_P_RR>, XS, Requires<[UseSSE2]>;
+}
// For Disassembler
let isCodeGenOnly = 1, ForceDisassemble = 1, hasSideEffects = 0 in {
@@ -6415,7 +6416,7 @@ let ExeDomain = GenericDomain in {
[]>, Sched<[WriteFAdd]>;
// Operation, mem.
- let mayLoad = 1 in
+ let mayLoad = 1, hasSideEffects = 0 in
def SSm : SS4AIi8<opcss, MRMSrcMem,
(outs FR32:$dst), (ins FR32:$src1, f32mem:$src2, i32u8imm:$src3),
!if(Is2Addr,
@@ -6462,7 +6463,7 @@ let ExeDomain = GenericDomain in {
[]>, Sched<[WriteFAdd]>;
// Operation, mem.
- let mayLoad = 1 in
+ let mayLoad = 1, hasSideEffects = 0 in
def SDm : SS4AIi8<opcsd, MRMSrcMem,
(outs FR64:$dst), (ins FR64:$src1, f64mem:$src2, i32u8imm:$src3),
!if(Is2Addr,
More information about the llvm-commits
mailing list