1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00

[X86] Add description of FXAM instruction

Previously this instruction could be used only in assembler. This change
makes it available for compiler also. Scheduling information was copied
from FTST instruction, hopefully this can be a satisfactory approximation.

Differential Revision: https://reviews.llvm.org/D104853
This commit is contained in:
Serge Pavlov 2021-06-23 13:33:55 +07:00
parent ba4b6a66c6
commit 1badfbbb03
16 changed files with 44 additions and 35 deletions

View File

@ -785,6 +785,9 @@ static const TableEntry OpcodeTable[] = {
{ X86::UCOM_Fpr32 , X86::UCOM_Fr },
{ X86::UCOM_Fpr64 , X86::UCOM_Fr },
{ X86::UCOM_Fpr80 , X86::UCOM_Fr },
{ X86::XAM_Fp32 , X86::XAM_F },
{ X86::XAM_Fp64 , X86::XAM_F },
{ X86::XAM_Fp80 , X86::XAM_F },
};
static unsigned getConcreteOpcode(unsigned Opcode) {

View File

@ -377,6 +377,13 @@ def TST_F : FPI<0xD9, MRM_E4, (outs), (ins), "ftst">;
} // SchedRW
} // Uses = [FPCW], mayRaiseFPException = 1
let SchedRW = [WriteFTest] in {
def XAM_Fp32 : FpIf32<(outs), (ins RFP32:$src), OneArgFP, []>;
def XAM_Fp64 : FpIf64<(outs), (ins RFP64:$src), OneArgFP, []>;
def XAM_Fp80 : FpI_<(outs), (ins RFP80:$src), OneArgFP, []>;
def XAM_F : FPI<0xD9, MRM_E5, (outs), (ins), "fxam">;
} // SchedRW
// Versions of FP instructions that take a single memory operand. Added for the
// disassembler; remove as they are included with patterns elsewhere.
let SchedRW = [WriteFComLd], Uses = [FPCW], mayRaiseFPException = 1,
@ -732,7 +739,6 @@ def FNOP : I<0xD9, MRM_D0, (outs), (ins), "fnop", []>, Sched<[WriteNop]>;
let SchedRW = [WriteMicrocoded] in {
let Defs = [FPSW] in {
def WAIT : I<0x9B, RawFrm, (outs), (ins), "wait", []>;
def FXAM : I<0xD9, MRM_E5, (outs), (ins), "fxam", []>;
def FDECSTP : I<0xD9, MRM_F6, (outs), (ins), "fdecstp", []>;
def FINCSTP : I<0xD9, MRM_F7, (outs), (ins), "fincstp", []>;
let Uses = [FPCW], mayRaiseFPException = 1 in {

View File

@ -782,7 +782,7 @@ def : InstRW<[HWWrite3P01], (instrs COM_FIPr, COM_FIr, UCOM_FIPr, UCOM_FIr)>;
def : InstRW<[HWWriteP1], (instregex "TST_F")>;
// FXAM.
def : InstRW<[HWWrite2P1], (instrs FXAM)>;
def : InstRW<[HWWrite2P1], (instrs XAM_F)>;
// FPREM.
def HWWriteFPREM : SchedWriteRes<[]> {

View File

@ -499,7 +499,7 @@ def AtomWrite0_1 : SchedWriteRes<[AtomPort0]> {
let Latency = 1;
let ResourceCycles = [1];
}
def : InstRW<[AtomWrite0_1], (instrs FXAM, LD_Frr,
def : InstRW<[AtomWrite0_1], (instrs XAM_F, LD_Frr,
MOVSX64rr32)>;
def : SchedAlias<WriteALURMW, AtomWrite0_1>;
def : SchedAlias<WriteADCRMW, AtomWrite0_1>;

View File

@ -974,7 +974,7 @@ def : InstRW<[ZnWriteFPU03], (instregex "FICOM(P?)(16|32)m")>;
def : InstRW<[ZnWriteFPU0Lat1], (instregex "TST_F")>;
// FXAM.
def : InstRW<[ZnWriteFPU3Lat1], (instrs FXAM)>;
def : InstRW<[ZnWriteFPU3Lat1], (instrs XAM_F)>;
// FPREM.
def : InstRW<[WriteMicrocoded], (instrs FPREM)>;

View File

@ -983,7 +983,7 @@ def : InstRW<[Zn2WriteFPU03], (instregex "FICOM(P?)(16|32)m")>;
def : InstRW<[Zn2WriteFPU0Lat1], (instregex "TST_F")>;
// FXAM.
def : InstRW<[Zn2WriteFPU3Lat1], (instrs FXAM)>;
def : InstRW<[Zn2WriteFPU3Lat1], (instrs XAM_F)>;
// FPREM.
def : InstRW<[WriteMicrocoded], (instrs FPREM)>;

View File

@ -346,7 +346,7 @@ fyl2xp1
# CHECK-NEXT: 3 3 1.00 U fucomi %st(3), %st
# CHECK-NEXT: 3 3 1.00 U fucompi %st(3), %st
# CHECK-NEXT: 1 100 0.33 U wait
# CHECK-NEXT: 1 100 0.33 U fxam
# CHECK-NEXT: 1 1 1.00 U fxam
# CHECK-NEXT: 1 1 0.33 U fxch %st(1)
# CHECK-NEXT: 1 1 0.33 U fxch %st(3)
# CHECK-NEXT: 5 5 2.00 * * U fxrstor (%eax)
@ -367,7 +367,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
# CHECK-NEXT: - 136.00 52.67 90.67 17.00 54.67 34.00 34.00
# CHECK-NEXT: - 136.00 53.33 90.33 17.00 54.33 34.00 34.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@ -511,7 +511,7 @@ fyl2xp1
# CHECK-NEXT: - - 1.00 1.00 - 1.00 - - fucomi %st(3), %st
# CHECK-NEXT: - - 1.00 1.00 - 1.00 - - fucompi %st(3), %st
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - wait
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fxam
# CHECK-NEXT: - - 1.00 - - - - - fxam
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fxch %st(1)
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fxch %st(3)
# CHECK-NEXT: - - 0.50 0.50 1.00 2.00 0.50 0.50 fxrstor (%eax)

View File

@ -346,7 +346,7 @@ fyl2xp1
# CHECK-NEXT: 2 1 1.00 U fucomi %st(3), %st
# CHECK-NEXT: 2 1 1.00 U fucompi %st(3), %st
# CHECK-NEXT: 1 100 0.50 U wait
# CHECK-NEXT: 1 100 0.50 U fxam
# CHECK-NEXT: 2 1 1.00 U fxam
# CHECK-NEXT: 1 1 1.00 U fxch %st(1)
# CHECK-NEXT: 1 1 1.00 U fxch %st(3)
# CHECK-NEXT: 1 100 0.50 * * U fxrstor (%eax)
@ -382,7 +382,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18]
# CHECK-NEXT: 55.50 55.50 - - - 39.50 23.50 - 224.00 224.00 - - - 7.00 56.00 32.00 - - - 49.00 49.00 - 13.00
# CHECK-NEXT: 55.50 55.50 - - - 40.00 23.00 - 224.50 224.50 - - - 7.00 57.00 32.00 - - - 49.00 49.00 - 13.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions:
@ -526,7 +526,7 @@ fyl2xp1
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - fucomi %st(3), %st
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - fucompi %st(3), %st
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - wait
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - fxam
# CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - fxam
# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - fxch %st(1)
# CHECK-NEXT: - - - - - 1.00 1.00 - - - - - - - - - - - - - - - - fxch %st(3)
# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - fxrstor (%eax)

View File

@ -346,7 +346,7 @@ fyl2xp1
# CHECK-NEXT: 1 3 1.00 U fucomi %st(3), %st
# CHECK-NEXT: 1 3 1.00 U fucompi %st(3), %st
# CHECK-NEXT: 2 2 0.50 U wait
# CHECK-NEXT: 1 100 0.25 U fxam
# CHECK-NEXT: 1 1 1.00 U fxam
# CHECK-NEXT: 12 14 4.00 U fxch %st(1)
# CHECK-NEXT: 12 14 4.00 U fxch %st(3)
# CHECK-NEXT: 90 63 16.50 * * U fxrstor (%eax)
@ -369,7 +369,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
# CHECK-NEXT: - 9.00 116.92 145.92 49.00 49.00 27.00 59.42 69.75 9.00
# CHECK-NEXT: - 9.00 117.67 145.67 49.00 49.00 27.00 59.17 69.50 9.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@ -513,7 +513,7 @@ fyl2xp1
# CHECK-NEXT: - - - 1.00 - - - - - - fucomi %st(3), %st
# CHECK-NEXT: - - - 1.00 - - - - - - fucompi %st(3), %st
# CHECK-NEXT: - - 0.50 0.50 - - - 0.50 0.50 - wait
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fxam
# CHECK-NEXT: - - 1.00 - - - - - - - fxam
# CHECK-NEXT: - - 3.25 2.25 - - - 1.25 5.25 - fxch %st(1)
# CHECK-NEXT: - - 3.25 2.25 - - - 1.25 5.25 - fxch %st(3)
# CHECK-NEXT: - - 17.25 12.25 16.50 16.50 - 12.75 14.75 - fxrstor (%eax)

View File

@ -346,7 +346,7 @@ fyl2xp1
# CHECK-NEXT: 1 3 1.00 U fucomi %st(3), %st
# CHECK-NEXT: 1 3 1.00 U fucompi %st(3), %st
# CHECK-NEXT: 1 100 0.50 U wait
# CHECK-NEXT: 1 100 0.50 U fxam
# CHECK-NEXT: 1 3 1.00 U fxam
# CHECK-NEXT: 1 1 0.50 U fxch %st(1)
# CHECK-NEXT: 1 1 0.50 U fxch %st(3)
# CHECK-NEXT: 1 100 0.50 * * U fxrstor (%eax)
@ -373,7 +373,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
# CHECK-NEXT: 42.00 20.00 - 54.00 349.00 54.00 34.00 39.00 - 13.00 7.00 - - -
# CHECK-NEXT: 42.50 19.50 - 55.00 349.00 55.00 34.00 39.00 - 13.00 7.00 - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:
@ -517,7 +517,7 @@ fyl2xp1
# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - fucomi %st(3), %st
# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - fucompi %st(3), %st
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - wait
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fxam
# CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - fxam
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fxch %st(1)
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fxch %st(3)
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - fxrstor (%eax)

View File

@ -346,7 +346,7 @@ fyl2xp1
# CHECK-NEXT: 3 3 1.00 U fucomi %st(3), %st
# CHECK-NEXT: 3 3 1.00 U fucompi %st(3), %st
# CHECK-NEXT: 1 100 0.33 U wait
# CHECK-NEXT: 1 100 0.33 U fxam
# CHECK-NEXT: 1 1 1.00 U fxam
# CHECK-NEXT: 1 1 0.33 U fxch %st(1)
# CHECK-NEXT: 1 1 0.33 U fxch %st(3)
# CHECK-NEXT: 5 5 2.00 * * U fxrstor (%eax)
@ -367,7 +367,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
# CHECK-NEXT: - 136.00 52.67 90.67 17.00 54.67 34.00 34.00
# CHECK-NEXT: - 136.00 53.33 90.33 17.00 54.33 34.00 34.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@ -511,7 +511,7 @@ fyl2xp1
# CHECK-NEXT: - - 1.00 1.00 - 1.00 - - fucomi %st(3), %st
# CHECK-NEXT: - - 1.00 1.00 - 1.00 - - fucompi %st(3), %st
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - wait
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fxam
# CHECK-NEXT: - - 1.00 - - - - - fxam
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fxch %st(1)
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fxch %st(3)
# CHECK-NEXT: - - 0.50 0.50 1.00 2.00 0.50 0.50 fxrstor (%eax)

View File

@ -346,7 +346,7 @@ fyl2xp1
# CHECK-NEXT: 1 3 1.00 U fucomi %st(3), %st
# CHECK-NEXT: 1 3 1.00 U fucompi %st(3), %st
# CHECK-NEXT: 1 100 1.00 U wait
# CHECK-NEXT: 1 100 1.00 U fxam
# CHECK-NEXT: 1 1 0.50 U fxam
# CHECK-NEXT: 1 1 0.50 U fxch %st(1)
# CHECK-NEXT: 1 1 0.50 U fxch %st(3)
# CHECK-NEXT: 1 100 1.00 * * U fxrstor (%eax)
@ -367,7 +367,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7]
# CHECK-NEXT: - 312.00 16.00 65.00 61.00 9.50 9.50 52.00
# CHECK-NEXT: - 312.00 16.00 64.50 61.50 9.50 9.50 52.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions:
@ -511,7 +511,7 @@ fyl2xp1
# CHECK-NEXT: - - - - 1.00 - - - fucomi %st(3), %st
# CHECK-NEXT: - - - - 1.00 - - - fucompi %st(3), %st
# CHECK-NEXT: - - - 1.00 - - - - wait
# CHECK-NEXT: - - - 1.00 - - - - fxam
# CHECK-NEXT: - - - 0.50 0.50 - - - fxam
# CHECK-NEXT: - - - - - 0.50 0.50 - fxch %st(1)
# CHECK-NEXT: - - - - - 0.50 0.50 - fxch %st(3)
# CHECK-NEXT: - - - 1.00 - - - - fxrstor (%eax)

View File

@ -346,7 +346,7 @@ fyl2xp1
# CHECK-NEXT: 3 3 1.00 U fucomi %st(3), %st
# CHECK-NEXT: 3 3 1.00 U fucompi %st(3), %st
# CHECK-NEXT: 1 100 0.33 U wait
# CHECK-NEXT: 1 100 0.33 U fxam
# CHECK-NEXT: 1 1 1.00 U fxam
# CHECK-NEXT: 1 1 0.33 U fxch %st(1)
# CHECK-NEXT: 1 1 0.33 U fxch %st(3)
# CHECK-NEXT: 5 5 2.00 * * U fxrstor (%eax)
@ -367,7 +367,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
# CHECK-NEXT: - 136.00 52.67 90.67 17.00 54.67 34.00 34.00
# CHECK-NEXT: - 136.00 53.33 90.33 17.00 54.33 34.00 34.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@ -511,7 +511,7 @@ fyl2xp1
# CHECK-NEXT: - - 1.00 1.00 - 1.00 - - fucomi %st(3), %st
# CHECK-NEXT: - - 1.00 1.00 - 1.00 - - fucompi %st(3), %st
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - wait
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fxam
# CHECK-NEXT: - - 1.00 - - - - - fxam
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fxch %st(1)
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - fxch %st(3)
# CHECK-NEXT: - - 0.50 0.50 1.00 2.00 0.50 0.50 fxrstor (%eax)

View File

@ -346,7 +346,7 @@ fyl2xp1
# CHECK-NEXT: 1 2 1.00 U fucomi %st(3), %st
# CHECK-NEXT: 1 2 1.00 U fucompi %st(3), %st
# CHECK-NEXT: 2 2 0.50 U wait
# CHECK-NEXT: 1 100 0.25 U fxam
# CHECK-NEXT: 1 2 1.00 U fxam
# CHECK-NEXT: 15 17 4.00 U fxch %st(1)
# CHECK-NEXT: 15 17 4.00 U fxch %st(3)
# CHECK-NEXT: 90 63 16.50 * * U fxrstor (%eax)
@ -369,7 +369,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
# CHECK-NEXT: - 7.00 126.75 52.25 49.00 49.00 27.00 149.75 69.25 9.00
# CHECK-NEXT: - 7.00 127.50 52.00 49.00 49.00 27.00 149.50 69.00 9.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@ -513,7 +513,7 @@ fyl2xp1
# CHECK-NEXT: - - 1.00 - - - - - - - fucomi %st(3), %st
# CHECK-NEXT: - - 1.00 - - - - - - - fucompi %st(3), %st
# CHECK-NEXT: - - 0.50 0.50 - - - 0.50 0.50 - wait
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fxam
# CHECK-NEXT: - - 1.00 - - - - - - - fxam
# CHECK-NEXT: - - 4.00 2.00 - - - 4.00 5.00 - fxch %st(1)
# CHECK-NEXT: - - 4.00 2.00 - - - 4.00 5.00 - fxch %st(3)
# CHECK-NEXT: - - 17.25 12.25 16.50 16.50 - 12.75 14.75 - fxrstor (%eax)

View File

@ -346,7 +346,7 @@ fyl2xp1
# CHECK-NEXT: 1 2 1.00 U fucomi %st(3), %st
# CHECK-NEXT: 1 2 1.00 U fucompi %st(3), %st
# CHECK-NEXT: 2 2 0.50 U wait
# CHECK-NEXT: 1 100 0.25 U fxam
# CHECK-NEXT: 1 2 1.00 U fxam
# CHECK-NEXT: 15 17 4.00 U fxch %st(1)
# CHECK-NEXT: 15 17 4.00 U fxch %st(3)
# CHECK-NEXT: 90 63 16.50 * * U fxrstor (%eax)
@ -369,7 +369,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
# CHECK-NEXT: - 7.00 126.75 52.25 49.00 49.00 27.00 149.75 69.25 9.00
# CHECK-NEXT: - 7.00 127.50 52.00 49.00 49.00 27.00 149.50 69.00 9.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
@ -513,7 +513,7 @@ fyl2xp1
# CHECK-NEXT: - - 1.00 - - - - - - - fucomi %st(3), %st
# CHECK-NEXT: - - 1.00 - - - - - - - fucompi %st(3), %st
# CHECK-NEXT: - - 0.50 0.50 - - - 0.50 0.50 - wait
# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - fxam
# CHECK-NEXT: - - 1.00 - - - - - - - fxam
# CHECK-NEXT: - - 4.00 2.00 - - - 4.00 5.00 - fxch %st(1)
# CHECK-NEXT: - - 4.00 2.00 - - - 4.00 5.00 - fxch %st(3)
# CHECK-NEXT: - - 17.25 12.25 16.50 16.50 - 12.75 14.75 - fxrstor (%eax)

View File

@ -346,7 +346,7 @@ fyl2xp1
# CHECK-NEXT: 1 3 1.00 U fucomi %st(3), %st
# CHECK-NEXT: 1 3 1.00 U fucompi %st(3), %st
# CHECK-NEXT: 100 100 25.00 U wait
# CHECK-NEXT: 100 100 25.00 U fxam
# CHECK-NEXT: 2 1 1.00 U fxam
# CHECK-NEXT: 1 1 1.00 U fxch %st(1)
# CHECK-NEXT: 1 1 1.00 U fxch %st(3)
# CHECK-NEXT: 100 100 25.00 * * U fxrstor (%eax)
@ -382,7 +382,7 @@ fyl2xp1
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]
# CHECK-NEXT: 10.67 10.67 10.67 886.50 886.50 886.50 886.50 - 137.00 203.00 119.00 119.00 13.50 13.50 - 24.00 24.00 24.00 15.33 15.33 15.33 13.00 13.00
# CHECK-NEXT: 10.67 10.67 10.67 861.50 861.50 861.50 861.50 - 137.00 204.00 120.00 119.00 13.50 13.50 - 24.00 24.00 24.00 15.33 15.33 15.33 13.00 13.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:
@ -526,7 +526,7 @@ fyl2xp1
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - - - - - - - - - - fucomi %st(3), %st
# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - - - - - - - - - - fucompi %st(3), %st
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - wait
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - fxam
# CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - - - - - - - - - - fxam
# CHECK-NEXT: - - - 1.00 1.00 1.00 1.00 - - - - - - - - - - - - - - - - fxch %st(1)
# CHECK-NEXT: - - - 1.00 1.00 1.00 1.00 - - - - - - - - - - - - - - - - fxch %st(3)
# CHECK-NEXT: - - - 25.00 25.00 25.00 25.00 - - - - - - - - - - - - - - - - fxrstor (%eax)