mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-16 14:31:59 +00:00
Add the X86 FMAs to the scheduling model.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178303 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f2a2806baf
commit
bad24f757d
@ -566,13 +566,13 @@ class AVXPCLMULIi8<bits<8> o, Format F, dag outs, dag ins, string asm,
|
||||
class FMA3<bits<8> o, Format F, dag outs, dag ins, string asm,
|
||||
list<dag>pattern, InstrItinClass itin = NoItinerary>
|
||||
: I<o, F, outs, ins, asm, pattern, itin>, T8,
|
||||
OpSize, VEX_4V, Requires<[HasFMA]>;
|
||||
OpSize, VEX_4V, FMASC, Requires<[HasFMA]>;
|
||||
|
||||
// FMA4 Instruction Templates
|
||||
class FMA4<bits<8> o, Format F, dag outs, dag ins, string asm,
|
||||
list<dag>pattern, InstrItinClass itin = NoItinerary>
|
||||
: Ii8<o, F, outs, ins, asm, pattern, itin>, TA,
|
||||
OpSize, VEX_4V, VEX_I8IMM, Requires<[HasFMA4]>;
|
||||
OpSize, VEX_4V, VEX_I8IMM, FMASC, Requires<[HasFMA4]>;
|
||||
|
||||
// XOP 2, 3 and 4 Operand Instruction Template
|
||||
class IXOP<bits<8> o, Format F, dag outs, dag ins, string asm,
|
||||
|
@ -67,6 +67,10 @@ defm WriteFMul : X86SchedWritePair; // Floating point multiplication.
|
||||
defm WriteFDiv : X86SchedWritePair; // Floating point division.
|
||||
defm WriteFSqrt : X86SchedWritePair; // Floating point square root.
|
||||
defm WriteFRcp : X86SchedWritePair; // Floating point reciprocal.
|
||||
defm WriteFMA : X86SchedWritePair; // Fused Multiply Add.
|
||||
|
||||
// FMA Scheduling helper class.
|
||||
class FMASC { X86FoldableSchedWrite Sched = WriteFAdd; }
|
||||
|
||||
// Vector integer operations.
|
||||
defm WriteVecALU : X86SchedWritePair; // Vector integer ALU op, no logicals.
|
||||
|
Loading…
x
Reference in New Issue
Block a user