mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-29 22:52:18 +00:00
Remove FsMOVAPSrr and friends. They have no patterns and are no longer selected anywhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192089 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8fdba75d5b
commit
510fb362a8
@ -299,8 +299,6 @@ X86InstrInfo::X86InstrInfo(X86TargetMachine &tm)
|
||||
{ X86::DIV64r, X86::DIV64m, TB_FOLDED_LOAD },
|
||||
{ X86::DIV8r, X86::DIV8m, TB_FOLDED_LOAD },
|
||||
{ X86::EXTRACTPSrr, X86::EXTRACTPSmr, TB_FOLDED_STORE },
|
||||
{ X86::FsMOVAPDrr, X86::MOVSDmr, TB_FOLDED_STORE | TB_NO_REVERSE },
|
||||
{ X86::FsMOVAPSrr, X86::MOVSSmr, TB_FOLDED_STORE | TB_NO_REVERSE },
|
||||
{ X86::IDIV16r, X86::IDIV16m, TB_FOLDED_LOAD },
|
||||
{ X86::IDIV32r, X86::IDIV32m, TB_FOLDED_LOAD },
|
||||
{ X86::IDIV64r, X86::IDIV64m, TB_FOLDED_LOAD },
|
||||
@ -357,8 +355,6 @@ X86InstrInfo::X86InstrInfo(X86TargetMachine &tm)
|
||||
{ X86::TEST8ri, X86::TEST8mi, TB_FOLDED_LOAD },
|
||||
// AVX 128-bit versions of foldable instructions
|
||||
{ X86::VEXTRACTPSrr,X86::VEXTRACTPSmr, TB_FOLDED_STORE },
|
||||
{ X86::FsVMOVAPDrr, X86::VMOVSDmr, TB_FOLDED_STORE | TB_NO_REVERSE },
|
||||
{ X86::FsVMOVAPSrr, X86::VMOVSSmr, TB_FOLDED_STORE | TB_NO_REVERSE },
|
||||
{ X86::VEXTRACTF128rr, X86::VEXTRACTF128mr, TB_FOLDED_STORE | TB_ALIGN_16 },
|
||||
{ X86::VMOVAPDrr, X86::VMOVAPDmr, TB_FOLDED_STORE | TB_ALIGN_16 },
|
||||
{ X86::VMOVAPSrr, X86::VMOVAPSmr, TB_FOLDED_STORE | TB_ALIGN_16 },
|
||||
@ -403,8 +399,6 @@ X86InstrInfo::X86InstrInfo(X86TargetMachine &tm)
|
||||
{ X86::CVTTSD2SIrr, X86::CVTTSD2SIrm, 0 },
|
||||
{ X86::CVTTSS2SI64rr, X86::CVTTSS2SI64rm, 0 },
|
||||
{ X86::CVTTSS2SIrr, X86::CVTTSS2SIrm, 0 },
|
||||
{ X86::FsMOVAPDrr, X86::MOVSDrm, TB_NO_REVERSE },
|
||||
{ X86::FsMOVAPSrr, X86::MOVSSrm, TB_NO_REVERSE },
|
||||
{ X86::IMUL16rri, X86::IMUL16rmi, 0 },
|
||||
{ X86::IMUL16rri8, X86::IMUL16rmi8, 0 },
|
||||
{ X86::IMUL32rri, X86::IMUL32rmi, 0 },
|
||||
@ -496,8 +490,6 @@ X86InstrInfo::X86InstrInfo(X86TargetMachine &tm)
|
||||
{ X86::VCVTSD2SIrr, X86::VCVTSD2SIrm, 0 },
|
||||
{ X86::VCVTSS2SI64rr, X86::VCVTSS2SI64rm, 0 },
|
||||
{ X86::VCVTSS2SIrr, X86::VCVTSS2SIrm, 0 },
|
||||
{ X86::FsVMOVAPDrr, X86::VMOVSDrm, TB_NO_REVERSE },
|
||||
{ X86::FsVMOVAPSrr, X86::VMOVSSrm, TB_NO_REVERSE },
|
||||
{ X86::VMOV64toPQIrr, X86::VMOVQI2PQIrm, 0 },
|
||||
{ X86::VMOV64toSDrr, X86::VMOV64toSDrm, 0 },
|
||||
{ X86::VMOVAPDrr, X86::VMOVAPDrm, TB_ALIGN_16 },
|
||||
|
@ -483,10 +483,10 @@ let isReMaterializable = 1, isAsCheapAsAMove = 1, canFoldAsLoad = 1,
|
||||
// SSE 1 & 2 - Move FP Scalar Instructions
|
||||
//
|
||||
// Move Instructions. Register-to-register movss/movsd is not used for FR32/64
|
||||
// register copies because it's a partial register update; FsMOVAPSrr/FsMOVAPDrr
|
||||
// is used instead. Register-to-register movss/movsd is not modeled as an
|
||||
// INSERT_SUBREG because INSERT_SUBREG requires that the insert be implementable
|
||||
// in terms of a copy, and just mentioned, we don't use movss/movsd for copies.
|
||||
// register copies because it's a partial register update; Register-to-register
|
||||
// movss/movsd is not modeled as an INSERT_SUBREG because INSERT_SUBREG requires
|
||||
// that the insert be implementable in terms of a copy, and just mentioned, we
|
||||
// don't use movss/movsd for copies.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
multiclass sse12_move_rr<RegisterClass RC, SDNode OpNode, ValueType vt,
|
||||
@ -1102,23 +1102,6 @@ let Predicates = [UseSSE1] in {
|
||||
(MOVUPSmr addr:$dst, VR128:$src)>;
|
||||
}
|
||||
|
||||
// Alias instruction to do FR32 or FR64 reg-to-reg copy using movaps. Upper
|
||||
// bits are disregarded. FIXME: Set encoding to pseudo!
|
||||
let isCodeGenOnly = 1, neverHasSideEffects = 1, SchedRW = [WriteMove] in {
|
||||
def FsVMOVAPSrr : VPSI<0x28, MRMSrcReg, (outs FR32:$dst), (ins FR32:$src),
|
||||
"movaps\t{$src, $dst|$dst, $src}", [],
|
||||
IIC_SSE_MOVA_P_RR>, VEX;
|
||||
def FsVMOVAPDrr : VPDI<0x28, MRMSrcReg, (outs FR64:$dst), (ins FR64:$src),
|
||||
"movapd\t{$src, $dst|$dst, $src}", [],
|
||||
IIC_SSE_MOVA_P_RR>, VEX;
|
||||
def FsMOVAPSrr : PSI<0x28, MRMSrcReg, (outs FR32:$dst), (ins FR32:$src),
|
||||
"movaps\t{$src, $dst|$dst, $src}", [],
|
||||
IIC_SSE_MOVA_P_RR>;
|
||||
def FsMOVAPDrr : PDI<0x28, MRMSrcReg, (outs FR64:$dst), (ins FR64:$src),
|
||||
"movapd\t{$src, $dst|$dst, $src}", [],
|
||||
IIC_SSE_MOVA_P_RR>;
|
||||
}
|
||||
|
||||
// Alias instruction to load FR32 or FR64 from f128mem using movaps. Upper
|
||||
// bits are disregarded. FIXME: Set encoding to pseudo!
|
||||
let canFoldAsLoad = 1, isReMaterializable = 1, SchedRW = [WriteLoad] in {
|
||||
|
Loading…
x
Reference in New Issue
Block a user