diff --git a/llvm/lib/Target/X86/X86ScheduleZnver2.td b/llvm/lib/Target/X86/X86ScheduleZnver2.td --- a/llvm/lib/Target/X86/X86ScheduleZnver2.td +++ b/llvm/lib/Target/X86/X86ScheduleZnver2.td @@ -187,7 +187,7 @@ defm : X86WriteRes; defm : X86WriteRes; -defm : X86WriteRes; +defm : X86WriteRes; defm : X86WriteRes; defm : X86WriteRes; @@ -216,7 +216,7 @@ // Bit counts. defm : Zn2WriteResPair; -defm : Zn2WriteResPair; +defm : Zn2WriteResPair; defm : Zn2WriteResPair; defm : Zn2WriteResPair; defm : Zn2WriteResPair; @@ -272,13 +272,13 @@ defm : Zn2WriteResFpuPair; defm : Zn2WriteResFpuPair; defm : X86WriteResPairUnsupported; -defm : Zn2WriteResFpuPair; -defm : Zn2WriteResFpuPair; -defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; defm : X86WriteResPairUnsupported; -defm : Zn2WriteResFpuPair; -defm : Zn2WriteResFpuPair; -defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; defm : X86WriteResPairUnsupported; defm : Zn2WriteResFpuPair; defm : Zn2WriteResFpuPair; @@ -314,8 +314,8 @@ defm : Zn2WriteResFpuPair; defm : X86WriteResPairUnsupported; defm : Zn2WriteResFpuPair; -defm : Zn2WriteResFpuPair; -defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; defm : X86WriteResPairUnsupported; defm : Zn2WriteResFpuPair; defm : Zn2WriteResFpuPair; @@ -326,16 +326,16 @@ defm : Zn2WriteResFpuPair; defm : Zn2WriteResFpuPair; defm : X86WriteResPairUnsupported; -defm : Zn2WriteResFpuPair; -defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; defm : X86WriteResPairUnsupported; defm : Zn2WriteResFpuPair; defm : Zn2WriteResFpuPair; -defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; defm : X86WriteResPairUnsupported; defm : Zn2WriteResFpuPair; defm : Zn2WriteResFpuPair; -defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; defm : X86WriteResPairUnsupported; defm : Zn2WriteResFpuPair; defm : Zn2WriteResFpuPair; @@ -381,7 +381,7 @@ defm : Zn2WriteResFpuPair; defm : Zn2WriteResFpuPair; -defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; defm : X86WriteResPairUnsupported; defm : Zn2WriteResFpuPair; defm : Zn2WriteResFpuPair; @@ -403,7 +403,7 @@ defm : Zn2WriteResFpuPair; defm : X86WriteResPairUnsupported; defm : Zn2WriteResFpuPair; -defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; defm : X86WriteResPairUnsupported; defm : Zn2WriteResFpuPair; defm : Zn2WriteResFpuPair; @@ -425,8 +425,8 @@ defm : Zn2WriteResFpuPair; // Vector Shift Operations -defm : Zn2WriteResFpuPair; -defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; +defm : Zn2WriteResFpuPair; defm : X86WriteResPairUnsupported; // Vector insert/extract operations. @@ -470,6 +470,12 @@ def Zn2WriteMicrocoded : SchedWriteRes<[]> { let Latency = 100; } +defm : Zn2WriteResPair; +defm : Zn2WriteResPair; +defm : Zn2WriteResPair; +defm : Zn2WriteResPair; +defm : Zn2WriteResPair; +defm : Zn2WriteResPair; def : SchedAlias; def : SchedAlias; @@ -518,14 +524,14 @@ let NumMicroOps = 2; } -def : InstRW<[Zn2WriteXCHG], (instregex "XCHG(8|16|32|64)rr", "XCHG(16|32|64)ar")>; +def : InstRW<[Zn2WriteXCHG], (instregex "^XCHG(8|16|32|64)rr", "^XCHG(16|32|64)ar")>; // r,m. def Zn2WriteXCHGrm : SchedWriteRes<[Zn2AGU, Zn2ALU]> { let Latency = 5; let NumMicroOps = 2; } -def : InstRW<[Zn2WriteXCHGrm, ReadAfterLd], (instregex "XCHG(8|16|32|64)rm")>; +def : InstRW<[Zn2WriteXCHGrm, ReadAfterLd], (instregex "^XCHG(8|16|32|64)rm")>; def : InstRW<[WriteMicrocoded], (instrs XLAT)>; @@ -595,8 +601,11 @@ def Zn2WriteMul16 : SchedWriteRes<[Zn2ALU1, Zn2Multiplier]> { let Latency = 3; } +def Zn2WriteMul16Imm : SchedWriteRes<[Zn2ALU1, Zn2Multiplier]> { + let Latency = 4; +} def : SchedAlias; -def : SchedAlias; +def : SchedAlias; def : SchedAlias; // m16. @@ -1002,6 +1011,7 @@ // mm <- mm. def Zn2WriteFPU12 : SchedWriteRes<[Zn2FPU12]> ; def Zn2WriteFPU12Y : SchedWriteRes<[Zn2FPU12]> { + let Latency = 4; let NumMicroOps = 2; } def Zn2WriteFPU12m : SchedWriteRes<[Zn2AGU, Zn2FPU12]> ; @@ -1110,15 +1120,6 @@ //-- Arithmetic instructions --// -// HADD, HSUB PS/PD -// PHADD|PHSUB (S) W/D. -def : SchedAlias; -def : SchedAlias; -def : SchedAlias; -def : SchedAlias; -def : SchedAlias; -def : SchedAlias; - // PCMPGTQ. def Zn2WritePCMPGTQr : SchedWriteRes<[Zn2FPU03]>; def : InstRW<[Zn2WritePCMPGTQr], (instregex "(V?)PCMPGTQ(Y?)rr")>; @@ -1138,8 +1139,12 @@ // PSLL,PSRL,PSRA W/D/Q. // x,x / v,v,x. -def Zn2WritePShift : SchedWriteRes<[Zn2FPU2]> ; -def Zn2WritePShiftY : SchedWriteRes<[Zn2FPU2]> ; +def Zn2WritePShift : SchedWriteRes<[Zn2FPU2]> { + let Latency = 3; +} +def Zn2WritePShiftY : SchedWriteRes<[Zn2FPU2]> { + let Latency = 3; +} // PSLL,PSRL DQ. def : InstRW<[Zn2WritePShift], (instregex "(V?)PS(R|L)LDQri")>; @@ -1281,7 +1286,7 @@ } // CVTDQ2PD. // x,x. -def : InstRW<[Zn2WriteCVTDQ2PDr], (instregex "(V)?CVTDQ2PDrr")>; +def : InstRW<[Zn2WriteCVTDQ2PDr], (instregex "(V)?CVTDQ2P(D|S)rr")>; // Same as xmm // y,x. @@ -1291,9 +1296,9 @@ def Zn2WriteCVTPD2DQr: SchedWriteRes<[Zn2FPU12, Zn2FPU3]> { let Latency = 3; } -// CVT(T)PD2DQ. +// CVT(T)P(D|S)2DQ. // x,x. -def : InstRW<[Zn2WriteCVTPD2DQr], (instregex "(V?)CVT(T?)PD2DQrr")>; +def : InstRW<[Zn2WriteCVTPD2DQr], (instregex "(V?)CVT(T?)P(D|S)2DQrr")>; def Zn2WriteCVTPD2DQLd: SchedWriteRes<[Zn2AGU,Zn2FPU12,Zn2FPU3]> { let Latency = 10; @@ -1323,7 +1328,7 @@ def : InstRW<[Zn2WriteCVTPS2PIr], (instregex "MMX_CVT(T?)PD2PIirr")>; def Zn2WriteCVSTSI2SSr: SchedWriteRes<[Zn2FPU3]> { - let Latency = 4; + let Latency = 3; } // same as CVTPD2DQr @@ -1335,7 +1340,7 @@ def : InstRW<[Zn2WriteCVTPD2DQLd], (instregex "(V?)CVT(T?)SS2SI(64)?rm")>; def Zn2WriteCVSTSI2SDr: SchedWriteRes<[Zn2FPU013, Zn2FPU3]> { - let Latency = 4; + let Latency = 3; } // CVTSI2SD. // x,r32/64. @@ -1377,7 +1382,7 @@ //-- SSE4A instructions --// // EXTRQ def Zn2WriteEXTRQ: SchedWriteRes<[Zn2FPU12, Zn2FPU2]> { - let Latency = 2; + let Latency = 3; } def : InstRW<[Zn2WriteEXTRQ], (instregex "EXTRQ")>; @@ -1449,12 +1454,6 @@ //-- Arithmetic instructions --// -// HADD, HSUB PS/PD -def : SchedAlias; -def : SchedAlias; -def : SchedAlias; -def : SchedAlias; - // VDIVPS. // TODO - convert to Zn2WriteResFpuPair // y,y,y. @@ -1491,11 +1490,9 @@ // DPPS. // x,x,i / v,v,v,i. -def : SchedAlias; def : SchedAlias; // x,m,i / v,v,m,i. -def : SchedAlias; def : SchedAlias; // DPPD. diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-2.s b/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-2.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-2.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-2.s @@ -45,3 +45,4 @@ # CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rax, %rbx # CHECK-NEXT: 1. 1 5.0 0.0 0.0 lzcntw %ax, %bx # CHECK-NEXT: 2. 1 6.0 0.0 0.0 addl %ecx, %ebx +# CHECK-NEXT: 1 4.0 0.3 0.0 diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-3.s b/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-3.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-3.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-3.s @@ -52,9 +52,9 @@ # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: -# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - addw %cx, %dx -# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - movw %ax, %dx -# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - xorw %bx, %dx +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - addw %cx, %dx +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - movw %ax, %dx +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - xorw %bx, %dx # CHECK: Timeline view: # CHECK-NEXT: 0123456789 @@ -89,3 +89,4 @@ # CHECK-NEXT: 0. 6 7.0 0.2 0.0 addw %cx, %dx # CHECK-NEXT: 1. 6 7.7 0.0 0.0 movw %ax, %dx # CHECK-NEXT: 2. 6 8.5 0.0 0.0 xorw %bx, %dx +# CHECK-NEXT: 6 7.7 0.1 0.0 diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-4.s b/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-4.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-4.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-4.s @@ -48,13 +48,13 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: - - 0.67 1.00 0.67 0.67 - - - - - 1.00 +# CHECK-NEXT: - - - 0.67 1.00 0.67 0.67 - - - - - 1.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: -# CHECK-NEXT: - - - 1.00 - - - - - - - 1.00 imulw %ax, %bx -# CHECK-NEXT: - - 0.33 - 0.33 0.33 - - - - - - lzcntw %ax, %bx -# CHECK-NEXT: - - 0.33 - 0.33 0.33 - - - - - - addw %cx, %bx +# CHECK-NEXT: - - - - 1.00 - - - - - - - 1.00 imulw %ax, %bx +# CHECK-NEXT: - - - 0.33 - 0.33 0.33 - - - - - - lzcntw %ax, %bx +# CHECK-NEXT: - - - 0.33 - 0.33 0.33 - - - - - - addw %cx, %bx # CHECK: Timeline view: # CHECK-NEXT: 0123456789 01234567 @@ -64,7 +64,7 @@ # CHECK-NEXT: [0,1] D===eER . . . . . . . lzcntw %ax, %bx # CHECK-NEXT: [0,2] D====eER . . . . . . . addw %cx, %bx # CHECK-NEXT: [1,0] D=====eeeER . . . . . . imulw %ax, %bx -# CHECK-NEXT: [1,1] .D=======eER . . . . . . lzcntw %ax, %bx +# CHECK-NEXT: [1,1] .D=======eER . . . . . . lzcntw %ax, %bx # CHECK-NEXT: [1,2] .D========eER . . . . . . addw %cx, %bx # CHECK-NEXT: [2,0] .D=========eeeER . . . . . imulw %ax, %bx # CHECK-NEXT: [2,1] .D============eER . . . . . lzcntw %ax, %bx @@ -92,3 +92,4 @@ # CHECK-NEXT: 0. 7 14.1 0.1 0.0 imulw %ax, %bx # CHECK-NEXT: 1. 7 16.9 0.0 0.0 lzcntw %ax, %bx # CHECK-NEXT: 2. 7 17.6 0.0 0.0 addw %cx, %bx +# CHECK-NEXT: 7 16.2 0.0 0.0 diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-5.s b/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-5.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-5.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-5.s @@ -41,11 +41,11 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: -# CHECK-NEXT: - - 0.25 0.25 0.25 0.25 - - - - - - lzcntw %ax, %bx +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - lzcntw %ax, %bx # CHECK: Timeline view: # CHECK-NEXT: 0 @@ -53,9 +53,9 @@ # CHECK: [0,0] DeER . . lzcntw %ax, %bx # CHECK-NEXT: [1,0] D=eER. . lzcntw %ax, %bx -# CHECK-NEXT: [2,0] D==eER . lzcntw %ax, %bx -# CHECK-NEXT: [3,0] D===eER . lzcntw %ax, %bx -# CHECK-NEXT: [4,0] .D===eER . lzcntw %ax, %bx +# CHECK-NEXT: [2,0] D==eER . lzcntw %ax, %bx +# CHECK-NEXT: [3,0] D===eER . lzcntw %ax, %bx +# CHECK-NEXT: [4,0] .D===eER . lzcntw %ax, %bx # CHECK-NEXT: [5,0] .D====eER . lzcntw %ax, %bx # CHECK-NEXT: [6,0] .D=====eER. lzcntw %ax, %bx # CHECK-NEXT: [7,0] .D======eER lzcntw %ax, %bx diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-6.s b/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-6.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-6.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-6.s @@ -55,26 +55,25 @@ # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: # CHECK-NEXT: - - - - 1.00 - - - - - - - 1.00 imull %edx, %ecx -# CHECK-NEXT: 0.33 0.33 0.33 0.33 - 0.33 0.33 - - - - - - lzcntw (%rsp), %cx -# CHECK-NEXT: 0.33 0.33 0.33 0.33 - 0.33 0.33 - - - - - - lzcntw 2(%rsp), %cx +# CHECK-NEXT: 0.33 0.33 0.33 0.33 - 0.33 0.33 - - - - - - lzcntw (%rsp), %cx +# CHECK-NEXT: 0.33 0.33 0.33 0.33 - 0.33 0.33 - - - - - - lzcntw 2(%rsp), %cx # CHECK: Timeline view: # CHECK-NEXT: 0123456789 # CHECK-NEXT: Index 0123456789 0123456 -# CHECK: [0,0] DeeeER . . . .. imull %edx, %ecx -# CHECK-NEXT: [0,1] DeeeeeER . . . .. lzcntw (%rsp), %cx -# CHECK-NEXT: [0,2] .DeeeeeER . . . .. lzcntw 2(%rsp), %cx -# CHECK-NEXT: [1,0] .D=====eeeER . . .. imull %edx, %ecx -# CHECK-NEXT: [1,1] . D====eeeeeER . . .. lzcntw (%rsp), %cx -# CHECK-NEXT: [1,2] . D=====eeeeeER. . .. lzcntw 2(%rsp), %cx -# CHECK-NEXT: [2,0] . D=========eeeER . .. imull %edx, %ecx -# CHECK-NEXT: [2,1] . D=========eeeeeER. .. lzcntw (%rsp), %cx -# CHECK-NEXT: [2,2] . D=========eeeeeER .. lzcntw 2(%rsp), %cx -# CHECK-NEXT: [3,0] . D==============eeeER .. imull %edx, %ecx -# CHECK-NEXT: [3,1] . D=============eeeeeER. lzcntw (%rsp), %cx -# CHECK-NEXT: [3,2] . D==============eeeeeER lzcntw 2(%rsp), %cx - +# CHECK: [0,0] DeeeER . . . .. imull %edx, %ecx +# CHECK-NEXT: [0,1] DeeeeeER . . . .. lzcntw (%rsp), %cx +# CHECK-NEXT: [0,2] .DeeeeeER . . . .. lzcntw 2(%rsp), %cx +# CHECK-NEXT: [1,0] .D=====eeeER . . .. imull %edx, %ecx +# CHECK-NEXT: [1,1] . D====eeeeeER . . .. lzcntw (%rsp), %cx +# CHECK-NEXT: [1,2] . D=====eeeeeER. . .. lzcntw 2(%rsp), %cx +# CHECK-NEXT: [2,0] . D=========eeeER . .. imull %edx, %ecx +# CHECK-NEXT: [2,1] . D=========eeeeeER. .. lzcntw (%rsp), %cx +# CHECK-NEXT: [2,2] . D=========eeeeeER .. lzcntw 2(%rsp), %cx +# CHECK-NEXT: [3,0] . D==============eeeER .. imull %edx, %ecx +# CHECK-NEXT: [3,1] . D=============eeeeeER. lzcntw (%rsp), %cx +# CHECK-NEXT: [3,2] . D==============eeeeeER lzcntw 2(%rsp), %cx # CHECK: Average Wait times (based on the timeline view): # CHECK-NEXT: [0]: Executions @@ -86,3 +85,4 @@ # CHECK-NEXT: 0. 4 8.0 0.3 0.0 imull %edx, %ecx # CHECK-NEXT: 1. 4 7.5 0.0 0.0 lzcntw (%rsp), %cx # CHECK-NEXT: 2. 4 8.0 0.0 0.0 lzcntw 2(%rsp), %cx +# CHECK-NEXT: 4 7.8 0.1 0.0 diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-7.s b/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-7.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-7.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update-7.s @@ -49,3 +49,4 @@ # CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulq %rax, %rcx # CHECK-NEXT: 1. 1 5.0 0.0 0.0 addl %edx, %ecx # CHECK-NEXT: 2. 1 6.0 0.0 0.0 addq %rcx, %rdx +# CHECK-NEXT: 1 4.0 0.3 0.0 diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update.s b/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/partial-reg-update.s @@ -45,3 +45,4 @@ # CHECK-NEXT: 0. 1 1.0 1.0 0.0 imulw %ax, %cx # CHECK-NEXT: 1. 1 4.0 0.0 0.0 addb %al, %cl # CHECK-NEXT: 2. 1 5.0 0.0 0.0 addl %ecx, %ebx +# CHECK-NEXT: 1 3.3 0.3 0.0 diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-adx.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-adx.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-adx.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-adx.s @@ -50,12 +50,11 @@ # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - adcxl %ebx, %ecx -# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - adcxl (%rbx), %ecx -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - adcxq %rbx, %rcx -# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - adcxq (%rbx), %rcx -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - adoxl %ebx, %ecx -# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - adoxl (%rbx), %ecx -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - adoxq %rbx, %rcx -# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - adoxq (%rbx), %rcx - +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - adcxl %ebx, %ecx +# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - adcxl (%rbx), %ecx +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - adcxq %rbx, %rcx +# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - adcxq (%rbx), %rcx +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - adoxl %ebx, %ecx +# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - adoxl (%rbx), %ecx +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - adoxq %rbx, %rcx +# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - adoxq (%rbx), %rcx diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-aes.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-aes.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-aes.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-aes.s @@ -52,13 +52,13 @@ # CHECK-NEXT: [7] - Zn2Divider # CHECK-NEXT: [8] - Zn2FPU0 # CHECK-NEXT: [9] - Zn2FPU1 -# CHECK-NEXT: [10] - Zn2FPU2 +# CHECK-NEXT: [10] - Zn2FPU2 # CHECK-NEXT: [11] - Zn2FPU3 # CHECK-NEXT: [12] - Zn2Multiplier # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: 2.00 2.00 - - - - - 6.00 6.00 - - - +# CHECK-NEXT: 2.00 2.00 2.00 - - - - - 6.00 6.00 - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: @@ -69,8 +69,8 @@ # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - aesenc %xmm0, %xmm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - aesenc (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - aesenclast %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - aesenclast (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - aesenclast (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - aesimc %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - aesimc (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - aesimc (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - aeskeygenassist $22, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - aeskeygenassist $22, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - aeskeygenassist $22, (%rax), %xmm2 diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx1.s @@ -1098,18 +1098,18 @@ # CHECK-NEXT: 1 8 0.50 * vbroadcastsd (%rax), %ymm2 # CHECK-NEXT: 1 8 0.50 * vbroadcastss (%rax), %xmm2 # CHECK-NEXT: 1 8 0.50 * vbroadcastss (%rax), %ymm2 -# CHECK-NEXT: 1 3 1.00 vcmpeqpd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 10 1.00 * vcmpeqpd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 3 1.00 vcmpeqpd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 10 1.00 * vcmpeqpd (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 3 1.00 vcmpeqps %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 10 1.00 * vcmpeqps (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 3 1.00 vcmpeqps %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 10 1.00 * vcmpeqps (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 3 1.00 vcmpeqsd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 10 1.00 * vcmpeqsd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 3 1.00 vcmpeqss %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 10 1.00 * vcmpeqss (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 1.00 vcmpeqpd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 8 1.00 * vcmpeqpd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 1.00 vcmpeqpd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 8 1.00 * vcmpeqpd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 1.00 vcmpeqps %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 8 1.00 * vcmpeqps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 1.00 vcmpeqps %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 8 1.00 * vcmpeqps (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 1.00 vcmpeqsd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 8 1.00 * vcmpeqsd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 1.00 vcmpeqss %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 8 1.00 * vcmpeqss (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 3 1.00 vcomisd %xmm0, %xmm1 # CHECK-NEXT: 1 10 1.00 * vcomisd (%rax), %xmm1 # CHECK-NEXT: 1 3 1.00 vcomiss %xmm0, %xmm1 @@ -1118,7 +1118,7 @@ # CHECK-NEXT: 1 12 1.00 * vcvtdq2pd (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 vcvtdq2pd %xmm0, %ymm2 # CHECK-NEXT: 1 12 1.00 * vcvtdq2pd (%rax), %ymm2 -# CHECK-NEXT: 1 5 1.00 vcvtdq2ps %xmm0, %xmm2 +# CHECK-NEXT: 1 3 1.00 vcvtdq2ps %xmm0, %xmm2 # CHECK-NEXT: 1 12 1.00 * vcvtdq2ps (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 vcvtdq2ps %ymm0, %ymm2 # CHECK-NEXT: 1 12 1.00 * vcvtdq2ps (%rax), %ymm2 @@ -1130,7 +1130,7 @@ # CHECK-NEXT: 2 10 0.50 * vcvtpd2psx (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 vcvtpd2ps %ymm0, %xmm2 # CHECK-NEXT: 1 10 1.00 * vcvtpd2psy (%rax), %xmm2 -# CHECK-NEXT: 1 5 1.00 vcvtps2dq %xmm0, %xmm2 +# CHECK-NEXT: 1 3 1.00 vcvtps2dq %xmm0, %xmm2 # CHECK-NEXT: 1 12 1.00 * vcvtps2dq (%rax), %xmm2 # CHECK-NEXT: 1 5 1.00 vcvtps2dq %ymm0, %ymm2 # CHECK-NEXT: 1 12 1.00 * vcvtps2dq (%rax), %ymm2 @@ -1144,8 +1144,8 @@ # CHECK-NEXT: 1 11 1.00 * vcvtsd2si (%rax), %rcx # CHECK-NEXT: 1 3 1.00 vcvtsd2ss %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 2 10 0.50 * vcvtsd2ss (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 4 1.00 vcvtsi2sd %ecx, %xmm0, %xmm2 -# CHECK-NEXT: 1 4 1.00 vcvtsi2sd %rcx, %xmm0, %xmm2 +# CHECK-NEXT: 1 3 1.00 vcvtsi2sd %ecx, %xmm0, %xmm2 +# CHECK-NEXT: 1 3 1.00 vcvtsi2sd %rcx, %xmm0, %xmm2 # CHECK-NEXT: 1 12 1.00 * vcvtsi2sdl (%rax), %xmm0, %xmm2 # CHECK-NEXT: 1 12 1.00 * vcvtsi2sdq (%rax), %xmm0, %xmm2 # CHECK-NEXT: 1 5 1.00 vcvtsi2ss %ecx, %xmm0, %xmm2 @@ -1162,7 +1162,7 @@ # CHECK-NEXT: 2 10 1.00 * vcvttpd2dqx (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 vcvttpd2dq %ymm0, %xmm2 # CHECK-NEXT: 2 10 1.00 * vcvttpd2dqy (%rax), %xmm2 -# CHECK-NEXT: 1 5 1.00 vcvttps2dq %xmm0, %xmm2 +# CHECK-NEXT: 1 3 1.00 vcvttps2dq %xmm0, %xmm2 # CHECK-NEXT: 1 12 1.00 * vcvttps2dq (%rax), %xmm2 # CHECK-NEXT: 1 5 1.00 vcvttps2dq %ymm0, %ymm2 # CHECK-NEXT: 1 12 1.00 * vcvttps2dq (%rax), %ymm2 @@ -1188,30 +1188,30 @@ # CHECK-NEXT: 1 22 1.00 * vdivss (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 100 0.25 vdppd $22, %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 1 100 0.25 * vdppd $22, (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 vdpps $22, %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 * vdpps $22, (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 15 0.25 vdpps $22, %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 19 0.33 * vdpps $22, (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 100 0.25 vdpps $22, %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 1 100 0.25 * vdpps $22, (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.33 vextractf128 $1, %ymm0, %xmm2 # CHECK-NEXT: 2 8 0.33 * vextractf128 $1, %ymm0, (%rax) # CHECK-NEXT: 1 2 2.00 vextractps $1, %xmm0, %ecx # CHECK-NEXT: 2 5 2.00 * vextractps $1, %xmm0, (%rax) -# CHECK-NEXT: 1 100 0.25 vhaddpd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 * vhaddpd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 vhaddpd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 * vhaddpd (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 vhaddps %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 * vhaddps (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 vhaddps %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 * vhaddps (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 vhsubpd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 * vhsubpd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 vhsubpd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 * vhsubpd (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 vhsubps %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 * vhsubps (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 vhsubps %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 * vhsubps (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 7 0.25 vhaddpd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 11 0.33 * vhaddpd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 7 0.25 vhaddpd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 11 0.33 * vhaddpd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 7 0.25 vhaddps %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 11 0.33 * vhaddps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 7 0.25 vhaddps %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 11 0.33 * vhaddps (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 7 0.25 vhsubpd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 11 0.33 * vhsubpd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 7 0.25 vhsubpd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 11 0.33 * vhsubpd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 7 0.25 vhsubps %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 11 0.33 * vhsubps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 7 0.25 vhsubps %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 11 0.33 * vhsubps (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 2 0.33 vinsertf128 $1, %xmm0, %ymm1, %ymm2 # CHECK-NEXT: 2 9 0.33 * vinsertf128 $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.50 vinsertps $1, %xmm0, %xmm1, %xmm2 @@ -1228,30 +1228,30 @@ # CHECK-NEXT: 2 8 0.50 * vmaskmovps (%rax), %ymm0, %ymm2 # CHECK-NEXT: 1 4 0.50 * * vmaskmovps %xmm0, %xmm1, (%rax) # CHECK-NEXT: 2 5 1.00 * * vmaskmovps %ymm0, %ymm1, (%rax) -# CHECK-NEXT: 1 3 1.00 vmaxpd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 10 1.00 * vmaxpd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 3 1.00 vmaxpd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 10 1.00 * vmaxpd (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 3 1.00 vmaxps %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 10 1.00 * vmaxps (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 3 1.00 vmaxps %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 10 1.00 * vmaxps (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 3 1.00 vmaxsd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 10 1.00 * vmaxsd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 3 1.00 vmaxss %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 10 1.00 * vmaxss (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 3 1.00 vminpd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 10 1.00 * vminpd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 3 1.00 vminpd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 10 1.00 * vminpd (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 3 1.00 vminps %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 10 1.00 * vminps (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 3 1.00 vminps %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 10 1.00 * vminps (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 3 1.00 vminsd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 10 1.00 * vminsd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 3 1.00 vminss %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 10 1.00 * vminss (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 1.00 vmaxpd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 8 1.00 * vmaxpd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 1.00 vmaxpd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 8 1.00 * vmaxpd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 1.00 vmaxps %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 8 1.00 * vmaxps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 1.00 vmaxps %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 8 1.00 * vmaxps (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 1.00 vmaxsd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 8 1.00 * vmaxsd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 1.00 vmaxss %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 8 1.00 * vmaxss (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 1.00 vminpd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 8 1.00 * vminpd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 1.00 vminpd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 8 1.00 * vminpd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 1.00 vminps %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 8 1.00 * vminps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 1.00 vminps %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 8 1.00 * vminps (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 1.00 vminsd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 8 1.00 * vminsd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 1.00 vminss %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 8 1.00 * vminss (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.25 vmovapd %xmm0, %xmm2 # CHECK-NEXT: 1 1 0.33 * vmovapd %xmm0, (%rax) # CHECK-NEXT: 1 8 0.33 * vmovapd (%rax), %xmm2 @@ -1341,12 +1341,12 @@ # CHECK-NEXT: 1 100 0.25 * vmpsadbw $1, (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 3 0.50 vmulpd %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 2 10 0.50 * vmulpd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 4 0.50 vmulpd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 2 11 0.50 * vmulpd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 0.50 vmulpd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 10 0.50 * vmulpd (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 3 0.50 vmulps %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 2 10 0.50 * vmulps (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 4 0.50 vmulps %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 2 11 0.50 * vmulps (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 0.50 vmulps %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 10 0.50 * vmulps (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 3 0.50 vmulsd %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 2 10 0.50 * vmulsd (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 3 0.50 vmulss %xmm0, %xmm1, %xmm2 @@ -1433,20 +1433,20 @@ # CHECK-NEXT: 1 100 0.25 * vperm2f128 $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.50 vpermilpd $1, %xmm0, %xmm2 # CHECK-NEXT: 1 8 0.50 * vpermilpd $1, (%rax), %xmm2 -# CHECK-NEXT: 1 1 0.50 vpermilpd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 8 0.50 * vpermilpd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 3 0.50 vpermilpd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 10 0.50 * vpermilpd (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.50 vpermilpd $1, %ymm0, %ymm2 # CHECK-NEXT: 1 8 0.50 * vpermilpd $1, (%rax), %ymm2 -# CHECK-NEXT: 1 1 0.50 vpermilpd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 8 0.50 * vpermilpd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 0.50 vpermilpd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 10 0.50 * vpermilpd (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.50 vpermilps $1, %xmm0, %xmm2 # CHECK-NEXT: 1 8 0.50 * vpermilps $1, (%rax), %xmm2 -# CHECK-NEXT: 1 1 0.50 vpermilps %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 8 0.50 * vpermilps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 3 0.50 vpermilps %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 10 0.50 * vpermilps (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.50 vpermilps $1, %ymm0, %ymm2 # CHECK-NEXT: 1 8 0.50 * vpermilps $1, (%rax), %ymm2 -# CHECK-NEXT: 1 1 0.50 vpermilps %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 8 0.50 * vpermilps (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 0.50 vpermilps %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 10 0.50 * vpermilps (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 2 2.00 vpextrb $1, %xmm0, %ecx # CHECK-NEXT: 2 5 3.00 * vpextrb $1, %xmm0, (%rax) # CHECK-NEXT: 1 2 2.00 vpextrd $1, %xmm0, %ecx @@ -1455,20 +1455,20 @@ # CHECK-NEXT: 2 5 3.00 * vpextrq $1, %xmm0, (%rax) # CHECK-NEXT: 1 2 2.00 vpextrw $1, %xmm0, %ecx # CHECK-NEXT: 2 5 3.00 * vpextrw $1, %xmm0, (%rax) -# CHECK-NEXT: 1 100 0.25 vphaddd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 * vphaddd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 vphaddsw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 * vphaddsw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 vphaddw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 * vphaddw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 3 0.25 vphaddd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 7 0.33 * vphaddd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 3 0.25 vphaddsw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 7 0.33 * vphaddsw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 3 0.25 vphaddw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 7 0.33 * vphaddw (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 4 1.00 vphminposuw %xmm0, %xmm2 # CHECK-NEXT: 1 11 1.00 * vphminposuw (%rax), %xmm2 -# CHECK-NEXT: 1 100 0.25 vphsubd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 * vphsubd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 vphsubsw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 * vphsubsw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 vphsubw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 100 0.25 * vphsubw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 3 0.25 vphsubd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 7 0.33 * vphsubd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 3 0.25 vphsubsw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 7 0.33 * vphsubsw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 3 0.25 vphsubw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 7 0.33 * vphsubw (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.25 vpinsrb $1, %eax, %xmm1, %xmm2 # CHECK-NEXT: 1 8 0.33 * vpinsrb $1, (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.25 vpinsrd $1, %eax, %xmm1, %xmm2 @@ -1565,7 +1565,7 @@ # CHECK-NEXT: 1 1 0.25 vpslld $1, %xmm0, %xmm2 # CHECK-NEXT: 1 1 1.00 vpslld %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 1 8 1.00 * vpslld (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 1.00 vpslldq $1, %xmm1, %xmm2 +# CHECK-NEXT: 1 3 1.00 vpslldq $1, %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.25 vpsllq $1, %xmm0, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsllq %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 1 8 1.00 * vpsllq (%rax), %xmm1, %xmm2 @@ -1581,7 +1581,7 @@ # CHECK-NEXT: 1 1 0.25 vpsrld $1, %xmm0, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsrld %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 1 8 1.00 * vpsrld (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 1.00 vpsrldq $1, %xmm1, %xmm2 +# CHECK-NEXT: 1 3 1.00 vpsrldq $1, %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.25 vpsrlq $1, %xmm0, %xmm2 # CHECK-NEXT: 1 1 1.00 vpsrlq %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 1 8 1.00 * vpsrlq (%rax), %xmm1, %xmm2 @@ -1632,18 +1632,18 @@ # CHECK-NEXT: 3 12 0.50 * vrcpps (%rax), %ymm2 # CHECK-NEXT: 1 5 0.50 vrcpss %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 1 12 0.50 * vrcpss (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 4 1.00 vroundpd $1, %xmm0, %xmm2 -# CHECK-NEXT: 1 11 1.00 * vroundpd $1, (%rax), %xmm2 -# CHECK-NEXT: 1 4 1.00 vroundpd $1, %ymm0, %ymm2 -# CHECK-NEXT: 1 11 1.00 * vroundpd $1, (%rax), %ymm2 -# CHECK-NEXT: 1 4 1.00 vroundps $1, %xmm0, %xmm2 -# CHECK-NEXT: 1 11 1.00 * vroundps $1, (%rax), %xmm2 -# CHECK-NEXT: 1 4 1.00 vroundps $1, %ymm0, %ymm2 -# CHECK-NEXT: 1 11 1.00 * vroundps $1, (%rax), %ymm2 -# CHECK-NEXT: 1 4 1.00 vroundsd $1, %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 11 1.00 * vroundsd $1, (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 4 1.00 vroundss $1, %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 11 1.00 * vroundss $1, (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 3 1.00 vroundpd $1, %xmm0, %xmm2 +# CHECK-NEXT: 1 10 1.00 * vroundpd $1, (%rax), %xmm2 +# CHECK-NEXT: 1 3 1.00 vroundpd $1, %ymm0, %ymm2 +# CHECK-NEXT: 1 10 1.00 * vroundpd $1, (%rax), %ymm2 +# CHECK-NEXT: 1 3 1.00 vroundps $1, %xmm0, %xmm2 +# CHECK-NEXT: 1 10 1.00 * vroundps $1, (%rax), %xmm2 +# CHECK-NEXT: 1 3 1.00 vroundps $1, %ymm0, %ymm2 +# CHECK-NEXT: 1 10 1.00 * vroundps $1, (%rax), %ymm2 +# CHECK-NEXT: 1 3 1.00 vroundsd $1, %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 10 1.00 * vroundsd $1, (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 3 1.00 vroundss $1, %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 10 1.00 * vroundss $1, (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 5 0.50 vrsqrtps %xmm0, %xmm2 # CHECK-NEXT: 2 12 0.50 * vrsqrtps (%rax), %xmm2 # CHECK-NEXT: 2 5 1.00 vrsqrtps %ymm0, %ymm2 @@ -1739,7 +1739,7 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: 112.00 112.00 112.00 0.25 0.25 0.25 0.25 - 191.92 141.92 168.75 455.42 - +# CHECK-NEXT: 117.00 117.00 117.00 0.25 0.25 0.25 0.25 - 191.92 143.42 170.25 455.42 - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: @@ -1831,7 +1831,7 @@ # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - vcvtdq2pd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - vcvtdq2pd %xmm0, %ymm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - vcvtdq2pd (%rax), %ymm2 -# CHECK-NEXT: - - - - - - - - - - - 1.00 - vcvtdq2ps %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - vcvtdq2ps %xmm0, %xmm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - vcvtdq2ps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - vcvtdq2ps %ymm0, %ymm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - vcvtdq2ps (%rax), %ymm2 @@ -1843,7 +1843,7 @@ # CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - - 0.50 - vcvtpd2psx (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - vcvtpd2ps %ymm0, %xmm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - vcvtpd2psy (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - - - - - 1.00 - vcvtps2dq %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - vcvtps2dq %xmm0, %xmm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - vcvtps2dq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - vcvtps2dq %ymm0, %ymm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - vcvtps2dq (%rax), %ymm2 @@ -1875,7 +1875,7 @@ # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - vcvttpd2dqx (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - vcvttpd2dq %ymm0, %xmm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - vcvttpd2dqy (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - - - - - 1.00 - vcvttps2dq %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - vcvttps2dq %xmm0, %xmm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - vcvttps2dq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - vcvttps2dq %ymm0, %ymm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - vcvttps2dq (%rax), %ymm2 @@ -1902,7 +1902,7 @@ # CHECK-NEXT: - - - - - - - - - - - - - vdppd $22, %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - vdppd $22, (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - vdpps $22, %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - vdpps $22, (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vdpps $22, (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - vdpps $22, %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - - - - - - vdpps $22, (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - 0.33 0.33 - 0.33 - vextractf128 $1, %ymm0, %xmm2 @@ -1910,21 +1910,21 @@ # CHECK-NEXT: - - - - - - - - - 0.50 2.50 - - vextractps $1, %xmm0, %ecx # CHECK-NEXT: 1.67 1.67 1.67 - - - - - - 0.50 2.50 - - vextractps $1, %xmm0, (%rax) # CHECK-NEXT: - - - - - - - - - - - - - vhaddpd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - vhaddpd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vhaddpd (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - vhaddpd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - - - - - - - vhaddpd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vhaddpd (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - - - - - - vhaddps %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - vhaddps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vhaddps (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - vhaddps %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - - - - - - - vhaddps (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vhaddps (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - - - - - - vhsubpd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - vhsubpd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vhsubpd (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - vhsubpd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - - - - - - - vhsubpd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vhsubpd (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - - - - - - vhsubps %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - vhsubps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vhsubps (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - vhsubps %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - - - - - - - vhsubps (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vhsubps (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - 0.33 0.33 - 0.33 - vinsertf128 $1, %xmm0, %ymm1, %ymm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.33 0.33 - 0.33 - vinsertf128 $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - vinsertps $1, %xmm0, %xmm1, %xmm2 @@ -2169,19 +2169,19 @@ # CHECK-NEXT: - - - - - - - - - 0.50 2.50 - - vpextrw $1, %xmm0, %ecx # CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 4.00 - - vpextrw $1, %xmm0, (%rax) # CHECK-NEXT: - - - - - - - - - - - - - vphaddd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - vphaddd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vphaddd (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - vphaddsw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - vphaddsw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vphaddsw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - vphaddw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - vphaddw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vphaddw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - vphminposuw %xmm0, %xmm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vphminposuw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - vphsubd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - vphsubd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vphsubd (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - vphsubsw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - vphsubsw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vphsubsw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - vphsubw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - vphsubw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vphsubw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpinsrb $1, %eax, %xmm1, %xmm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - vpinsrb $1, (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vpinsrd $1, %eax, %xmm1, %xmm2 @@ -2433,4 +2433,4 @@ # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - vxorps %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - vxorps (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - - - - - - vzeroall -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - vzeroupper +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - vzeroupper diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-avx2.s @@ -576,18 +576,18 @@ # CHECK-NEXT: 1 100 0.25 * vpgatherqd %xmm0, (%rax,%ymm1,2), %xmm2 # CHECK-NEXT: 1 100 0.25 * vpgatherqq %xmm0, (%rax,%xmm1,2), %xmm2 # CHECK-NEXT: 1 100 0.25 * vpgatherqq %ymm0, (%rax,%ymm1,2), %ymm2 -# CHECK-NEXT: 1 100 0.25 vphaddd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 * vphaddd (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 vphaddsw %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 * vphaddsw (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 vphaddw %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 * vphaddw (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 vphsubd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 * vphsubd (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 vphsubsw %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 * vphsubsw (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 vphsubw %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 100 0.25 * vphsubw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 0.25 vphaddd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 7 0.33 * vphaddd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 0.25 vphaddsw %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 7 0.33 * vphaddsw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 0.25 vphaddw %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 7 0.33 * vphaddw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 0.25 vphsubd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 7 0.33 * vphsubd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 0.25 vphsubsw %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 7 0.33 * vphsubsw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 0.25 vphsubw %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 7 0.33 * vphsubw (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 4 1.00 vpmaddubsw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 1 11 1.00 * vpmaddubsw (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 4 1.00 vpmaddwd %ymm0, %ymm1, %ymm2 @@ -625,29 +625,29 @@ # CHECK-NEXT: 1 1 0.25 vpminuw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 1 8 0.33 * vpminuw (%rax), %ymm1, %ymm2 # CHECK-NEXT: 2 2 2.00 vpmovmskb %ymm0, %ecx -# CHECK-NEXT: 2 1 0.50 vpmovsxbd %xmm0, %ymm2 +# CHECK-NEXT: 2 4 0.50 vpmovsxbd %xmm0, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpmovsxbd (%rax), %ymm2 -# CHECK-NEXT: 2 1 0.50 vpmovsxbq %xmm0, %ymm2 +# CHECK-NEXT: 2 4 0.50 vpmovsxbq %xmm0, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpmovsxbq (%rax), %ymm2 -# CHECK-NEXT: 2 1 0.50 vpmovsxbw %xmm0, %ymm2 +# CHECK-NEXT: 2 4 0.50 vpmovsxbw %xmm0, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpmovsxbw (%rax), %ymm2 -# CHECK-NEXT: 2 1 0.50 vpmovsxdq %xmm0, %ymm2 +# CHECK-NEXT: 2 4 0.50 vpmovsxdq %xmm0, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpmovsxdq (%rax), %ymm2 -# CHECK-NEXT: 2 1 0.50 vpmovsxwd %xmm0, %ymm2 +# CHECK-NEXT: 2 4 0.50 vpmovsxwd %xmm0, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpmovsxwd (%rax), %ymm2 -# CHECK-NEXT: 2 1 0.50 vpmovsxwq %xmm0, %ymm2 +# CHECK-NEXT: 2 4 0.50 vpmovsxwq %xmm0, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpmovsxwq (%rax), %ymm2 -# CHECK-NEXT: 2 1 0.50 vpmovzxbd %xmm0, %ymm2 +# CHECK-NEXT: 2 4 0.50 vpmovzxbd %xmm0, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpmovzxbd (%rax), %ymm2 -# CHECK-NEXT: 2 1 0.50 vpmovzxbq %xmm0, %ymm2 +# CHECK-NEXT: 2 4 0.50 vpmovzxbq %xmm0, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpmovzxbq (%rax), %ymm2 -# CHECK-NEXT: 2 1 0.50 vpmovzxbw %xmm0, %ymm2 +# CHECK-NEXT: 2 4 0.50 vpmovzxbw %xmm0, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpmovzxbw (%rax), %ymm2 -# CHECK-NEXT: 2 1 0.50 vpmovzxdq %xmm0, %ymm2 +# CHECK-NEXT: 2 4 0.50 vpmovzxdq %xmm0, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpmovzxdq (%rax), %ymm2 -# CHECK-NEXT: 2 1 0.50 vpmovzxwd %xmm0, %ymm2 +# CHECK-NEXT: 2 4 0.50 vpmovzxwd %xmm0, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpmovzxwd (%rax), %ymm2 -# CHECK-NEXT: 2 1 0.50 vpmovzxwq %xmm0, %ymm2 +# CHECK-NEXT: 2 4 0.50 vpmovzxwq %xmm0, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpmovzxwq (%rax), %ymm2 # CHECK-NEXT: 1 4 1.00 vpmuldq %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 1 11 1.00 * vpmuldq (%rax), %ymm1, %ymm2 @@ -657,8 +657,8 @@ # CHECK-NEXT: 1 11 1.00 * vpmulhuw (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 4 1.00 vpmulhw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 1 11 1.00 * vpmulhw (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 3 1.00 vpmulld %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 2 10 1.00 * vpmulld (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 4 1.00 vpmulld %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 11 1.00 * vpmulld (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 4 1.00 vpmullw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 1 11 1.00 * vpmullw (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 4 1.00 vpmuludq %ymm0, %ymm1, %ymm2 @@ -682,51 +682,51 @@ # CHECK-NEXT: 1 1 0.25 vpsignw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 1 8 0.33 * vpsignw (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.25 vpslld $1, %ymm0, %ymm2 -# CHECK-NEXT: 1 2 1.00 vpslld %xmm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 9 1.00 * vpslld (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 1.00 vpslldq $1, %ymm1, %ymm2 +# CHECK-NEXT: 1 1 1.00 vpslld %xmm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 8 1.00 * vpslld (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 1.00 vpslldq $1, %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.25 vpsllq $1, %ymm0, %ymm2 -# CHECK-NEXT: 1 2 1.00 vpsllq %xmm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 9 1.00 * vpsllq (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 0.50 vpsllvd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 8 0.50 * vpsllvd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 0.50 vpsllvd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 8 0.50 * vpsllvd (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 0.50 vpsllvq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 8 0.50 * vpsllvq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 0.50 vpsllvq %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 8 0.50 * vpsllvq (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 1.00 vpsllq %xmm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 8 1.00 * vpsllq (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 0.50 vpsllvd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 10 0.50 * vpsllvd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 3 0.50 vpsllvd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 10 0.50 * vpsllvd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 0.50 vpsllvq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 10 0.50 * vpsllvq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 3 0.50 vpsllvq %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 10 0.50 * vpsllvq (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.25 vpsllw $1, %ymm0, %ymm2 -# CHECK-NEXT: 1 2 1.00 vpsllw %xmm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 9 1.00 * vpsllw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 1.00 vpsllw %xmm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 8 1.00 * vpsllw (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.25 vpsrad $1, %ymm0, %ymm2 -# CHECK-NEXT: 1 2 1.00 vpsrad %xmm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 9 1.00 * vpsrad (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 0.50 vpsravd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 8 0.50 * vpsravd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 0.50 vpsravd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 8 0.50 * vpsravd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 1.00 vpsrad %xmm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 8 1.00 * vpsrad (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 0.50 vpsravd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 10 0.50 * vpsravd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 3 0.50 vpsravd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 10 0.50 * vpsravd (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.25 vpsraw $1, %ymm0, %ymm2 -# CHECK-NEXT: 1 2 1.00 vpsraw %xmm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 9 1.00 * vpsraw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 1.00 vpsraw %xmm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 8 1.00 * vpsraw (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.25 vpsrld $1, %ymm0, %ymm2 -# CHECK-NEXT: 1 2 1.00 vpsrld %xmm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 9 1.00 * vpsrld (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 1.00 vpsrldq $1, %ymm1, %ymm2 +# CHECK-NEXT: 1 1 1.00 vpsrld %xmm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 8 1.00 * vpsrld (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 1.00 vpsrldq $1, %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.25 vpsrlq $1, %ymm0, %ymm2 -# CHECK-NEXT: 1 2 1.00 vpsrlq %xmm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 9 1.00 * vpsrlq (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 0.50 vpsrlvd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 8 0.50 * vpsrlvd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 0.50 vpsrlvd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 8 0.50 * vpsrlvd (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 0.50 vpsrlvq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 1 8 0.50 * vpsrlvq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 0.50 vpsrlvq %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 8 0.50 * vpsrlvq (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 1.00 vpsrlq %xmm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 8 1.00 * vpsrlq (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 0.50 vpsrlvd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 10 0.50 * vpsrlvd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 3 0.50 vpsrlvd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 10 0.50 * vpsrlvd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 3 0.50 vpsrlvq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 1 10 0.50 * vpsrlvq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 3 0.50 vpsrlvq %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 10 0.50 * vpsrlvq (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.25 vpsrlw $1, %ymm0, %ymm2 -# CHECK-NEXT: 1 2 1.00 vpsrlw %xmm0, %ymm1, %ymm2 -# CHECK-NEXT: 1 9 1.00 * vpsrlw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 1.00 vpsrlw %xmm0, %ymm1, %ymm2 +# CHECK-NEXT: 1 8 1.00 * vpsrlw (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.25 vpsubb %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 1 8 0.33 * vpsubb (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.25 vpsubd %ymm0, %ymm1, %ymm2 @@ -779,7 +779,7 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: 42.67 42.67 42.67 - - - - - 70.17 75.17 85.00 42.67 - +# CHECK-NEXT: 44.67 44.67 44.67 - - - - - 70.17 75.17 85.00 42.67 - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: @@ -900,17 +900,17 @@ # CHECK-NEXT: - - - - - - - - - - - - - vpgatherqq %xmm0, (%rax,%xmm1,2), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - vpgatherqq %ymm0, (%rax,%ymm1,2), %ymm2 # CHECK-NEXT: - - - - - - - - - - - - - vphaddd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - - - - - - - vphaddd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vphaddd (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - - - - - - vphaddsw %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - - - - - - - vphaddsw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vphaddsw (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - - - - - - vphaddw %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - - - - - - - vphaddw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vphaddw (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - - - - - - vphsubd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - - - - - - - vphsubd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vphsubd (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - - - - - - vphsubsw %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - - - - - - - vphsubsw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vphsubsw (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - - - - - - vphsubw %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - - - - - - - vphsubw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - vphsubw (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - vpmaddubsw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - vpmaddubsw (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - vpmaddwd %ymm0, %ymm1, %ymm2 diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-clzero.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-clzero.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-clzero.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-clzero.s @@ -12,7 +12,7 @@ # CHECK-NEXT: [6]: HasSideEffects (U) # CHECK: [1] [2] [3] [4] [5] [6] Instructions: -# CHECK-NEXT: 1 8 0.33 U clzero +# CHECK-NEXT: 1 8 0.33 U clzero # CHECK: Resources: # CHECK-NEXT: [0] - Zn2AGU0 @@ -35,4 +35,4 @@ # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - clzero +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - clzero diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-cmov.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-cmov.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-cmov.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-cmov.s @@ -226,26 +226,26 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: 16.00 16.00 16.00 24.00 24.00 24.00 24.00 - - - - - - +# CHECK-NEXT: 16.00 16.00 16.00 24.00 24.00 24.00 24.00 - - - - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovow %si, %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnow %si, %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovbw %si, %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovaew %si, %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovew %si, %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnew %si, %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovbew %si, %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovaw %si, %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovsw %si, %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnsw %si, %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovpw %si, %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnpw %si, %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovlw %si, %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovgew %si, %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovlew %si, %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovgw %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovow %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnow %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovbw %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovaew %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovew %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnew %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovbew %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovaw %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovsw %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnsw %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovpw %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnpw %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovlw %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovgew %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovlew %si, %di +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovgw %si, %di # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - cmovow (%rax), %di # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - cmovnow (%rax), %di # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - cmovbw (%rax), %di @@ -262,22 +262,22 @@ # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - cmovgew (%rax), %di # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - cmovlew (%rax), %di # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - cmovgw (%rax), %di -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovol %esi, %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnol %esi, %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovbl %esi, %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovael %esi, %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovel %esi, %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnel %esi, %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovbel %esi, %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmoval %esi, %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovsl %esi, %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnsl %esi, %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovpl %esi, %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnpl %esi, %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovll %esi, %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovgel %esi, %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovlel %esi, %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovgl %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovol %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnol %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovbl %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovael %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovel %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnel %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovbel %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmoval %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovsl %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnsl %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovpl %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnpl %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovll %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovgel %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovlel %esi, %edi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovgl %esi, %edi # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - cmovol (%rax), %edi # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - cmovnol (%rax), %edi # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - cmovbl (%rax), %edi @@ -294,22 +294,22 @@ # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - cmovgel (%rax), %edi # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - cmovlel (%rax), %edi # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - cmovgl (%rax), %edi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovoq %rsi, %rdi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnoq %rsi, %rdi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovbq %rsi, %rdi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovaeq %rsi, %rdi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmoveq %rsi, %rdi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovneq %rsi, %rdi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovbeq %rsi, %rdi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovaq %rsi, %rdi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovsq %rsi, %rdi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnsq %rsi, %rdi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovpq %rsi, %rdi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnpq %rsi, %rdi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovlq %rsi, %rdi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovgeq %rsi, %rdi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovleq %rsi, %rdi -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovgq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovoq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnoq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovbq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovaeq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmoveq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovneq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovbeq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovaq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovsq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnsq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovpq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovnpq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovlq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovgeq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovleq %rsi, %rdi +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - cmovgq %rsi, %rdi # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - cmovoq (%rax), %rdi # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - cmovnoq (%rax), %rdi # CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - cmovbq (%rax), %rdi diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-fma.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-fma.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-fma.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-fma.s @@ -516,9 +516,9 @@ # CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - - 0.50 - vfmadd132pd (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 - - 0.50 - vfmadd132pd %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - - 0.50 - vfmadd132pd (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - - 0.50 - - 0.50 - vfmadd213pd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - - - 0.50 - - 0.50 - vfmadd213pd %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - - 0.50 - vfmadd213pd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - - 0.50 - - 0.50 - vfmadd213pd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - - - - - - 0.50 - - 0.50 - vfmadd213pd %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - - 0.50 - vfmadd213pd (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - - 0.50 - - 0.50 - vfmadd231pd %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - - 0.50 - vfmadd231pd (%rax), %xmm1, %xmm2 diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-fsgsbase.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-fsgsbase.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-fsgsbase.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-fsgsbase.s @@ -48,7 +48,7 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: - - - - - - - - - - - - - +# CHECK-NEXT: - - - - - - - - - - - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-lzcnt.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-lzcnt.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-lzcnt.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-lzcnt.s @@ -43,7 +43,7 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: 1.00 1.00 1.00 1.50 1.50 1.50 1.50 - - - - - - +# CHECK-NEXT: 1.00 1.00 1.00 1.50 1.50 1.50 1.50 - - - - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-mmx.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-mmx.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-mmx.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-mmx.s @@ -287,112 +287,112 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: 16.00 16.00 16.00 - - - - - 27.25 24.25 28.25 21.25 - +# CHECK-NEXT: 16.00 16.00 16.00 - - - - - 27.25 24.25 28.25 21.25 - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - emms # CHECK-NEXT: - - - - - - - - - - 1.00 - - movd %eax, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movd (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movd (%rax), %mm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - movd %mm0, %ecx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movd %mm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movd %mm0, (%rax) # CHECK-NEXT: - - - - - - - - - - 1.00 - - movq %rax, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movq (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movq (%rax), %mm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - movq %mm0, %rcx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movq %mm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movq %mm0, (%rax) # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - packsswb %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - packsswb (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - packsswb (%rax), %mm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - packssdw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - packssdw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - packssdw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - packuswb %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - packuswb (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - packuswb (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddb %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddb (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddb (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddd %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddd (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddd (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddsb %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddsb (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddsb (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddsw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddsw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddsw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddusb %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddusb (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddusb (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddusw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddusw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddusw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pand %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pand (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pand (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pandn %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pandn (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pandn (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pcmpeqb %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpeqb (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpeqb (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pcmpeqd %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpeqd (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpeqd (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pcmpeqw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpeqw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpeqw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pcmpgtb %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpgtb (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpgtb (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pcmpgtd %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpgtd (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpgtd (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pcmpgtw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpgtw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpgtw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmaddwd %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmaddwd (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmaddwd (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmulhw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmulhw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmulhw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmullw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmullw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmullw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - por %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - por (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - por (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pslld $1, %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pslld %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pslld (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pslld (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psllq $1, %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psllq %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psllq (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psllq (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psllw $1, %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psllw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psllw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psllw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrad $1, %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrad %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psrad (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psrad (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psraw $1, %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psraw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psraw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psraw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrld $1, %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrld %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psrld (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psrld (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrlq $1, %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrlq %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psrlq (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psrlq (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrlw $1, %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrlw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psrlw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psrlw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubb %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubb (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubb (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubd %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubd (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubd (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubsb %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubsb (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubsb (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubsw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubsw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubsw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubusb %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubusb (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubusb (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubusw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubusw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubusw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - punpckhbw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckhbw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckhbw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - punpckhdq %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckhdq (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckhdq (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - punpckhwd %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckhwd (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckhwd (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - punpcklbw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpcklbw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpcklbw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - punpckldq %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckldq (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckldq (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - punpcklwd %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpcklwd (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpcklwd (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pxor %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pxor (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pxor (%rax), %mm2 diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-mwaitx.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-mwaitx.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-mwaitx.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-mwaitx.s @@ -33,9 +33,9 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: - - - - - - - - - - - - +# CHECK-NEXT: - - - - - - - - - - - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: -# CHECK-NEXT: - - - - - - - - - - - - monitorx -# CHECK-NEXT: - - - - - - - - - - - - mwaitx +# CHECK-NEXT: - - - - - - - - - - - - - monitorx +# CHECK-NEXT: - - - - - - - - - - - - - mwaitx diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-popcnt.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-popcnt.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-popcnt.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-popcnt.s @@ -47,9 +47,9 @@ # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - popcntw %cx, %cx -# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - popcntw (%rax), %cx -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - popcntl %eax, %ecx -# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - popcntl (%rax), %ecx -# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - popcntq %rax, %rcx -# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - popcntq (%rax), %rcx +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - popcntw %cx, %cx +# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - popcntw (%rax), %cx +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - popcntl %eax, %ecx +# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - popcntl (%rax), %ecx +# CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - popcntq %rax, %rcx +# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - popcntq (%rax), %rcx diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sha.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sha.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sha.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sha.s @@ -68,16 +68,16 @@ # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - sha1msg1 %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - sha1msg1 (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - sha1msg1 (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - sha1msg2 %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - sha1msg2 (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - sha1msg2 (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 1.00 - - - sha1nexte %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 - - - sha1nexte (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 - - - sha1nexte (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 1.00 - - - sha1rnds4 $3, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 - - - sha1rnds4 $3, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 - - - sha1rnds4 $3, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - sha256msg1 %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - sha256msg1 (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - sha256msg1 (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - sha256msg2 %xmm0, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - sha256msg2 (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 1.00 - - - sha256rnds2 %xmm0, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 - - - sha256rnds2 %xmm0, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 - - - sha256rnds2 %xmm0, (%rax), %xmm2 diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse1.s @@ -202,10 +202,10 @@ # CHECK-NEXT: 1 8 0.33 * andnps (%rax), %xmm2 # CHECK-NEXT: 1 1 0.25 andps %xmm0, %xmm2 # CHECK-NEXT: 1 8 0.33 * andps (%rax), %xmm2 -# CHECK-NEXT: 1 3 1.00 cmpeqps %xmm0, %xmm2 -# CHECK-NEXT: 1 10 1.00 * cmpeqps (%rax), %xmm2 -# CHECK-NEXT: 1 3 1.00 cmpeqss %xmm0, %xmm2 -# CHECK-NEXT: 1 10 1.00 * cmpeqss (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 cmpeqps %xmm0, %xmm2 +# CHECK-NEXT: 1 8 1.00 * cmpeqps (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 cmpeqss %xmm0, %xmm2 +# CHECK-NEXT: 1 8 1.00 * cmpeqss (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 comiss %xmm0, %xmm1 # CHECK-NEXT: 1 10 1.00 * comiss (%rax), %xmm1 # CHECK-NEXT: 1 5 1.00 cvtpi2ps %mm0, %xmm2 @@ -232,14 +232,14 @@ # CHECK-NEXT: 1 22 1.00 * divss (%rax), %xmm2 # CHECK-NEXT: 1 100 0.25 * U ldmxcsr (%rax) # CHECK-NEXT: 1 100 0.25 * * U maskmovq %mm0, %mm1 -# CHECK-NEXT: 1 3 1.00 maxps %xmm0, %xmm2 -# CHECK-NEXT: 1 10 1.00 * maxps (%rax), %xmm2 -# CHECK-NEXT: 1 3 1.00 maxss %xmm0, %xmm2 -# CHECK-NEXT: 1 10 1.00 * maxss (%rax), %xmm2 -# CHECK-NEXT: 1 3 1.00 minps %xmm0, %xmm2 -# CHECK-NEXT: 1 10 1.00 * minps (%rax), %xmm2 -# CHECK-NEXT: 1 3 1.00 minss %xmm0, %xmm2 -# CHECK-NEXT: 1 10 1.00 * minss (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 maxps %xmm0, %xmm2 +# CHECK-NEXT: 1 8 1.00 * maxps (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 maxss %xmm0, %xmm2 +# CHECK-NEXT: 1 8 1.00 * maxss (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 minps %xmm0, %xmm2 +# CHECK-NEXT: 1 8 1.00 * minps (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 minss %xmm0, %xmm2 +# CHECK-NEXT: 1 8 1.00 * minss (%rax), %xmm2 # CHECK-NEXT: 1 1 0.25 movaps %xmm0, %xmm2 # CHECK-NEXT: 1 1 0.33 * movaps %xmm0, (%rax) # CHECK-NEXT: 1 8 0.33 * movaps (%rax), %xmm2 @@ -341,126 +341,126 @@ # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: # CHECK-NEXT: - - - - - - - - 1.00 - - - - addps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - addss %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addss (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addss (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - andnps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - andnps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - andnps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - andps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - andps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - andps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - cmpeqps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - cmpeqps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - cmpeqps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - cmpeqss %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - cmpeqss (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - cmpeqss (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - comiss %xmm0, %xmm1 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - comiss (%rax), %xmm1 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - comiss (%rax), %xmm1 # CHECK-NEXT: - - - - - - - - - - - 1.00 - cvtpi2ps %mm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtpi2ps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtpi2ps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - cvtps2pi %xmm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtps2pi (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtps2pi (%rax), %mm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - cvtsi2ss %ecx, %xmm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - cvtsi2ss %rcx, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtsi2ssl (%rax), %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtsi2ssl (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtsi2ssl (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtsi2ssl (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - cvtss2si %xmm0, %ecx # CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - cvtss2si %xmm0, %rcx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - cvtss2si (%rax), %ecx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - cvtss2si (%rax), %rcx +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - cvtss2si (%rax), %ecx +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - cvtss2si (%rax), %rcx # CHECK-NEXT: - - - - - - - - - - - 1.00 - cvttps2pi %xmm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvttps2pi (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvttps2pi (%rax), %mm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - cvttss2si %xmm0, %ecx # CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - cvttss2si %xmm0, %rcx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - cvttss2si (%rax), %ecx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - cvttss2si (%rax), %rcx +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - cvttss2si (%rax), %ecx +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - cvttss2si (%rax), %rcx # CHECK-NEXT: - - - - - - - - - - - 1.00 - divps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - divps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - divps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - divss %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - divss (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - divss (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - ldmxcsr (%rax) # CHECK-NEXT: - - - - - - - - - - - - - maskmovq %mm0, %mm1 # CHECK-NEXT: - - - - - - - - 1.00 - - - - maxps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - maxps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - maxps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - maxss %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - maxss (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - maxss (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - minps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - minps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - minps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - minss %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - minss (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - minss (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - movaps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movaps %xmm0, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movaps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movaps %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movaps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - movhlps %xmm0, %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - movlhps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movhps %xmm0, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - movhps (%rax), %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movlps %xmm0, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - movlps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movhps %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - movhps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movlps %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - movlps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - movmskps %xmm0, %ecx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movntps %xmm0, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movntq %mm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movntps %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movntq %mm0, (%rax) # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - movss %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movss %xmm0, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movss (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movss %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movss (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - movups %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movups %xmm0, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movups (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movups %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movups (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - mulps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - mulps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - mulps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - mulss %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - mulss (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - mulss (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - orps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - orps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - orps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pavgb %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pavgb (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pavgb (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pavgw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pavgw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pavgw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - - 0.50 2.50 - - pextrw $1, %mm0, %ecx # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pinsrw $1, %eax, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pinsrw $1, (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pinsrw $1, (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmaxsw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxsw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxsw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmaxub %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxub (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxub (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pminsw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminsw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminsw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pminub %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminub (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminub (%rax), %mm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - pmovmskb %mm0, %ecx # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmulhuw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmulhuw (%rax), %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - prefetcht0 (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - prefetcht1 (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - prefetcht2 (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - prefetchnta (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmulhuw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - prefetcht0 (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - prefetcht1 (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - prefetcht2 (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - prefetchnta (%rax) # CHECK-NEXT: - - - - - - - - 1.00 - - - - psadbw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - psadbw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - psadbw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pshufw $1, %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pshufw $1, (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pshufw $1, (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - rcpps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - rcpps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - rcpps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - rcpss %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - rcpss (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - rcpss (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - rsqrtps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - rsqrtps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - rsqrtps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 - 0.50 - - rsqrtss %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - 1.00 - - rsqrtss (%rax), %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - sfence +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - 1.00 - - rsqrtss (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - sfence # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - shufps $1, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - shufps $1, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - shufps $1, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 20.00 - sqrtps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 20.00 - sqrtps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 20.00 - sqrtps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 20.00 - sqrtss %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 20.00 - sqrtss (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 20.00 - sqrtss (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - stmxcsr (%rax) # CHECK-NEXT: - - - - - - - - 1.00 - - - - subps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - subps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - subps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - subss %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - subss (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - subss (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - ucomiss %xmm0, %xmm1 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - ucomiss (%rax), %xmm1 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - ucomiss (%rax), %xmm1 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - unpckhps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - unpckhps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - unpckhps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - unpcklps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - unpcklps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - unpcklps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - xorps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - xorps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - xorps (%rax), %xmm2 diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse2.s @@ -416,15 +416,15 @@ # CHECK-NEXT: 1 1 0.25 andpd %xmm0, %xmm2 # CHECK-NEXT: 1 8 0.33 * andpd (%rax), %xmm2 # CHECK-NEXT: 1 8 0.33 * * U clflush (%rax) -# CHECK-NEXT: 1 3 1.00 cmpeqpd %xmm0, %xmm2 -# CHECK-NEXT: 1 10 1.00 * cmpeqpd (%rax), %xmm2 -# CHECK-NEXT: 1 3 1.00 cmpeqsd %xmm0, %xmm2 -# CHECK-NEXT: 1 10 1.00 * cmpeqsd (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 cmpeqpd %xmm0, %xmm2 +# CHECK-NEXT: 1 8 1.00 * cmpeqpd (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 cmpeqsd %xmm0, %xmm2 +# CHECK-NEXT: 1 8 1.00 * cmpeqsd (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 comisd %xmm0, %xmm1 # CHECK-NEXT: 1 10 1.00 * comisd (%rax), %xmm1 # CHECK-NEXT: 1 3 1.00 cvtdq2pd %xmm0, %xmm2 # CHECK-NEXT: 1 12 1.00 * cvtdq2pd (%rax), %xmm2 -# CHECK-NEXT: 1 5 1.00 cvtdq2ps %xmm0, %xmm2 +# CHECK-NEXT: 1 3 1.00 cvtdq2ps %xmm0, %xmm2 # CHECK-NEXT: 1 12 1.00 * cvtdq2ps (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 cvtpd2dq %xmm0, %xmm2 # CHECK-NEXT: 2 10 1.00 * cvtpd2dq (%rax), %xmm2 @@ -434,7 +434,7 @@ # CHECK-NEXT: 2 10 0.50 * cvtpd2ps (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 cvtpi2pd %mm0, %xmm2 # CHECK-NEXT: 1 12 1.00 * cvtpi2pd (%rax), %xmm2 -# CHECK-NEXT: 1 5 1.00 cvtps2dq %xmm0, %xmm2 +# CHECK-NEXT: 1 3 1.00 cvtps2dq %xmm0, %xmm2 # CHECK-NEXT: 1 12 1.00 * cvtps2dq (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 cvtps2pd %xmm0, %xmm2 # CHECK-NEXT: 2 10 1.00 * cvtps2pd (%rax), %xmm2 @@ -444,8 +444,8 @@ # CHECK-NEXT: 1 11 1.00 * cvtsd2si (%rax), %rcx # CHECK-NEXT: 1 3 1.00 cvtsd2ss %xmm0, %xmm2 # CHECK-NEXT: 2 10 0.50 * cvtsd2ss (%rax), %xmm2 -# CHECK-NEXT: 1 4 1.00 cvtsi2sd %ecx, %xmm2 -# CHECK-NEXT: 1 4 1.00 cvtsi2sd %rcx, %xmm2 +# CHECK-NEXT: 1 3 1.00 cvtsi2sd %ecx, %xmm2 +# CHECK-NEXT: 1 3 1.00 cvtsi2sd %rcx, %xmm2 # CHECK-NEXT: 1 12 1.00 * cvtsi2sdl (%rax), %xmm2 # CHECK-NEXT: 1 12 1.00 * cvtsi2sdl (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 cvtss2sd %xmm0, %xmm2 @@ -454,7 +454,7 @@ # CHECK-NEXT: 2 10 1.00 * cvttpd2dq (%rax), %xmm2 # CHECK-NEXT: 1 4 1.00 cvttpd2pi %xmm0, %mm2 # CHECK-NEXT: 1 12 1.00 * cvttpd2pi (%rax), %mm2 -# CHECK-NEXT: 1 5 1.00 cvttps2dq %xmm0, %xmm2 +# CHECK-NEXT: 1 3 1.00 cvttps2dq %xmm0, %xmm2 # CHECK-NEXT: 1 12 1.00 * cvttps2dq (%rax), %xmm2 # CHECK-NEXT: 1 4 1.00 cvttsd2si %xmm0, %ecx # CHECK-NEXT: 1 4 1.00 cvttsd2si %xmm0, %rcx @@ -466,15 +466,15 @@ # CHECK-NEXT: 1 22 1.00 * divsd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.33 * * U lfence # CHECK-NEXT: 1 100 0.25 * * U maskmovdqu %xmm0, %xmm1 -# CHECK-NEXT: 1 3 1.00 maxpd %xmm0, %xmm2 -# CHECK-NEXT: 1 10 1.00 * maxpd (%rax), %xmm2 -# CHECK-NEXT: 1 3 1.00 maxsd %xmm0, %xmm2 -# CHECK-NEXT: 1 10 1.00 * maxsd (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 maxpd %xmm0, %xmm2 +# CHECK-NEXT: 1 8 1.00 * maxpd (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 maxsd %xmm0, %xmm2 +# CHECK-NEXT: 1 8 1.00 * maxsd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.33 * * U mfence -# CHECK-NEXT: 1 3 1.00 minpd %xmm0, %xmm2 -# CHECK-NEXT: 1 10 1.00 * minpd (%rax), %xmm2 -# CHECK-NEXT: 1 3 1.00 minsd %xmm0, %xmm2 -# CHECK-NEXT: 1 10 1.00 * minsd (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 minpd %xmm0, %xmm2 +# CHECK-NEXT: 1 8 1.00 * minpd (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 minsd %xmm0, %xmm2 +# CHECK-NEXT: 1 8 1.00 * minsd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.25 movapd %xmm0, %xmm2 # CHECK-NEXT: 1 1 0.33 * movapd %xmm0, (%rax) # CHECK-NEXT: 1 8 0.33 * movapd (%rax), %xmm2 @@ -597,7 +597,7 @@ # CHECK-NEXT: 1 1 0.25 pslld $1, %xmm2 # CHECK-NEXT: 1 1 1.00 pslld %xmm0, %xmm2 # CHECK-NEXT: 1 8 1.00 * pslld (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pslldq $1, %xmm2 +# CHECK-NEXT: 1 3 1.00 pslldq $1, %xmm2 # CHECK-NEXT: 1 1 0.25 psllq $1, %xmm2 # CHECK-NEXT: 1 1 1.00 psllq %xmm0, %xmm2 # CHECK-NEXT: 1 8 1.00 * psllq (%rax), %xmm2 @@ -613,7 +613,7 @@ # CHECK-NEXT: 1 1 0.25 psrld $1, %xmm2 # CHECK-NEXT: 1 1 1.00 psrld %xmm0, %xmm2 # CHECK-NEXT: 1 8 1.00 * psrld (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 psrldq $1, %xmm2 +# CHECK-NEXT: 1 3 1.00 psrldq $1, %xmm2 # CHECK-NEXT: 1 1 0.25 psrlq $1, %xmm2 # CHECK-NEXT: 1 1 1.00 psrlq %xmm0, %xmm2 # CHECK-NEXT: 1 8 1.00 * psrlq (%rax), %xmm2 @@ -692,274 +692,274 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: 44.33 44.33 44.33 - - - - - 71.92 40.42 71.75 152.92 - +# CHECK-NEXT: 44.33 44.33 44.33 - - - - - 71.92 41.92 73.25 152.92 - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: # CHECK-NEXT: - - - - - - - - 1.00 - - - - addpd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - addsd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addsd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addsd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - andnpd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - andnpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - andnpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - andpd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - andpd (%rax), %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - clflush (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - andpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - clflush (%rax) # CHECK-NEXT: - - - - - - - - 1.00 - - - - cmpeqpd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - cmpeqpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - cmpeqpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - cmpeqsd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - cmpeqsd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - cmpeqsd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - comisd %xmm0, %xmm1 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - comisd (%rax), %xmm1 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - comisd (%rax), %xmm1 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - cvtdq2pd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtdq2pd (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - - - - - 1.00 - cvtdq2ps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtdq2ps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtdq2pd (%rax), %xmm2 +# CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - cvtdq2ps %xmm0, %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtdq2ps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - cvtpd2dq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - cvtpd2dq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - cvtpd2dq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - cvtpd2pi %xmm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtpd2pi (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtpd2pi (%rax), %mm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - cvtpd2ps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - - 0.50 - cvtpd2ps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - - 0.50 - cvtpd2ps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - cvtpi2pd %mm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtpi2pd (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - - - - - 1.00 - cvtps2dq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtps2dq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtpi2pd (%rax), %xmm2 +# CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - cvtps2dq %xmm0, %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtps2dq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - cvtps2pd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtps2pd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtps2pd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - cvtsd2si %xmm0, %ecx # CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - cvtsd2si %xmm0, %rcx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 1.00 - cvtsd2si (%rax), %ecx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 1.00 - cvtsd2si (%rax), %rcx +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 1.00 - cvtsd2si (%rax), %ecx +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 1.00 - cvtsd2si (%rax), %rcx # CHECK-NEXT: - - - - - - - - - - - 1.00 - cvtsd2ss %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - - 0.50 - cvtsd2ss (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - - 0.50 - cvtsd2ss (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.33 0.33 - 1.33 - cvtsi2sd %ecx, %xmm2 # CHECK-NEXT: - - - - - - - - 0.33 0.33 - 1.33 - cvtsi2sd %rcx, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtsi2sdl (%rax), %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtsi2sdl (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtsi2sdl (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvtsi2sdl (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - cvtss2sd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 2.00 - cvtss2sd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 2.00 - cvtss2sd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - cvttpd2dq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - cvttpd2dq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 1.00 - cvttpd2dq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - cvttpd2pi %xmm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvttpd2pi (%rax), %mm2 -# CHECK-NEXT: - - - - - - - - - - - 1.00 - cvttps2dq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvttps2dq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvttpd2pi (%rax), %mm2 +# CHECK-NEXT: - - - - - - - - - 0.50 0.50 1.00 - cvttps2dq %xmm0, %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - cvttps2dq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - cvttsd2si %xmm0, %ecx # CHECK-NEXT: - - - - - - - - - - 1.00 1.00 - cvttsd2si %xmm0, %rcx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 1.00 - cvttsd2si (%rax), %ecx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 1.00 - cvttsd2si (%rax), %rcx +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 1.00 - cvttsd2si (%rax), %ecx +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 1.00 - cvttsd2si (%rax), %rcx # CHECK-NEXT: - - - - - - - - - - - 1.00 - divpd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - divpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - divpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - divsd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - divsd (%rax), %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - lfence +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - divsd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - lfence # CHECK-NEXT: - - - - - - - - - - - - - maskmovdqu %xmm0, %xmm1 # CHECK-NEXT: - - - - - - - - 1.00 - - - - maxpd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - maxpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - maxpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - maxsd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - maxsd (%rax), %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - mfence +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - maxsd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - mfence # CHECK-NEXT: - - - - - - - - 1.00 - - - - minpd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - minpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - minpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - minsd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - minsd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - minsd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - movapd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movapd %xmm0, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movapd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movapd %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movapd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - movd %eax, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - movd %xmm0, %ecx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movd %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movd %xmm0, (%rax) # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - movdqa %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movdqa %xmm0, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movdqa (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movdqa %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movdqa (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - movdqu %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movdqu %xmm0, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movdqu (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movdqu %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movdqu (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - movdq2q %xmm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movhpd %xmm0, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - movhpd (%rax), %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movlpd %xmm0, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - movlpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movhpd %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - movhpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movlpd %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - movlpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - movmskpd %xmm0, %ecx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movntil %eax, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movntiq %rax, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movntdq %xmm0, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movntpd %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movntil %eax, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movntiq %rax, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movntdq %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movntpd %xmm0, (%rax) # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - movq %xmm0, %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - movq %rax, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - movq %xmm0, %rcx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movq %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movq %xmm0, (%rax) # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - movq2dq %mm0, %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - movsd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movsd %xmm0, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movsd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movsd %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movsd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - movupd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movupd %xmm0, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movupd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movupd %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movupd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - mulpd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - mulpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - mulpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - mulsd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - mulsd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - mulsd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - orpd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - orpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - orpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - packssdw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - packssdw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - packssdw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - packsswb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - packsswb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - packsswb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - packuswb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - packuswb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - packuswb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddq %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddq (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddq (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddsb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddsb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddsb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddsw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddsw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddsw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddusb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddusb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddusb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddusw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddusw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddusw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - paddw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - paddw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pand %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pand (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pand (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pandn %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pandn (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pandn (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pavgb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pavgb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pavgb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pavgw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pavgw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pavgw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pcmpeqb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpeqb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpeqb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pcmpeqd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpeqd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpeqd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pcmpeqw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpeqw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpeqw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pcmpgtb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpgtb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpgtb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pcmpgtd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpgtd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpgtd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pcmpgtw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpgtw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpgtw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 2.50 - - pextrw $1, %xmm0, %ecx # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pinsrw $1, %eax, %xmm0 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pinsrw $1, (%rax), %xmm0 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmaddwd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmaddwd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmaddwd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmaxsw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxsw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxsw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmaxub %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxub (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxub (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pminsw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminsw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminsw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pminub %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminub (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminub (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - pmovmskb %xmm0, %ecx # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmulhuw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmulhuw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmulhuw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmulhw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmulhw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmulhw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmullw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmullw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmullw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmuludq %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmuludq (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmuludq (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmuludq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmuludq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmuludq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - por %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - por (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - por (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - psadbw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - psadbw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - psadbw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pshufd $1, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pshufd $1, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pshufd $1, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pshufhw $1, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pshufhw $1, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pshufhw $1, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pshuflw $1, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pshuflw $1, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pshuflw $1, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pslld $1, %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - pslld %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - pslld (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - pslld (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - pslldq $1, %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psllq $1, %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - psllq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psllq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psllq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psllw $1, %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - psllw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psllw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psllw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrad $1, %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - psrad %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrad (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrad (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psraw $1, %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - psraw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psraw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psraw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrld $1, %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - psrld %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrld (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrld (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - psrldq $1, %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrlq $1, %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - psrlq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrlq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrlq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psrlw $1, %xmm2 # CHECK-NEXT: - - - - - - - - - - 1.00 - - psrlw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrlw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 1.00 - - psrlw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubq %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubq (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubq (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubsb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubsb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubsb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubsw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubsw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubsw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubusb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubusb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubusb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubusw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubusw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubusw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psubw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psubw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - punpckhbw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckhbw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckhbw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - punpckhdq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckhdq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckhdq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - punpckhqdq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckhqdq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckhqdq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - punpckhwd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckhwd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckhwd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - punpcklbw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpcklbw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpcklbw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - punpckldq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckldq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpckldq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - punpcklqdq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpcklqdq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpcklqdq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - punpcklwd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpcklwd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - punpcklwd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pxor %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pxor (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pxor (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - shufpd $1, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - shufpd $1, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - shufpd $1, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 20.00 - sqrtpd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 20.00 - sqrtpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 20.00 - sqrtpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 20.00 - sqrtsd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 20.00 - sqrtsd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 20.00 - sqrtsd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - subpd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - subpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - subpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - subsd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - subsd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - subsd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - ucomisd %xmm0, %xmm1 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - ucomisd (%rax), %xmm1 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - ucomisd (%rax), %xmm1 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - unpckhpd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - unpckhpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - unpckhpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - unpcklpd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - unpcklpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - unpcklpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - xorpd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - xorpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - xorpd (%rax), %xmm2 diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse3.s @@ -47,14 +47,14 @@ # CHECK-NEXT: 1 10 1.00 * addsubpd (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 addsubps %xmm0, %xmm2 # CHECK-NEXT: 1 10 1.00 * addsubps (%rax), %xmm2 -# CHECK-NEXT: 1 100 0.25 haddpd %xmm0, %xmm2 -# CHECK-NEXT: 1 100 0.25 * haddpd (%rax), %xmm2 -# CHECK-NEXT: 1 100 0.25 haddps %xmm0, %xmm2 -# CHECK-NEXT: 1 100 0.25 * haddps (%rax), %xmm2 -# CHECK-NEXT: 1 100 0.25 hsubpd %xmm0, %xmm2 -# CHECK-NEXT: 1 100 0.25 * hsubpd (%rax), %xmm2 -# CHECK-NEXT: 1 100 0.25 hsubps %xmm0, %xmm2 -# CHECK-NEXT: 1 100 0.25 * hsubps (%rax), %xmm2 +# CHECK-NEXT: 1 7 0.25 haddpd %xmm0, %xmm2 +# CHECK-NEXT: 2 11 0.33 * haddpd (%rax), %xmm2 +# CHECK-NEXT: 1 7 0.25 haddps %xmm0, %xmm2 +# CHECK-NEXT: 2 11 0.33 * haddps (%rax), %xmm2 +# CHECK-NEXT: 1 7 0.25 hsubpd %xmm0, %xmm2 +# CHECK-NEXT: 2 11 0.33 * hsubpd (%rax), %xmm2 +# CHECK-NEXT: 1 7 0.25 hsubps %xmm0, %xmm2 +# CHECK-NEXT: 2 11 0.33 * hsubps (%rax), %xmm2 # CHECK-NEXT: 1 8 0.33 * lddqu (%rax), %xmm2 # CHECK-NEXT: 1 100 0.25 U monitor # CHECK-NEXT: 1 1 0.50 movddup %xmm0, %xmm2 @@ -82,28 +82,28 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: 1.67 1.67 1.67 - - - - - 4.00 2.00 2.00 - - +# CHECK-NEXT: 3.00 3.00 3.00 - - - - - 4.00 2.00 2.00 - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: # CHECK-NEXT: - - - - - - - - 1.00 - - - - addsubpd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addsubpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addsubpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - addsubps %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addsubps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - addsubps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - haddpd %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - haddpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - haddpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - haddps %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - haddps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - haddps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - hsubpd %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - hsubpd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - hsubpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - hsubps %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - hsubps (%rax), %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - lddqu (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - hsubps (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - lddqu (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - monitor # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - movddup %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - movddup (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - movddup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - movshdup %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - movshdup (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - movshdup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - movsldup %xmm0, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - movsldup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - mwait diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse41.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse41.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse41.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse41.s @@ -165,8 +165,8 @@ # CHECK-NEXT: 1 8 0.50 * blendvps %xmm0, (%rax), %xmm2 # CHECK-NEXT: 1 100 0.25 dppd $22, %xmm0, %xmm2 # CHECK-NEXT: 1 100 0.25 * dppd $22, (%rax), %xmm2 -# CHECK-NEXT: 1 100 0.25 dpps $22, %xmm0, %xmm2 -# CHECK-NEXT: 1 100 0.25 * dpps $22, (%rax), %xmm2 +# CHECK-NEXT: 1 15 0.25 dpps $22, %xmm0, %xmm2 +# CHECK-NEXT: 2 19 0.33 * dpps $22, (%rax), %xmm2 # CHECK-NEXT: 1 2 2.00 extractps $1, %xmm0, %ecx # CHECK-NEXT: 2 5 2.00 * extractps $1, %xmm0, (%rax) # CHECK-NEXT: 1 1 0.50 insertps $1, %xmm0, %xmm2 @@ -243,14 +243,14 @@ # CHECK-NEXT: 2 11 1.00 * pmulld (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 ptest %xmm0, %xmm1 # CHECK-NEXT: 2 8 1.00 * ptest (%rax), %xmm1 -# CHECK-NEXT: 1 4 1.00 roundpd $1, %xmm0, %xmm2 -# CHECK-NEXT: 1 11 1.00 * roundpd $1, (%rax), %xmm2 -# CHECK-NEXT: 1 4 1.00 roundps $1, %xmm0, %xmm2 -# CHECK-NEXT: 1 11 1.00 * roundps $1, (%rax), %xmm2 -# CHECK-NEXT: 1 4 1.00 roundsd $1, %xmm0, %xmm2 -# CHECK-NEXT: 1 11 1.00 * roundsd $1, (%rax), %xmm2 -# CHECK-NEXT: 1 4 1.00 roundss $1, %xmm0, %xmm2 -# CHECK-NEXT: 1 11 1.00 * roundss $1, (%rax), %xmm2 +# CHECK-NEXT: 1 3 1.00 roundpd $1, %xmm0, %xmm2 +# CHECK-NEXT: 1 10 1.00 * roundpd $1, (%rax), %xmm2 +# CHECK-NEXT: 1 3 1.00 roundps $1, %xmm0, %xmm2 +# CHECK-NEXT: 1 10 1.00 * roundps $1, (%rax), %xmm2 +# CHECK-NEXT: 1 3 1.00 roundsd $1, %xmm0, %xmm2 +# CHECK-NEXT: 1 10 1.00 * roundsd $1, (%rax), %xmm2 +# CHECK-NEXT: 1 3 1.00 roundss $1, %xmm0, %xmm2 +# CHECK-NEXT: 1 10 1.00 * roundss $1, (%rax), %xmm2 # CHECK: Resources: # CHECK-NEXT: [0] - Zn2AGU0 @@ -269,103 +269,103 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: 16.67 16.67 16.67 - - - - - 25.17 26.67 44.00 21.17 - +# CHECK-NEXT: 17.00 17.00 17.00 - - - - - 25.17 26.67 44.00 21.17 - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - blendpd $11, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - blendpd $11, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - blendpd $11, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - blendps $11, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - blendps $11, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - blendps $11, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - blendvpd %xmm0, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - blendvpd %xmm0, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - blendvpd %xmm0, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - blendvps %xmm0, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - blendvps %xmm0, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - blendvps %xmm0, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - dppd $22, %xmm0, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - dppd $22, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - dpps $22, %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - dpps $22, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - dpps $22, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 2.50 - - extractps $1, %xmm0, %ecx -# CHECK-NEXT: 1.67 1.67 1.67 - - - - - - 0.50 2.50 - - extractps $1, %xmm0, (%rax) +# CHECK-NEXT: 1.67 1.67 1.67 - - - - - - 0.50 2.50 - - extractps $1, %xmm0, (%rax) # CHECK-NEXT: - - - - - - - - - 0.50 0.50 - - insertps $1, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - insertps $1, (%rax), %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movntdqa (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 0.50 - - insertps $1, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - movntdqa (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - mpsadbw $1, %xmm0, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - mpsadbw $1, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - packusdw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - packusdw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - packusdw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - pblendvb %xmm0, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pblendvb %xmm0, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pblendvb %xmm0, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.33 0.33 - 0.33 - pblendw $11, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.33 0.33 - 0.33 - pblendw $11, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.33 0.33 - 0.33 - pblendw $11, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pcmpeqq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpeqq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pcmpeqq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 0.50 2.50 - - pextrb $1, %xmm0, %ecx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 4.00 - - pextrb $1, %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 4.00 - - pextrb $1, %xmm0, (%rax) # CHECK-NEXT: - - - - - - - - - 0.50 2.50 - - pextrd $1, %xmm0, %ecx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 4.00 - - pextrd $1, %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 4.00 - - pextrd $1, %xmm0, (%rax) # CHECK-NEXT: - - - - - - - - - 0.50 2.50 - - pextrq $1, %xmm0, %rcx -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 4.00 - - pextrq $1, %xmm0, (%rax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 4.00 - - pextrw $1, %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 4.00 - - pextrq $1, %xmm0, (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 4.00 - - pextrw $1, %xmm0, (%rax) # CHECK-NEXT: - - - - - - - - 1.00 - - - - phminposuw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - phminposuw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - phminposuw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pinsrb $1, %eax, %xmm1 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pinsrb $1, (%rax), %xmm1 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pinsrb $1, (%rax), %xmm1 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pinsrd $1, %eax, %xmm1 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pinsrd $1, (%rax), %xmm1 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pinsrd $1, (%rax), %xmm1 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pinsrq $1, %rax, %xmm1 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pinsrq $1, (%rax), %xmm1 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pinsrq $1, (%rax), %xmm1 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmaxsb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxsb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxsb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmaxsd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxsd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxsd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmaxud %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxud (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxud (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmaxuw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxuw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmaxuw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pminsb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminsb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminsb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pminsd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminsd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminsd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pminud %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminud (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminud (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pminuw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminuw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pminuw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmovsxbd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovsxbd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovsxbd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmovsxbq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovsxbq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovsxbq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmovsxbw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovsxbw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovsxbw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmovsxdq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovsxdq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovsxdq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmovsxwd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovsxwd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovsxwd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmovsxwq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovsxwq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovsxwq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmovzxbd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovzxbd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovzxbd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmovzxbq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovzxbq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovzxbq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmovzxbw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovzxbw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovzxbw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmovzxdq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovzxdq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovzxdq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmovzxwd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovzxwd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovzxwd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pmovzxwq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovzxwq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pmovzxwq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmuldq %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmuldq (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmuldq (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmulld %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmulld (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmulld (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - ptest %xmm0, %xmm1 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 1.00 - - ptest (%rax), %xmm1 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 1.00 1.00 - - ptest (%rax), %xmm1 # CHECK-NEXT: - - - - - - - - - - - 1.00 - roundpd $1, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - roundpd $1, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - roundpd $1, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - roundps $1, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - roundps $1, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - roundps $1, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - roundsd $1, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - roundsd $1, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - roundsd $1, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - 1.00 - roundss $1, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - roundss $1, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - roundss $1, (%rax), %xmm2 diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse42.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse42.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse42.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse42.s @@ -78,7 +78,7 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: 2.00 2.00 2.00 - - - - - 11.00 - - 1.00 - +# CHECK-NEXT: 2.00 2.00 2.00 - - - - - 11.00 - - 1.00 - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse4a.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse4a.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse4a.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-sse4a.s @@ -19,8 +19,8 @@ # CHECK-NEXT: [6]: HasSideEffects (U) # CHECK: [1] [2] [3] [4] [5] [6] Instructions: -# CHECK-NEXT: 1 2 1.00 extrq %xmm0, %xmm2 -# CHECK-NEXT: 1 2 1.00 extrq $22, $2, %xmm2 +# CHECK-NEXT: 1 3 1.00 extrq %xmm0, %xmm2 +# CHECK-NEXT: 1 3 1.00 extrq $22, $2, %xmm2 # CHECK-NEXT: 1 4 1.00 insertq %xmm0, %xmm2 # CHECK-NEXT: 1 4 1.00 insertq $22, $22, %xmm0, %xmm2 # CHECK-NEXT: 1 8 1.00 * movntsd %xmm0, (%rax) @@ -43,7 +43,7 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: 0.67 0.67 0.67 - - - - - 1.00 3.00 5.00 1.00 - +# CHECK-NEXT: 0.67 0.67 0.67 - - - - - 1.00 3.00 5.00 1.00 - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-ssse3.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-ssse3.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-ssse3.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-ssse3.s @@ -122,30 +122,30 @@ # CHECK-NEXT: 1 8 0.33 * palignr $1, (%rax), %mm2 # CHECK-NEXT: 1 1 0.25 palignr $1, %xmm0, %xmm2 # CHECK-NEXT: 1 8 0.33 * palignr $1, (%rax), %xmm2 -# CHECK-NEXT: 1 100 0.25 phaddd %mm0, %mm2 -# CHECK-NEXT: 1 100 0.25 * phaddd (%rax), %mm2 -# CHECK-NEXT: 1 100 0.25 phaddd %xmm0, %xmm2 -# CHECK-NEXT: 1 100 0.25 * phaddd (%rax), %xmm2 -# CHECK-NEXT: 1 100 0.25 phaddsw %mm0, %mm2 -# CHECK-NEXT: 1 100 0.25 * phaddsw (%rax), %mm2 -# CHECK-NEXT: 1 100 0.25 phaddsw %xmm0, %xmm2 -# CHECK-NEXT: 1 100 0.25 * phaddsw (%rax), %xmm2 -# CHECK-NEXT: 1 100 0.25 phaddw %mm0, %mm2 -# CHECK-NEXT: 1 100 0.25 * phaddw (%rax), %mm2 -# CHECK-NEXT: 1 100 0.25 phaddw %xmm0, %xmm2 -# CHECK-NEXT: 1 100 0.25 * phaddw (%rax), %xmm2 -# CHECK-NEXT: 1 100 0.25 phsubd %mm0, %mm2 -# CHECK-NEXT: 1 100 0.25 * phsubd (%rax), %mm2 -# CHECK-NEXT: 1 100 0.25 phsubd %xmm0, %xmm2 -# CHECK-NEXT: 1 100 0.25 * phsubd (%rax), %xmm2 -# CHECK-NEXT: 1 100 0.25 phsubsw %mm0, %mm2 -# CHECK-NEXT: 1 100 0.25 * phsubsw (%rax), %mm2 -# CHECK-NEXT: 1 100 0.25 phsubsw %xmm0, %xmm2 -# CHECK-NEXT: 1 100 0.25 * phsubsw (%rax), %xmm2 -# CHECK-NEXT: 1 100 0.25 phsubw %mm0, %mm2 -# CHECK-NEXT: 1 100 0.25 * phsubw (%rax), %mm2 -# CHECK-NEXT: 1 100 0.25 phsubw %xmm0, %xmm2 -# CHECK-NEXT: 1 100 0.25 * phsubw (%rax), %xmm2 +# CHECK-NEXT: 1 3 0.25 phaddd %mm0, %mm2 +# CHECK-NEXT: 2 7 0.33 * phaddd (%rax), %mm2 +# CHECK-NEXT: 1 3 0.25 phaddd %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.33 * phaddd (%rax), %xmm2 +# CHECK-NEXT: 1 3 0.25 phaddsw %mm0, %mm2 +# CHECK-NEXT: 2 7 0.33 * phaddsw (%rax), %mm2 +# CHECK-NEXT: 1 3 0.25 phaddsw %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.33 * phaddsw (%rax), %xmm2 +# CHECK-NEXT: 1 3 0.25 phaddw %mm0, %mm2 +# CHECK-NEXT: 2 7 0.33 * phaddw (%rax), %mm2 +# CHECK-NEXT: 1 3 0.25 phaddw %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.33 * phaddw (%rax), %xmm2 +# CHECK-NEXT: 1 3 0.25 phsubd %mm0, %mm2 +# CHECK-NEXT: 2 7 0.33 * phsubd (%rax), %mm2 +# CHECK-NEXT: 1 3 0.25 phsubd %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.33 * phsubd (%rax), %xmm2 +# CHECK-NEXT: 1 3 0.25 phsubsw %mm0, %mm2 +# CHECK-NEXT: 2 7 0.33 * phsubsw (%rax), %mm2 +# CHECK-NEXT: 1 3 0.25 phsubsw %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.33 * phsubsw (%rax), %xmm2 +# CHECK-NEXT: 1 3 0.25 phsubw %mm0, %mm2 +# CHECK-NEXT: 2 7 0.33 * phsubw (%rax), %mm2 +# CHECK-NEXT: 1 3 0.25 phsubw %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.33 * phsubw (%rax), %xmm2 # CHECK-NEXT: 1 4 1.00 pmaddubsw %mm0, %mm2 # CHECK-NEXT: 1 11 1.00 * pmaddubsw (%rax), %mm2 # CHECK-NEXT: 1 4 1.00 pmaddubsw %xmm0, %xmm2 @@ -188,71 +188,71 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: 6.67 6.67 6.67 - - - - - 16.00 8.00 8.00 8.00 - +# CHECK-NEXT: 10.67 10.67 10.67 - - - - - 16.00 8.00 8.00 8.00 - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pabsb %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pabsb (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pabsb (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pabsb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pabsb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pabsb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pabsd %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pabsd (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pabsd (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pabsd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pabsd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pabsd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pabsw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pabsw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pabsw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pabsw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pabsw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pabsw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - palignr $1, %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - palignr $1, (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - palignr $1, (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - palignr $1, %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - palignr $1, (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - palignr $1, (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - phaddd %mm0, %mm2 -# CHECK-NEXT: - - - - - - - - - - - - - phaddd (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - phaddd (%rax), %mm2 # CHECK-NEXT: - - - - - - - - - - - - - phaddd %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - phaddd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - phaddd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - phaddsw %mm0, %mm2 -# CHECK-NEXT: - - - - - - - - - - - - - phaddsw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - phaddsw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - - - - - - phaddsw %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - phaddsw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - phaddsw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - phaddw %mm0, %mm2 -# CHECK-NEXT: - - - - - - - - - - - - - phaddw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - phaddw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - - - - - - phaddw %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - phaddw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - phaddw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - phsubd %mm0, %mm2 -# CHECK-NEXT: - - - - - - - - - - - - - phsubd (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - phsubd (%rax), %mm2 # CHECK-NEXT: - - - - - - - - - - - - - phsubd %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - phsubd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - phsubd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - phsubsw %mm0, %mm2 -# CHECK-NEXT: - - - - - - - - - - - - - phsubsw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - phsubsw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - - - - - - phsubsw %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - phsubsw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - phsubsw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - - phsubw %mm0, %mm2 -# CHECK-NEXT: - - - - - - - - - - - - - phsubw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - phsubw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - - - - - - phsubw %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - - - - - - - - phsubw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - phsubw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmaddubsw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmaddubsw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmaddubsw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmaddubsw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmaddubsw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmaddubsw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmulhrsw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmulhrsw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmulhrsw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 1.00 - - - - pmulhrsw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmulhrsw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - pmulhrsw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pshufb %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pshufb (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pshufb (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - pshufb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pshufb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - pshufb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psignb %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psignb (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psignb (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psignb %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psignb (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psignb (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psignd %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psignd (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psignd (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psignd %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psignd (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psignd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psignw %mm0, %mm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psignw (%rax), %mm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psignw (%rax), %mm2 # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - psignw %xmm0, %xmm2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psignw (%rax), %xmm2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.25 0.25 0.25 0.25 - psignw (%rax), %xmm2 diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_32.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_32.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_32.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_32.s @@ -64,7 +64,7 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] -# CHECK-NEXT: 0.33 0.33 0.33 0.50 0.50 0.50 0.50 - - - - - - +# CHECK-NEXT: 0.33 0.33 0.33 0.50 0.50 0.50 0.50 - - - - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: @@ -79,5 +79,5 @@ # CHECK-NEXT: - - - - - - - - - - - - - daa # CHECK-NEXT: - - - - - - - - - - - - - das # CHECK-NEXT: - - - - - - - - - - - - - into -# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - leave +# CHECK-NEXT: 0.33 0.33 0.33 0.25 0.25 0.25 0.25 - - - - - - leave # CHECK-NEXT: - - - 0.25 0.25 0.25 0.25 - - - - - - salc diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-x86_64.s @@ -1002,17 +1002,17 @@ # CHECK-NEXT: 2 5 0.33 * * andq %rsi, (%rax) # CHECK-NEXT: 2 5 0.33 * andq (%rax), %rdi # CHECK-NEXT: 1 3 0.25 bsfw %si, %di -# CHECK-NEXT: 1 3 0.25 bsrw %si, %di +# CHECK-NEXT: 1 4 0.25 bsrw %si, %di # CHECK-NEXT: 2 7 0.33 * bsfw (%rax), %di -# CHECK-NEXT: 2 7 0.33 * bsrw (%rax), %di +# CHECK-NEXT: 2 8 0.33 * bsrw (%rax), %di # CHECK-NEXT: 1 3 0.25 bsfl %esi, %edi -# CHECK-NEXT: 1 3 0.25 bsrl %esi, %edi +# CHECK-NEXT: 1 4 0.25 bsrl %esi, %edi # CHECK-NEXT: 2 7 0.33 * bsfl (%rax), %edi -# CHECK-NEXT: 2 7 0.33 * bsrl (%rax), %edi +# CHECK-NEXT: 2 8 0.33 * bsrl (%rax), %edi # CHECK-NEXT: 1 3 0.25 bsfq %rsi, %rdi -# CHECK-NEXT: 1 3 0.25 bsrq %rsi, %rdi +# CHECK-NEXT: 1 4 0.25 bsrq %rsi, %rdi # CHECK-NEXT: 2 7 0.33 * bsfq (%rax), %rdi -# CHECK-NEXT: 2 7 0.33 * bsrq (%rax), %rdi +# CHECK-NEXT: 2 8 0.33 * bsrq (%rax), %rdi # CHECK-NEXT: 1 1 1.00 bswapl %eax # CHECK-NEXT: 1 1 1.00 bswapq %rax # CHECK-NEXT: 1 1 0.25 btw %si, %di @@ -1106,13 +1106,13 @@ # CHECK-NEXT: 1 100 0.25 U cmpsw %es:(%rdi), (%rsi) # CHECK-NEXT: 1 100 0.25 U cmpsl %es:(%rdi), (%rsi) # CHECK-NEXT: 1 100 0.25 U cmpsq %es:(%rdi), (%rsi) -# CHECK-NEXT: 1 1 0.25 cmpxchgb %cl, %bl +# CHECK-NEXT: 1 3 0.25 cmpxchgb %cl, %bl # CHECK-NEXT: 5 8 0.33 * * cmpxchgb %cl, (%rbx) -# CHECK-NEXT: 1 1 0.25 cmpxchgw %cx, %bx +# CHECK-NEXT: 1 3 0.25 cmpxchgw %cx, %bx # CHECK-NEXT: 5 8 0.33 * * cmpxchgw %cx, (%rbx) -# CHECK-NEXT: 1 1 0.25 cmpxchgl %ecx, %ebx +# CHECK-NEXT: 1 3 0.25 cmpxchgl %ecx, %ebx # CHECK-NEXT: 5 8 0.33 * * cmpxchgl %ecx, (%rbx) -# CHECK-NEXT: 1 1 0.25 cmpxchgq %rcx, %rbx +# CHECK-NEXT: 1 3 0.25 cmpxchgq %rcx, %rbx # CHECK-NEXT: 5 8 0.33 * * cmpxchgq %rcx, (%rbx) # CHECK-NEXT: 1 100 0.25 U cpuid # CHECK-NEXT: 1 1 0.25 decb %dil @@ -1146,9 +1146,9 @@ # CHECK-NEXT: 1 7 1.00 * imulw (%rax) # CHECK-NEXT: 1 3 1.00 imulw %si, %di # CHECK-NEXT: 1 7 1.00 * imulw (%rax), %di -# CHECK-NEXT: 1 3 1.00 imulw $511, %si, %di +# CHECK-NEXT: 1 4 1.00 imulw $511, %si, %di # CHECK-NEXT: 1 7 1.00 * imulw $511, (%rax), %di -# CHECK-NEXT: 1 3 1.00 imulw $7, %si, %di +# CHECK-NEXT: 1 4 1.00 imulw $7, %si, %di # CHECK-NEXT: 1 7 1.00 * imulw $7, (%rax), %di # CHECK-NEXT: 1 3 1.00 imull %edi # CHECK-NEXT: 1 7 1.00 * imull (%rax) @@ -1946,27 +1946,27 @@ # CHECK-NEXT: - - - - 1.00 - - - - - - - 1.00 imulw %di # CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imulw (%rax) # CHECK-NEXT: - - - - 1.00 - - - - - - - 1.00 imulw %si, %di -# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imulw (%rax), %di +# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imulw (%rax), %di # CHECK-NEXT: - - - - 1.00 - - - - - - - 1.00 imulw $511, %si, %di -# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imulw $511, (%rax), %di +# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imulw $511, (%rax), %di # CHECK-NEXT: - - - - 1.00 - - - - - - - 1.00 imulw $7, %si, %di -# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imulw $7, (%rax), %di +# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imulw $7, (%rax), %di # CHECK-NEXT: - - - - 1.00 - - - - - - - 1.00 imull %edi -# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imull (%rax) +# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imull (%rax) # CHECK-NEXT: - - - - 1.00 - - - - - - - 1.00 imull %esi, %edi -# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imull (%rax), %edi +# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imull (%rax), %edi # CHECK-NEXT: - - - - 1.00 - - - - - - - 1.00 imull $665536, %esi, %edi -# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imull $665536, (%rax), %edi +# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imull $665536, (%rax), %edi # CHECK-NEXT: - - - - 1.00 - - - - - - - 1.00 imull $7, %esi, %edi -# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imull $7, (%rax), %edi +# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imull $7, (%rax), %edi # CHECK-NEXT: - - - - 1.00 - - - - - - - 1.00 imulq %rdi # CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imulq (%rax) # CHECK-NEXT: - - - - 1.00 - - - - - - - 1.00 imulq %rsi, %rdi -# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imulq (%rax), %rdi +# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imulq (%rax), %rdi # CHECK-NEXT: - - - - 1.00 - - - - - - - 1.00 imulq $665536, %rsi, %rdi -# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imulq $665536, (%rax), %rdi +# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imulq $665536, (%rax), %rdi # CHECK-NEXT: - - - - 1.00 - - - - - - - 1.00 imulq $7, %rsi, %rdi -# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imulq $7, (%rax), %rdi +# CHECK-NEXT: 0.33 0.33 0.33 - 1.00 - - - - - - - 1.00 imulq $7, (%rax), %rdi # CHECK-NEXT: - - - - - - - - - - - - - inb $7, %al # CHECK-NEXT: - - - - - - - - - - - - - inb %dx, %al # CHECK-NEXT: - - - - - - - - - - - - - inw $7, %ax diff --git a/llvm/test/tools/llvm-mca/X86/Znver2/resources-x87.s b/llvm/test/tools/llvm-mca/X86/Znver2/resources-x87.s --- a/llvm/test/tools/llvm-mca/X86/Znver2/resources-x87.s +++ b/llvm/test/tools/llvm-mca/X86/Znver2/resources-x87.s @@ -380,12 +380,12 @@ # CHECK-NEXT: - - - - - - - - - - - 1.00 - fabs # CHECK-NEXT: - - - - - - - - 1.00 - - - - fadd %st, %st(1) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fadd %st(2), %st -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fadds (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - faddl (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fadds (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - faddl (%ecx) # CHECK-NEXT: - - - - - - - - 1.00 - - - - faddp %st, %st(1) # CHECK-NEXT: - - - - - - - - 1.00 - - - - faddp %st, %st(2) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fiadds (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fiaddl (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fiadds (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fiaddl (%ecx) # CHECK-NEXT: - - - - - - - - - - - - - fbld (%ecx) # CHECK-NEXT: - - - - - - - - - - - - - fbstp (%eax) # CHECK-NEXT: - - - - - - - - - - - 1.00 - fchs @@ -400,72 +400,72 @@ # CHECK-NEXT: - - - - - - - - - - - - - fcmovu %st(1), %st # CHECK-NEXT: - - - - - - - - 1.00 - - - - fcom %st(1) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fcom %st(3) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fcoms (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fcoml (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fcoms (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fcoml (%eax) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fcomp %st(1) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fcomp %st(3) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fcomps (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fcompl (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fcomps (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fcompl (%eax) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fcompp -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - 0.50 - - fcomi %st(3), %st -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - 0.50 - - fcompi %st(3), %st +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - 0.50 - - fcomi %st(3), %st +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - 0.50 - - fcompi %st(3), %st # CHECK-NEXT: - - - - - - - - - - - - - fcos -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fdecstp +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fdecstp # CHECK-NEXT: - - - - - - - - - - - 1.00 - fdiv %st, %st(1) # CHECK-NEXT: - - - - - - - - - - - 1.00 - fdiv %st(2), %st -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fdivs (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fdivl (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fdivs (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fdivl (%eax) # CHECK-NEXT: - - - - - - - - - - - 1.00 - fdivp %st, %st(1) # CHECK-NEXT: - - - - - - - - - - - 1.00 - fdivp %st, %st(2) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fidivs (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fidivl (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fidivs (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fidivl (%eax) # CHECK-NEXT: - - - - - - - - - - - 1.00 - fdivr %st, %st(1) # CHECK-NEXT: - - - - - - - - - - - 1.00 - fdivr %st(2), %st -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fdivrs (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fdivrl (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fdivrs (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fdivrl (%eax) # CHECK-NEXT: - - - - - - - - - - - 1.00 - fdivrp %st, %st(1) # CHECK-NEXT: - - - - - - - - - - - 1.00 - fdivrp %st, %st(2) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fidivrs (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fidivrl (%eax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - ffree %st(0) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.50 - - 1.50 - ficoms (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.50 - - 1.50 - ficoml (%eax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.50 - - 1.50 - ficomps (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.50 - - 1.50 - ficompl (%eax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - filds (%edx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fildl (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fildll (%eax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fincstp +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fidivrs (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fidivrl (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - ffree %st(0) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.50 - - 1.50 - ficoms (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.50 - - 1.50 - ficoml (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.50 - - 1.50 - ficomps (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.50 - - 1.50 - ficompl (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - filds (%edx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fildl (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fildll (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fincstp # CHECK-NEXT: - - - - - - - - - - - - - fninit -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fists (%edx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fistl (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fistps (%edx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fistpl (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fistpll (%eax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fisttps (%edx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fisttpl (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fisttpll (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fists (%edx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fistl (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fistps (%edx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fistpl (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fistpll (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fisttps (%edx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fisttpl (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fisttpll (%eax) # CHECK-NEXT: - - - - - - - - - 0.50 - 0.50 - fld %st(0) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - flds (%edx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - fldl (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 - 0.50 - fldt (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - flds (%edx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - fldl (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 - 0.50 - fldt (%eax) # CHECK-NEXT: - - - - - - - - - - - - - fldcw (%eax) # CHECK-NEXT: - - - - - - - - - - - - - fldenv (%eax) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fld1 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fldl2e -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fldl2t -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fldlg2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fldln2 -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fldpi -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 - 0.50 - fldz +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fld1 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fldl2e +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fldl2t +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fldlg2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fldln2 +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - 1.00 - fldpi +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - 0.50 - 0.50 - fldz # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - fmul %st, %st(1) # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - fmul %st(2), %st -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - fmuls (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - fmull (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - fmuls (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - fmull (%eax) # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - fmulp %st, %st(1) # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - fmulp %st, %st(2) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - fimuls (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - fimull (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - fimuls (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 0.50 - - - fimull (%eax) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fnop # CHECK-NEXT: - - - - - - - - - - - - - fpatan # CHECK-NEXT: - - - - - - - - - - - - - fprem @@ -479,12 +479,12 @@ # CHECK-NEXT: - - - - - - - - - - - - - fsincos # CHECK-NEXT: - - - - - - - - - - - 20.00 - fsqrt # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - fst %st(0) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - fsts (%edx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - fstl (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - fsts (%edx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - fstl (%ecx) # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - fstp %st(0) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - fstpl (%edx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - fstpl (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fstpt (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - fstpl (%edx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - - - - fstpl (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - - - 0.50 0.50 - fstpt (%eax) # CHECK-NEXT: - - - - - - - - - - - - - fnstcw (%eax) # CHECK-NEXT: - - - - - - - - - - - - - fnstenv (%eax) # CHECK-NEXT: - - - - - - - - - - - - - fnstsw (%eax) @@ -493,28 +493,28 @@ # CHECK-NEXT: - - - - - - - - - - - - - fnsave (%eax) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fsub %st, %st(1) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fsub %st(2), %st -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fsubs (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fsubl (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fsubs (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fsubl (%eax) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fsubp %st, %st(1) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fsubp %st, %st(2) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fisubs (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fisubl (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fisubs (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fisubl (%eax) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fsubr %st, %st(1) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fsubr %st(2), %st -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fsubrs (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fsubrl (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fsubrs (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fsubrl (%eax) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fsubrp %st, %st(1) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fsubrp %st, %st(2) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fisubrs (%ecx) -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fisubrl (%eax) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fisubrs (%ecx) +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 1.00 - - - - fisubrl (%eax) # CHECK-NEXT: - - - - - - - - 1.00 - - - - ftst # CHECK-NEXT: - - - - - - - - 1.00 - - - - fucom %st(1) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fucom %st(3) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fucomp %st(1) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fucomp %st(3) # CHECK-NEXT: - - - - - - - - 1.00 - - - - fucompp -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - 0.50 - - fucomi %st(3), %st -# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - 0.50 - - fucompi %st(3), %st +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - 0.50 - - fucomi %st(3), %st +# CHECK-NEXT: 0.33 0.33 0.33 - - - - - 0.50 - 0.50 - - fucompi %st(3), %st # CHECK-NEXT: - - - - - - - - 1.00 - - - - wait # CHECK-NEXT: - - - - - - - - - - - 1.00 - fxam # CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - fxch %st(1)