[X86] Add description of FXAM instruction
authorSerge Pavlov <sepavloff@gmail.com>
Wed, 23 Jun 2021 06:33:55 +0000 (13:33 +0700)
committerSerge Pavlov <sepavloff@gmail.com>
Fri, 25 Jun 2021 05:26:51 +0000 (12:26 +0700)
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

16 files changed:
llvm/lib/Target/X86/X86FloatingPoint.cpp
llvm/lib/Target/X86/X86InstrFPStack.td
llvm/lib/Target/X86/X86SchedHaswell.td
llvm/lib/Target/X86/X86ScheduleAtom.td
llvm/lib/Target/X86/X86ScheduleZnver1.td
llvm/lib/Target/X86/X86ScheduleZnver2.td
llvm/test/tools/llvm-mca/X86/Barcelona/resources-x87.s
llvm/test/tools/llvm-mca/X86/BdVer2/resources-x87.s
llvm/test/tools/llvm-mca/X86/Broadwell/resources-x87.s
llvm/test/tools/llvm-mca/X86/BtVer2/resources-x87.s
llvm/test/tools/llvm-mca/X86/Generic/resources-x87.s
llvm/test/tools/llvm-mca/X86/SLM/resources-x87.s
llvm/test/tools/llvm-mca/X86/SandyBridge/resources-x87.s
llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-x87.s
llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-x87.s
llvm/test/tools/llvm-mca/X86/Znver3/resources-x87.s

index 1268d15..ef45cfb 100644 (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) {
index b538da0..cda28d1 100644 (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 {
index 7ce259b..99fddcd 100644 (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<[]> {
index d441969..704919c 100644 (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>;
index 3cb2f17..12f8e7c 100644 (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)>;
index f5576c9..5b4b151 100644 (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)>;
index 715e62b..eb5ad7c 100644 (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)
index 8c3d5a6..ff43e75 100644 (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)
index 8c0d61e..ca39f54 100644 (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)
index 571db68..50e7573 100644 (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)
index 715e62b..eb5ad7c 100644 (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)
index 4531d50..ee30d55 100644 (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)
index b90d0cb..eb6f47d 100644 (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)
index 93ed46f..50c9eff 100644 (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)
index af5e5f2..5774dfc 100644 (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)
index 815593d..9a92bd0 100644 (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)