mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-23 04:28:30 +00:00
Remove more filters from the disassembler. Mark some AVX512 instructions as CodeGenOnly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192525 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f931867317
commit
017d8a3e23
@ -1177,6 +1177,7 @@ def VMOV64toPQIZrr : AVX512SI<0x6E, MRMSrcReg, (outs VR128X:$dst), (ins GR64:$sr
|
||||
[(set VR128X:$dst,
|
||||
(v2i64 (scalar_to_vector GR64:$src)))],
|
||||
IIC_SSE_MOVDQ>, EVEX, VEX_W, VEX_LIG;
|
||||
let isCodeGenOnly = 1 in {
|
||||
def VMOV64toSDZrr : AVX512SI<0x6E, MRMSrcReg, (outs FR64:$dst), (ins GR64:$src),
|
||||
"vmovq{z}\t{$src, $dst|$dst, $src}",
|
||||
[(set FR64:$dst, (bitconvert GR64:$src))],
|
||||
@ -1185,6 +1186,7 @@ def VMOVSDto64Zrr : AVX512SI<0x7E, MRMDestReg, (outs GR64:$dst), (ins FR64:$src)
|
||||
"vmovq{z}\t{$src, $dst|$dst, $src}",
|
||||
[(set GR64:$dst, (bitconvert FR64:$src))],
|
||||
IIC_SSE_MOVDQ>, EVEX, VEX_W, Sched<[WriteMove]>;
|
||||
}
|
||||
def VMOVSDto64Zmr : AVX512SI<0x7E, MRMDestMem, (outs), (ins i64mem:$dst, FR64:$src),
|
||||
"vmovq{z}\t{$src, $dst|$dst, $src}",
|
||||
[(store (i64 (bitconvert FR64:$src)), addr:$dst)],
|
||||
@ -1193,6 +1195,7 @@ def VMOVSDto64Zmr : AVX512SI<0x7E, MRMDestMem, (outs), (ins i64mem:$dst, FR64:$s
|
||||
|
||||
// Move Int Doubleword to Single Scalar
|
||||
//
|
||||
let isCodeGenOnly = 1 in {
|
||||
def VMOVDI2SSZrr : AVX512SI<0x6E, MRMSrcReg, (outs FR32X:$dst), (ins GR32:$src),
|
||||
"vmovd{z}\t{$src, $dst|$dst, $src}",
|
||||
[(set FR32X:$dst, (bitconvert GR32:$src))],
|
||||
@ -1202,6 +1205,7 @@ def VMOVDI2SSZrm : AVX512SI<0x6E, MRMSrcMem, (outs FR32X:$dst), (ins i32mem:$sr
|
||||
"vmovd{z}\t{$src, $dst|$dst, $src}",
|
||||
[(set FR32X:$dst, (bitconvert (loadi32 addr:$src)))],
|
||||
IIC_SSE_MOVDQ>, EVEX, VEX_LIG, EVEX_CD8<32, CD8VT1>;
|
||||
}
|
||||
|
||||
// Move Packed Doubleword Int to Packed Double Int
|
||||
//
|
||||
@ -1236,6 +1240,7 @@ def VMOVPQIto64Zmr : I<0xD6, MRMDestMem, (outs),
|
||||
|
||||
// Move Scalar Single to Double Int
|
||||
//
|
||||
let isCodeGenOnly = 1 in {
|
||||
def VMOVSS2DIZrr : AVX512SI<0x7E, MRMDestReg, (outs GR32:$dst),
|
||||
(ins FR32X:$src),
|
||||
"vmovd{z}\t{$src, $dst|$dst, $src}",
|
||||
@ -1246,6 +1251,7 @@ def VMOVSS2DIZmr : AVX512SI<0x7E, MRMDestMem, (outs),
|
||||
"vmovd{z}\t{$src, $dst|$dst, $src}",
|
||||
[(store (i32 (bitconvert FR32X:$src)), addr:$dst)],
|
||||
IIC_SSE_MOVDQ>, EVEX, VEX_LIG, EVEX_CD8<32, CD8VT1>;
|
||||
}
|
||||
|
||||
// Move Quadword Int to Packed Quadword Int
|
||||
//
|
||||
|
@ -541,11 +541,6 @@ RecognizableInstr::filter_ret RecognizableInstr::filter() const {
|
||||
Name == "XRELEASE_PREFIX")
|
||||
return FILTER_WEAK;
|
||||
|
||||
if (HasFROperands && Name.find("MOV") != Name.npos &&
|
||||
((Name.find("2") != Name.npos && Name.find("32") == Name.npos) ||
|
||||
(Name.find("to") != Name.npos)))
|
||||
return FILTER_STRONG;
|
||||
|
||||
return FILTER_NORMAL;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user