forked from OSchip/llvm-project
[X86] Remove FSIN/FCOS isel patterns and the pseudo instructions that they selected for the FP stackifier.
We always expand these to libcalls so get rid of the last vestiges of using the instructions.
This commit is contained in:
parent
d6bb256b44
commit
a0aef63208
|
@ -666,9 +666,6 @@ static const TableEntry OpcodeTable[] = {
|
|||
{ X86::CMOVP_Fp32 , X86::CMOVP_F },
|
||||
{ X86::CMOVP_Fp64 , X86::CMOVP_F },
|
||||
{ X86::CMOVP_Fp80 , X86::CMOVP_F },
|
||||
{ X86::COS_Fp32 , X86::COS_F },
|
||||
{ X86::COS_Fp64 , X86::COS_F },
|
||||
{ X86::COS_Fp80 , X86::COS_F },
|
||||
{ X86::DIVR_Fp32m , X86::DIVR_F32m },
|
||||
{ X86::DIVR_Fp64m , X86::DIVR_F64m },
|
||||
{ X86::DIVR_Fp64m32 , X86::DIVR_F32m },
|
||||
|
@ -741,9 +738,6 @@ static const TableEntry OpcodeTable[] = {
|
|||
{ X86::MUL_FpI32m32 , X86::MUL_FI32m },
|
||||
{ X86::MUL_FpI32m64 , X86::MUL_FI32m },
|
||||
{ X86::MUL_FpI32m80 , X86::MUL_FI32m },
|
||||
{ X86::SIN_Fp32 , X86::SIN_F },
|
||||
{ X86::SIN_Fp64 , X86::SIN_F },
|
||||
{ X86::SIN_Fp80 , X86::SIN_F },
|
||||
{ X86::SQRT_Fp32 , X86::SQRT_F },
|
||||
{ X86::SQRT_Fp64 , X86::SQRT_F },
|
||||
{ X86::SQRT_Fp80 , X86::SQRT_F },
|
||||
|
|
|
@ -369,11 +369,6 @@ defm ABS : FPUnary<fabs, MRM_E1, "fabs">;
|
|||
let SchedRW = [WriteFSqrt80] in
|
||||
defm SQRT: FPUnary<fsqrt,MRM_FA, "fsqrt">;
|
||||
|
||||
let SchedRW = [WriteMicrocoded] in {
|
||||
defm SIN : FPUnary<fsin, MRM_FE, "fsin">;
|
||||
defm COS : FPUnary<fcos, MRM_FF, "fcos">;
|
||||
}
|
||||
|
||||
let SchedRW = [WriteFCom] in {
|
||||
let hasSideEffects = 0 in {
|
||||
def TST_Fp32 : FpIf32<(outs), (ins RFP32:$src), OneArgFP, []>;
|
||||
|
@ -721,6 +716,8 @@ def FDECSTP : I<0xD9, MRM_F6, (outs), (ins), "fdecstp", []>;
|
|||
def FINCSTP : I<0xD9, MRM_F7, (outs), (ins), "fincstp", []>;
|
||||
def FPREM : I<0xD9, MRM_F8, (outs), (ins), "fprem", []>;
|
||||
def FYL2XP1 : I<0xD9, MRM_F9, (outs), (ins), "fyl2xp1", []>;
|
||||
def FSIN : I<0xD9, MRM_FE, (outs), (ins), "fsin", []>;
|
||||
def FCOS : I<0xD9, MRM_FF, (outs), (ins), "fcos", []>;
|
||||
def FSINCOS : I<0xD9, MRM_FB, (outs), (ins), "fsincos", []>;
|
||||
def FRNDINT : I<0xD9, MRM_FC, (outs), (ins), "frndint", []>;
|
||||
def FSCALE : I<0xD9, MRM_FD, (outs), (ins), "fscale", []>;
|
||||
|
|
|
@ -888,8 +888,7 @@ def AtomWrite01_174 : SchedWriteRes<[AtomPort01]> {
|
|||
let Latency = 174;
|
||||
let ResourceCycles = [174];
|
||||
}
|
||||
def : InstRW<[AtomWrite01_174], (instrs FSINCOS)>;
|
||||
def : InstRW<[AtomWrite01_174], (instregex "(COS|SIN)_F")>;
|
||||
def : InstRW<[AtomWrite01_174], (instrs FSINCOS, FSIN, FCOS)>;
|
||||
|
||||
def AtomWrite01_183 : SchedWriteRes<[AtomPort01]> {
|
||||
let Latency = 183;
|
||||
|
|
Loading…
Reference in New Issue