mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
[X86] Add hasSideEffects=0 to some instructions.
llvm-svn: 280782
This commit is contained in:
parent
a231c68058
commit
6b7eb97ac7
@ -5619,6 +5619,7 @@ let Predicates = [HasAVX512] in {
|
|||||||
def rr : AVX512<opc, MRMSrcReg, (outs _DstRC.RC:$dst), (ins _SrcRC.FRC:$src),
|
def rr : AVX512<opc, MRMSrcReg, (outs _DstRC.RC:$dst), (ins _SrcRC.FRC:$src),
|
||||||
!strconcat(asm,"\t{$src, $dst|$dst, $src}"),
|
!strconcat(asm,"\t{$src, $dst|$dst, $src}"),
|
||||||
[(set _DstRC.RC:$dst, (OpNode _SrcRC.FRC:$src))]>, EVEX;
|
[(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),
|
def rb : AVX512<opc, MRMSrcReg, (outs _DstRC.RC:$dst), (ins _SrcRC.FRC:$src),
|
||||||
!strconcat(asm,"\t{{sae}, $src, $dst|$dst, $src, {sae}}"),
|
!strconcat(asm,"\t{{sae}, $src, $dst|$dst, $src, {sae}}"),
|
||||||
[]>, EVEX, EVEX_B;
|
[]>, EVEX, EVEX_B;
|
||||||
|
@ -3880,13 +3880,14 @@ def VMOVDQUYmr : I<0x7F, MRMDestMem, (outs), (ins i256mem:$dst, VR256:$src),
|
|||||||
}
|
}
|
||||||
|
|
||||||
let SchedRW = [WriteMove] in {
|
let SchedRW = [WriteMove] in {
|
||||||
let hasSideEffects = 0 in
|
let hasSideEffects = 0 in {
|
||||||
def MOVDQArr : PDI<0x6F, MRMSrcReg, (outs VR128:$dst), (ins VR128:$src),
|
def MOVDQArr : PDI<0x6F, MRMSrcReg, (outs VR128:$dst), (ins VR128:$src),
|
||||||
"movdqa\t{$src, $dst|$dst, $src}", [], IIC_SSE_MOVA_P_RR>;
|
"movdqa\t{$src, $dst|$dst, $src}", [], IIC_SSE_MOVA_P_RR>;
|
||||||
|
|
||||||
def MOVDQUrr : I<0x6F, MRMSrcReg, (outs VR128:$dst), (ins VR128:$src),
|
def MOVDQUrr : I<0x6F, MRMSrcReg, (outs VR128:$dst), (ins VR128:$src),
|
||||||
"movdqu\t{$src, $dst|$dst, $src}",
|
"movdqu\t{$src, $dst|$dst, $src}",
|
||||||
[], IIC_SSE_MOVU_P_RR>, XS, Requires<[UseSSE2]>;
|
[], IIC_SSE_MOVU_P_RR>, XS, Requires<[UseSSE2]>;
|
||||||
|
}
|
||||||
|
|
||||||
// For Disassembler
|
// For Disassembler
|
||||||
let isCodeGenOnly = 1, ForceDisassemble = 1, hasSideEffects = 0 in {
|
let isCodeGenOnly = 1, ForceDisassemble = 1, hasSideEffects = 0 in {
|
||||||
@ -6415,7 +6416,7 @@ let ExeDomain = GenericDomain in {
|
|||||||
[]>, Sched<[WriteFAdd]>;
|
[]>, Sched<[WriteFAdd]>;
|
||||||
|
|
||||||
// Operation, mem.
|
// Operation, mem.
|
||||||
let mayLoad = 1 in
|
let mayLoad = 1, hasSideEffects = 0 in
|
||||||
def SSm : SS4AIi8<opcss, MRMSrcMem,
|
def SSm : SS4AIi8<opcss, MRMSrcMem,
|
||||||
(outs FR32:$dst), (ins FR32:$src1, f32mem:$src2, i32u8imm:$src3),
|
(outs FR32:$dst), (ins FR32:$src1, f32mem:$src2, i32u8imm:$src3),
|
||||||
!if(Is2Addr,
|
!if(Is2Addr,
|
||||||
@ -6462,7 +6463,7 @@ let ExeDomain = GenericDomain in {
|
|||||||
[]>, Sched<[WriteFAdd]>;
|
[]>, Sched<[WriteFAdd]>;
|
||||||
|
|
||||||
// Operation, mem.
|
// Operation, mem.
|
||||||
let mayLoad = 1 in
|
let mayLoad = 1, hasSideEffects = 0 in
|
||||||
def SDm : SS4AIi8<opcsd, MRMSrcMem,
|
def SDm : SS4AIi8<opcsd, MRMSrcMem,
|
||||||
(outs FR64:$dst), (ins FR64:$src1, f64mem:$src2, i32u8imm:$src3),
|
(outs FR64:$dst), (ins FR64:$src1, f64mem:$src2, i32u8imm:$src3),
|
||||||
!if(Is2Addr,
|
!if(Is2Addr,
|
||||||
|
Loading…
Reference in New Issue
Block a user