diff --git a/llvm/lib/Target/X86/X86SchedIceLake.td b/llvm/lib/Target/X86/X86SchedIceLake.td --- a/llvm/lib/Target/X86/X86SchedIceLake.td +++ b/llvm/lib/Target/X86/X86SchedIceLake.td @@ -388,14 +388,14 @@ defm : ICXWriteResPair; // Vector PMULLD. defm : ICXWriteResPair; defm : ICXWriteResPair; -defm : ICXWriteResPair; // Vector shuffles. -defm : ICXWriteResPair; -defm : ICXWriteResPair; -defm : ICXWriteResPair; -defm : ICXWriteResPair; // Vector variable shuffles. -defm : ICXWriteResPair; -defm : ICXWriteResPair; -defm : ICXWriteResPair; +defm : ICXWriteResPair; // Vector shuffles. +defm : ICXWriteResPair; +defm : ICXWriteResPair; +defm : ICXWriteResPair; +defm : ICXWriteResPair; // Vector variable shuffles. +defm : ICXWriteResPair; +defm : ICXWriteResPair; +defm : ICXWriteResPair; defm : ICXWriteResPair; // Vector blends. defm : ICXWriteResPair; defm : ICXWriteResPair; @@ -663,7 +663,10 @@ } def: InstRW<[ICXWriteResGroup3], (instregex "COM(P?)_FST0r", "KMOV(B|D|Q|W)kr", - "UCOM_F(P?)r")>; + "UCOM_F(P?)r", + "VPBROADCAST(D|Q)rr", + "(V?)PALIGNR(Y|Z|Z128|Z256)?rri", + "(V?)PACK(U|S)S(DW|WB)(Y|Z|Z128|Z256)?rr")>; def ICXWriteResGroup4 : SchedWriteRes<[ICXPort6]> { let Latency = 1; @@ -1296,19 +1299,10 @@ let ResourceCycles = [1,1]; } def: InstRW<[ICXWriteResGroup92], (instregex "VMOVSDZrm(b?)", - "VMOVSSZrm(b?)")>; - -def ICXWriteResGroup92a : SchedWriteRes<[ICXPort5,ICXPort23]> { - let Latency = 6; - let NumMicroOps = 2; - let ResourceCycles = [1,1]; -} -def: InstRW<[ICXWriteResGroup92a], (instregex "(V?)PMOV(SX|ZX)BDrm", - "(V?)PMOV(SX|ZX)BQrm", - "(V?)PMOV(SX|ZX)BWrm", - "(V?)PMOV(SX|ZX)DQrm", - "(V?)PMOV(SX|ZX)WDrm", - "(V?)PMOV(SX|ZX)WQrm")>; + "VMOVSSZrm(b?)", + "VPBROADCAST(B|W)(Z128)?rm", + "(V?)PALIGNR(Z128)?rmi", + "(V?)PACK(U|S)S(DW|WB)(Z128)?rm")>; def ICXWriteResGroup93 : SchedWriteRes<[ICXPort5,ICXPort015]> { let Latency = 7; @@ -1546,7 +1540,9 @@ } def: InstRW<[ICXWriteResGroup119], (instregex "FCOM(P?)(32|64)m", "VPBROADCASTB(Z|Z256)rm(b?)", - "VPBROADCASTW(Z|Z256)rm(b?)")>; + "VPBROADCASTW(Z|Z256)rm(b?)", + "(V?)PALIGNR(Y|Z|Z256)rmi", + "(V?)PACK(U|S)S(DW|WB)(Y|Z|Z256)rm")>; def: InstRW<[ICXWriteResGroup119], (instrs VPBROADCASTBYrm, VPBROADCASTWYrm, VPMOVSXBDYrm, diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s --- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s +++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx1.s @@ -1506,30 +1506,30 @@ # CHECK-NEXT: 1 1 0.50 vpminuw %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 2 7 0.50 * vpminuw (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 2 1.00 vpmovmskb %xmm0, %ecx -# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * vpmovsxbd (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * vpmovsxbq (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * vpmovsxbw (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * vpmovsxdq (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * vpmovsxwd (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * vpmovsxwq (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * vpmovzxbd (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * vpmovzxbq (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * vpmovzxbw (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * vpmovzxdq (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * vpmovzxwd (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * vpmovzxwq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 vpmovsxbd %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpmovsxbd (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 vpmovsxbq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpmovsxbq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 vpmovsxbw %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpmovsxbw (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 vpmovsxdq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpmovsxdq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 vpmovsxwd %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpmovsxwd (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 vpmovsxwq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpmovsxwq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 vpmovzxbd %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpmovzxbd (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 vpmovzxbq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpmovzxbq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 vpmovzxbw %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpmovzxbw (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 vpmovzxdq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpmovzxdq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 vpmovzxwd %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpmovzxwd (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 vpmovzxwq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpmovzxwq (%rax), %xmm2 # CHECK-NEXT: 1 5 0.50 vpmuldq %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 2 11 0.50 * vpmuldq (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 5 0.50 vpmulhrsw %xmm0, %xmm1, %xmm2 @@ -1548,14 +1548,14 @@ # CHECK-NEXT: 2 7 0.50 * vpor (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 3 1.00 vpsadbw %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 2 9 1.00 * vpsadbw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 1.00 vpshufb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 2 7 1.00 * vpshufb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 1.00 vpshufd $1, %xmm0, %xmm2 -# CHECK-NEXT: 2 7 1.00 * vpshufd $1, (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 vpshufhw $1, %xmm0, %xmm2 -# CHECK-NEXT: 2 7 1.00 * vpshufhw $1, (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 vpshuflw $1, %xmm0, %xmm2 -# CHECK-NEXT: 2 7 1.00 * vpshuflw $1, (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 vpshufb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpshufb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 0.50 vpshufd $1, %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpshufd $1, (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 vpshufhw $1, %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpshufhw $1, (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 vpshuflw $1, %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpshuflw $1, (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 vpsignb %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 2 7 0.50 * vpsignb (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.50 vpsignd %xmm0, %xmm1, %xmm2 @@ -1565,7 +1565,7 @@ # CHECK-NEXT: 1 1 0.50 vpslld $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpslld %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 2 7 0.50 * vpslld (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 1.00 vpslldq $1, %xmm1, %xmm2 +# CHECK-NEXT: 1 1 0.50 vpslldq $1, %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.50 vpsllq $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsllq %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 2 7 0.50 * vpsllq (%rax), %xmm1, %xmm2 @@ -1581,7 +1581,7 @@ # CHECK-NEXT: 1 1 0.50 vpsrld $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsrld %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 2 7 0.50 * vpsrld (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 1.00 vpsrldq $1, %xmm1, %xmm2 +# CHECK-NEXT: 1 1 0.50 vpsrldq $1, %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.50 vpsrlq $1, %xmm0, %xmm2 # CHECK-NEXT: 2 2 1.00 vpsrlq %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 2 7 0.50 * vpsrlq (%rax), %xmm1, %xmm2 @@ -1608,22 +1608,22 @@ # CHECK-NEXT: 3 9 1.00 * vptest (%rax), %xmm1 # CHECK-NEXT: 2 3 1.00 vptest %ymm0, %ymm1 # CHECK-NEXT: 3 10 1.00 * vptest (%rax), %ymm1 -# CHECK-NEXT: 1 1 1.00 vpunpckhbw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 2 7 1.00 * vpunpckhbw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 1.00 vpunpckhdq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 1.00 vpunpckhqdq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 2 7 1.00 * vpunpckhqdq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 1.00 vpunpckhwd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 2 7 1.00 * vpunpckhwd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 1.00 vpunpcklbw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 2 7 1.00 * vpunpcklbw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 1.00 vpunpckldq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 1.00 vpunpcklqdq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 2 7 1.00 * vpunpcklqdq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: 1 1 1.00 vpunpcklwd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: 2 7 1.00 * vpunpcklwd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 0.50 vpunpckhbw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpunpckhbw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 0.50 vpunpckhdq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 0.50 vpunpckhqdq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpunpckhqdq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 0.50 vpunpckhwd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpunpckhwd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 0.50 vpunpcklbw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpunpcklbw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 0.50 vpunpckldq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 0.50 vpunpcklqdq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpunpcklqdq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: 1 1 0.50 vpunpcklwd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: 2 7 0.50 * vpunpcklwd (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 1 0.33 vpxor %xmm0, %xmm1, %xmm2 # CHECK-NEXT: 2 7 0.50 * vpxor (%rax), %xmm1, %xmm2 # CHECK-NEXT: 1 4 1.00 vrcpps %xmm0, %xmm2 @@ -1738,7 +1738,7 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: - 123.00 317.42 196.42 173.17 173.17 34.00 337.92 6.25 12.67 - - +# CHECK-NEXT: - 123.00 317.42 221.42 173.17 173.17 34.00 312.92 6.25 12.67 - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -2218,30 +2218,30 @@ # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminuw %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminuw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovmskb %xmm0, %ecx -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbd %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbd (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbw %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbw (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxdq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxdq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxwd %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxwd (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxwq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxwq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbd %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbd (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbw %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbw (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxdq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxdq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxwd %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxwd (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxwq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxwq (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmuldq %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmuldq (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhrsw %xmm0, %xmm1, %xmm2 @@ -2260,14 +2260,14 @@ # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpor (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpsadbw %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpsadbw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $1, (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $1, (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $1, (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $1, (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $1, (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $1, (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsignb %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsignb (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsignd %xmm0, %xmm1, %xmm2 @@ -2277,7 +2277,7 @@ # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpslld $1, %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpslld %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpslld (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpslldq $1, %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpslldq $1, %xmm1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllq $1, %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllq %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllq (%rax), %xmm1, %xmm2 @@ -2293,7 +2293,7 @@ # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrld $1, %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrld %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrld (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsrldq $1, %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpsrldq $1, %xmm1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlq $1, %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlq %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlq (%rax), %xmm1, %xmm2 @@ -2320,22 +2320,22 @@ # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - - - vptest (%rax), %xmm1 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - vptest %ymm0, %ymm1 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - - - vptest (%rax), %ymm1 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhqdq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhqdq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklqdq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklqdq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhqdq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhqdq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklqdq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklqdq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpxor %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpxor (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - 1.00 - - - - - - - - - vrcpps %xmm0, %xmm2 diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s --- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s +++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx2.s @@ -667,14 +667,14 @@ # CHECK-NEXT: 2 8 0.50 * vpor (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 3 1.00 vpsadbw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 2 10 1.00 * vpsadbw (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 1.00 vpshufb %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 1.00 vpshufd $1, %ymm0, %ymm2 -# CHECK-NEXT: 2 8 1.00 * vpshufd $1, (%rax), %ymm2 -# CHECK-NEXT: 1 1 1.00 vpshufhw $1, %ymm0, %ymm2 -# CHECK-NEXT: 2 8 1.00 * vpshufhw $1, (%rax), %ymm2 -# CHECK-NEXT: 1 1 1.00 vpshuflw $1, %ymm0, %ymm2 -# CHECK-NEXT: 2 8 1.00 * vpshuflw $1, (%rax), %ymm2 +# CHECK-NEXT: 1 1 0.50 vpshufb %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 0.50 vpshufd $1, %ymm0, %ymm2 +# CHECK-NEXT: 2 8 0.50 * vpshufd $1, (%rax), %ymm2 +# CHECK-NEXT: 1 1 0.50 vpshufhw $1, %ymm0, %ymm2 +# CHECK-NEXT: 2 8 0.50 * vpshufhw $1, (%rax), %ymm2 +# CHECK-NEXT: 1 1 0.50 vpshuflw $1, %ymm0, %ymm2 +# CHECK-NEXT: 2 8 0.50 * vpshuflw $1, (%rax), %ymm2 # CHECK-NEXT: 1 1 0.50 vpsignb %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpsignb (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.50 vpsignd %ymm0, %ymm1, %ymm2 @@ -684,7 +684,7 @@ # CHECK-NEXT: 1 1 0.50 vpslld $1, %ymm0, %ymm2 # CHECK-NEXT: 2 4 1.00 vpslld %xmm0, %ymm1, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpslld (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 1.00 vpslldq $1, %ymm1, %ymm2 +# CHECK-NEXT: 1 1 0.50 vpslldq $1, %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.50 vpsllq $1, %ymm0, %ymm2 # CHECK-NEXT: 2 4 1.00 vpsllq %xmm0, %ymm1, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpsllq (%rax), %ymm1, %ymm2 @@ -712,7 +712,7 @@ # CHECK-NEXT: 1 1 0.50 vpsrld $1, %ymm0, %ymm2 # CHECK-NEXT: 2 4 1.00 vpsrld %xmm0, %ymm1, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpsrld (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 1.00 vpsrldq $1, %ymm1, %ymm2 +# CHECK-NEXT: 1 1 0.50 vpsrldq $1, %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.50 vpsrlq $1, %ymm0, %ymm2 # CHECK-NEXT: 2 4 1.00 vpsrlq %xmm0, %ymm1, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpsrlq (%rax), %ymm1, %ymm2 @@ -743,22 +743,22 @@ # CHECK-NEXT: 2 8 0.50 * vpsubusw (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.33 vpsubw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 1.00 vpunpckhbw %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 1.00 vpunpckhdq %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 1.00 vpunpckhqdq %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 2 8 1.00 * vpunpckhqdq (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 1.00 vpunpckhwd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 1.00 vpunpcklbw %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 1.00 vpunpckldq %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 1.00 vpunpcklqdq %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 2 8 1.00 * vpunpcklqdq (%rax), %ymm1, %ymm2 -# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 0.50 vpunpckhbw %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 8 0.50 * vpunpckhbw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 0.50 vpunpckhdq %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 8 0.50 * vpunpckhdq (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 0.50 vpunpckhqdq %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 8 0.50 * vpunpckhqdq (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 0.50 vpunpckhwd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 8 0.50 * vpunpckhwd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 0.50 vpunpcklbw %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 8 0.50 * vpunpcklbw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 0.50 vpunpckldq %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 8 0.50 * vpunpckldq (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 0.50 vpunpcklqdq %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 8 0.50 * vpunpcklqdq (%rax), %ymm1, %ymm2 +# CHECK-NEXT: 1 1 0.50 vpunpcklwd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: 2 8 0.50 * vpunpcklwd (%rax), %ymm1, %ymm2 # CHECK-NEXT: 1 1 0.33 vpxor %ymm0, %ymm1, %ymm2 # CHECK-NEXT: 2 8 0.50 * vpxor (%rax), %ymm1, %ymm2 @@ -778,7 +778,7 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: - - 110.33 89.33 99.67 99.67 1.00 164.33 - 1.67 - - +# CHECK-NEXT: - - 110.33 102.33 99.67 99.67 1.00 151.33 - 1.67 - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -989,14 +989,14 @@ # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpor (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpsadbw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpsadbw (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $1, %ymm0, %ymm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $1, (%rax), %ymm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $1, %ymm0, %ymm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $1, (%rax), %ymm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $1, %ymm0, %ymm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $1, (%rax), %ymm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufb %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufb (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $1, %ymm0, %ymm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $1, (%rax), %ymm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $1, %ymm0, %ymm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $1, (%rax), %ymm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $1, %ymm0, %ymm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $1, (%rax), %ymm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsignb %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsignb (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsignd %ymm0, %ymm1, %ymm2 @@ -1006,7 +1006,7 @@ # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpslld $1, %ymm0, %ymm2 # CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpslld %xmm0, %ymm1, %ymm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpslld (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpslldq $1, %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpslldq $1, %ymm1, %ymm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllq $1, %ymm0, %ymm2 # CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllq %xmm0, %ymm1, %ymm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllq (%rax), %ymm1, %ymm2 @@ -1034,7 +1034,7 @@ # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrld $1, %ymm0, %ymm2 # CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrld %xmm0, %ymm1, %ymm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrld (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsrldq $1, %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpsrldq $1, %ymm1, %ymm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlq $1, %ymm0, %ymm2 # CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlq %xmm0, %ymm1, %ymm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlq (%rax), %ymm1, %ymm2 @@ -1065,21 +1065,21 @@ # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubusw (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubw %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubw (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhqdq %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhqdq (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklqdq %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklqdq (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhqdq %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhqdq (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklqdq %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklqdq (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpxor %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpxor (%rax), %ymm1, %ymm2 diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s --- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s +++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s @@ -684,74 +684,74 @@ # CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: 2 6 2.00 vpermw %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpmovsxbw (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpmovsxbw (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpmovsxbw (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmovsxbw %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmovsxbw (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmovsxbw %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmovsxbw (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmovsxbw %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmovsxbw (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %ymm19 # CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpmovzxbw (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpmovzxbw (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpmovzxbw (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmovzxbw %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmovzxbw (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmovzxbw %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmovzxbw (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmovzxbw %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmovzxbw (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %ymm19 # CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpshufb %xmm16, %xmm17, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpshufb (%rax), %xmm17, %xmm19 -# CHECK-NEXT: 1 1 1.00 vpshufb %xmm16, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpshufb (%rax), %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpshufb %xmm16, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpshufb (%rax), %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpshufb %ymm16, %ymm17, %ymm19 -# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %ymm17, %ymm19 -# CHECK-NEXT: 1 1 1.00 vpshufb %ymm16, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpshufb %ymm16, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpshufhw $0, (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpshufhw $0, (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpshufhw $0, (%rax), %xmm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %ymm16, %ymm19 -# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %ymm19 -# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %ymm16, %ymm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %ymm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpshufhw $0, %ymm16, %ymm19 {%k1} {z} -# CHECK-NEXT: 2 8 1.00 * vpshufhw $0, (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpshuflw $0, (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpshuflw $0, (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpshuflw $0, (%rax), %xmm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %ymm16, %ymm19 -# CHECK-NEXT: 2 8 1.00 * vpshuflw $0, (%rax), %ymm19 -# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %ymm16, %ymm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpshuflw $0, (%rax), %ymm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpshuflw $0, %ymm16, %ymm19 {%k1} {z} -# CHECK-NEXT: 2 8 1.00 * vpshuflw $0, (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpslldq $1, %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpslldq $1, (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpslldq $1, %ymm16, %ymm19 -# CHECK-NEXT: 2 8 1.00 * vpslldq $1, (%rax), %ymm19 -# CHECK-NEXT: 1 1 1.00 vpsrldq $1, %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpsrldq $1, (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpsrldq $1, %ymm16, %ymm19 -# CHECK-NEXT: 2 8 1.00 * vpsrldq $1, (%rax), %ymm19 +# CHECK-NEXT: 1 1 0.50 vpshufb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpshufb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpshufb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpshufb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpshufb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpshufb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpshufb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpshufb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpshufb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpshufhw $0, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpshufhw $0, (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpshufhw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpshufhw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpshufhw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpshufhw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpshufhw $0, %ymm16, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpshufhw $0, (%rax), %ymm19 +# CHECK-NEXT: 1 1 0.50 vpshufhw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpshufhw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpshufhw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpshufhw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpshuflw $0, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpshuflw $0, (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpshuflw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpshuflw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpshuflw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpshuflw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpshuflw $0, %ymm16, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpshuflw $0, (%rax), %ymm19 +# CHECK-NEXT: 1 1 0.50 vpshuflw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpshuflw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpshuflw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpshuflw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpslldq $1, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpslldq $1, (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpslldq $1, %ymm16, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpslldq $1, (%rax), %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsrldq $1, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsrldq $1, (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsrldq $1, %ymm16, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsrldq $1, (%rax), %ymm19 # CHECK-NEXT: 1 1 0.33 vpsubb %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 7 0.50 * vpsubb (%rax), %xmm17, %xmm19 # CHECK-NEXT: 1 1 0.33 vpsubb %xmm16, %xmm17, %xmm19 {%k1} @@ -808,54 +808,54 @@ # CHECK-NEXT: 2 11 1.00 * vptestnmw (%rax), %ymm1, %k2 # CHECK-NEXT: 1 4 1.00 vptestnmw %ymm0, %ymm1, %k2 {%k3} # CHECK-NEXT: 2 11 1.00 * vptestnmw (%rax), %ymm1, %k2 {%k3} -# CHECK-NEXT: 1 1 1.00 vpunpckhbw %xmm16, %xmm17, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpunpckhbw (%rax), %xmm17, %xmm19 -# CHECK-NEXT: 1 1 1.00 vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpunpckhbw %ymm16, %ymm17, %ymm19 -# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %ymm17, %ymm19 -# CHECK-NEXT: 1 1 1.00 vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpunpckhwd %xmm16, %xmm17, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpunpckhwd (%rax), %xmm17, %xmm19 -# CHECK-NEXT: 1 1 1.00 vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpunpckhwd %ymm16, %ymm17, %ymm19 -# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %ymm17, %ymm19 -# CHECK-NEXT: 1 1 1.00 vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpunpcklbw %xmm16, %xmm17, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpunpcklbw (%rax), %xmm17, %xmm19 -# CHECK-NEXT: 1 1 1.00 vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpunpcklbw %ymm16, %ymm17, %ymm19 -# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %ymm17, %ymm19 -# CHECK-NEXT: 1 1 1.00 vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpunpcklwd %xmm16, %xmm17, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpunpcklwd (%rax), %xmm17, %xmm19 -# CHECK-NEXT: 1 1 1.00 vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19 -# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 -# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpunpckhbw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpunpckhbw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpunpckhbw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpunpckhbw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpunpckhwd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpunpckhwd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpunpckhwd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpunpckhwd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpunpcklbw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpunpcklbw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpunpcklbw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpunpcklbw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpunpcklwd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpunpcklwd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpunpcklwd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpunpcklwd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %xmm0 # CHECK-NEXT: 1 1 0.25 vpmovm2w %k0, %xmm0 # CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %ymm0 @@ -881,7 +881,7 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: - - 33.00 29.00 95.00 95.00 - 337.00 1.00 - - - +# CHECK-NEXT: - - 33.00 81.00 95.00 95.00 - 285.00 1.00 - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -1093,74 +1093,74 @@ # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - - - vpermw (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 2.00 - - - - vpermw %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - - - vpermw (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbw %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbw (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbw %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbw (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbw %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbw (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbw %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbw (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbw %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbw (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbw %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbw (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %xmm16, %xmm17, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %xmm17, %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %xmm16, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %xmm16, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %ymm16, %ymm17, %ymm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %ymm17, %ymm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %ymm16, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %ymm16, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $0, %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $0, (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $0, %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $0, (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $0, %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $0, (%rax), %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $0, %ymm16, %ymm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $0, (%rax), %ymm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $0, %ymm16, %ymm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $0, (%rax), %ymm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufhw $0, %ymm16, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufhw $0, (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $0, %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $0, (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $0, %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $0, (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $0, %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $0, (%rax), %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $0, %ymm16, %ymm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $0, (%rax), %ymm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $0, %ymm16, %ymm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $0, (%rax), %ymm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshuflw $0, %ymm16, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $0, (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpslldq $1, %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpslldq $1, (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpslldq $1, %ymm16, %ymm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpslldq $1, (%rax), %ymm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsrldq $1, %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpsrldq $1, (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsrldq $1, %ymm16, %ymm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpsrldq $1, (%rax), %ymm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $0, %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $0, (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $0, %ymm16, %ymm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $0, (%rax), %ymm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufhw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufhw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $0, %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $0, (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $0, %ymm16, %ymm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $0, (%rax), %ymm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshuflw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshuflw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpslldq $1, %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpslldq $1, (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpslldq $1, %ymm16, %ymm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpslldq $1, (%rax), %ymm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpsrldq $1, %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpsrldq $1, (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpsrldq $1, %ymm16, %ymm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpsrldq $1, (%rax), %ymm19 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubb %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubb (%rax), %xmm17, %xmm19 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubb %xmm16, %xmm17, %xmm19 {%k1} @@ -1217,54 +1217,54 @@ # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vptestnmw (%rax), %ymm1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - - - vptestnmw %ymm0, %ymm1, %k2 {%k3} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vptestnmw (%rax), %ymm1, %k2 {%k3} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %xmm16, %xmm17, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %xmm17, %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %ymm16, %ymm17, %ymm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %ymm17, %ymm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %xmm16, %xmm17, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %xmm17, %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %ymm16, %ymm17, %ymm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %ymm17, %ymm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %xmm16, %xmm17, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %xmm17, %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %ymm16, %ymm17, %ymm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %ymm17, %ymm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %xmm16, %xmm17, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %xmm17, %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %ymm16, %ymm17, %ymm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %ymm17, %ymm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhbw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhbw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhwd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhwd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklbw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklbw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2b %k0, %xmm0 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2w %k0, %xmm0 # CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2b %k0, %ymm0 diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s --- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s +++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s @@ -1879,120 +1879,120 @@ # CHECK-NEXT: 5 19 2.00 * vpgatherdd (%rax,%xmm1,2), %xmm2 {%k1} # CHECK-NEXT: 5 17 1.00 * vpgatherqq (%rax,%xmm1,2), %xmm2 {%k1} # CHECK-NEXT: 5 17 1.00 * vpgatherqd (%rax,%xmm1,2), %xmm2 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpmovsxbd (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpmovsxbd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpmovsxbd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmovsxbd %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmovsxbd (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmovsxbd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmovsxbd (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmovsxbd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmovsxbd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %ymm19 # CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpmovsxbq (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpmovsxbq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpmovsxbq (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmovsxbq %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmovsxbq (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmovsxbq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmovsxbq (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmovsxbq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmovsxbq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %ymm19 # CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpmovsxdq (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpmovsxdq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpmovsxdq (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmovsxdq %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmovsxdq (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmovsxdq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmovsxdq (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmovsxdq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmovsxdq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %ymm19 # CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpmovsxwd (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpmovsxwd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpmovsxwd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmovsxwd %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmovsxwd (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmovsxwd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmovsxwd (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmovsxwd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmovsxwd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %ymm19 # CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpmovsxwq (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpmovsxwq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpmovsxwq (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmovsxwq %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmovsxwq (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmovsxwq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmovsxwq (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmovsxwq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmovsxwq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %ymm19 # CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpmovzxbd (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpmovzxbd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpmovzxbd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmovzxbd %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmovzxbd (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmovzxbd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmovzxbd (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmovzxbd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmovzxbd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %ymm19 # CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpmovzxbq (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpmovzxbq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpmovzxbq (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmovzxbq %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmovzxbq (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmovzxbq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmovzxbq (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmovzxbq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmovzxbq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %ymm19 # CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpmovzxdq (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpmovzxdq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpmovzxdq (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmovzxdq %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmovzxdq (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmovzxdq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmovzxdq (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmovzxdq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmovzxdq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %ymm19 # CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpmovzxwd (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpmovzxwd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpmovzxwd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmovzxwd %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmovzxwd (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmovzxwd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmovzxwd (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmovzxwd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmovzxwd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %ymm19 # CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpmovzxwq (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpmovzxwq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpmovzxwq (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmovzxwq %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmovzxwq (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmovzxwq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmovzxwq (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmovzxwq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmovzxwq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxwq (%rax), %ymm19 # CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %ymm19 {%k1} @@ -2017,24 +2017,24 @@ # CHECK-NEXT: 2 10 1.00 vpmulld %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 3 17 1.00 * vpmulld (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 3 17 1.00 * vpmulld (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpshufd $0, %xmm16, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax), %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax){1to4}, %xmm19 -# CHECK-NEXT: 1 1 1.00 vpshufd $0, %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax), %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax){1to4}, %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpshufd $0, %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax), %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax){1to4}, %xmm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpshufd $0, %ymm16, %ymm19 -# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %ymm19 -# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to8}, %ymm19 -# CHECK-NEXT: 1 1 1.00 vpshufd $0, %ymm16, %ymm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %ymm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to8}, %ymm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpshufd $0, %ymm16, %ymm19 {%k1} {z} -# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpshufd $0, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax), %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax){1to4}, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpshufd $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax){1to4}, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpshufd $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax){1to4}, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpshufd $0, %ymm16, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpshufd $0, (%rax), %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpshufd $0, (%rax){1to8}, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpshufd $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpshufd $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpshufd $0, (%rax){1to8}, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpshufd $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpshufd $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 0.33 vpsubd %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 7 0.50 * vpsubd (%rax), %xmm17, %xmm19 # CHECK-NEXT: 2 7 0.50 * vpsubd (%rax){1to4}, %xmm17, %xmm19 @@ -2119,42 +2119,42 @@ # CHECK-NEXT: 1 4 1.00 vptestnmq %ymm0, %ymm1, %k2 {%k3} # CHECK-NEXT: 2 11 1.00 * vptestnmq (%rax), %ymm1, %k2 {%k3} # CHECK-NEXT: 2 11 1.00 * vptestnmq (%rax){1to4}, %ymm1, %k2 {%k3} -# CHECK-NEXT: 1 1 1.00 vpunpckhdq %xmm16, %xmm17, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax), %xmm17, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 -# CHECK-NEXT: 1 1 1.00 vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpunpckhdq %ymm16, %ymm17, %ymm19 -# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %ymm17, %ymm19 -# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 -# CHECK-NEXT: 1 1 1.00 vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpunpckldq %xmm16, %xmm17, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax), %xmm17, %xmm19 -# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19 -# CHECK-NEXT: 1 1 1.00 vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax), %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax), %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 7 1.00 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpunpckldq %ymm16, %ymm17, %ymm19 -# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %ymm17, %ymm19 -# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19 -# CHECK-NEXT: 1 1 1.00 vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpunpckhdq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpunpckhdq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpunpckhdq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpunpckldq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpunpckldq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpunpckldq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpunpckldq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpunpckldq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vshuff32x4 $0, %ymm16, %ymm17, %ymm19 # CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax), %ymm17, %ymm19 # CHECK-NEXT: 2 10 1.00 * vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19 @@ -2352,7 +2352,7 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: - 423.00 257.33 169.33 372.50 372.50 - 715.33 4.00 - - - +# CHECK-NEXT: - 423.00 257.33 226.33 372.50 372.50 - 658.33 4.00 - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -2990,120 +2990,120 @@ # CHECK-NEXT: - - 1.58 0.58 2.00 2.00 - 0.58 0.25 - - - vpgatherdd (%rax,%xmm1,2), %xmm2 {%k1} # CHECK-NEXT: - - 1.58 0.58 1.00 1.00 - 0.58 0.25 - - - vpgatherqq (%rax,%xmm1,2), %xmm2 {%k1} # CHECK-NEXT: - - 1.58 0.58 1.00 1.00 - 0.58 0.25 - - - vpgatherqd (%rax,%xmm1,2), %xmm2 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbd %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbd (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbd (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbq %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbq (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbq (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxbq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxbq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxdq %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxdq (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxdq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxdq (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxdq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxdq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxdq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxdq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxwd %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxwd (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxwd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxwd (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxwd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxwd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxwq %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxwq (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxwq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxwq (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovsxwq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovsxwq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxwq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxwq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbd %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbd (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbd (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbq %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbq (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbq (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxbq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxbq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxdq %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxdq (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxdq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxdq (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxdq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxdq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxdq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxdq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxwd %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxwd (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxwd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxwd (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxwd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxwd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwq (%rax), %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwq (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwq (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxwq %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxwq (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxwq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxwq (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpmovzxwq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpmovzxwq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxwq (%rax), %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxwq %xmm16, %ymm19 {%k1} @@ -3128,24 +3128,24 @@ # CHECK-NEXT: - - 1.00 1.00 - - - - - - - - vpmulld %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - - - vpmulld (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - - - vpmulld (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $0, %xmm16, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax), %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax){1to4}, %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $0, %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax){1to4}, %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $0, %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax), %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax){1to4}, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $0, %ymm16, %ymm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax), %ymm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax){1to8}, %ymm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $0, %ymm16, %ymm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax), %ymm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax){1to8}, %ymm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufd $0, %ymm16, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $0, %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax), %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax){1to4}, %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax){1to4}, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax){1to4}, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $0, %ymm16, %ymm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax), %ymm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax){1to8}, %ymm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax){1to8}, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpshufd $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubd %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubd (%rax), %xmm17, %xmm19 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubd (%rax){1to4}, %xmm17, %xmm19 @@ -3230,42 +3230,42 @@ # CHECK-NEXT: - - - - - - - 1.00 - - - - vptestnmq %ymm0, %ymm1, %k2 {%k3} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vptestnmq (%rax), %ymm1, %k2 {%k3} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vptestnmq (%rax){1to4}, %ymm1, %k2 {%k3} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %xmm16, %xmm17, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %xmm17, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %ymm16, %ymm17, %ymm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %ymm17, %ymm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %xmm16, %xmm17, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %xmm17, %xmm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax){1to4}, %xmm17, %xmm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %ymm16, %ymm17, %ymm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %ymm17, %ymm19 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax){1to8}, %ymm17, %ymm19 -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} -# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckhdq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckhdq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - vpunpckldq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - vpunpckldq (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vshuff32x4 $0, %ymm16, %ymm17, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vshuff32x4 $0, (%rax), %ymm17, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vshuff32x4 $0, (%rax){1to8}, %ymm17, %ymm19 diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s --- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s +++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse2.s @@ -588,16 +588,16 @@ # CHECK-NEXT: 2 7 0.50 * por (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 psadbw %xmm0, %xmm2 # CHECK-NEXT: 2 9 1.00 * psadbw (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pshufd $1, %xmm0, %xmm2 -# CHECK-NEXT: 2 7 1.00 * pshufd $1, (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pshufhw $1, %xmm0, %xmm2 -# CHECK-NEXT: 2 7 1.00 * pshufhw $1, (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pshuflw $1, %xmm0, %xmm2 -# CHECK-NEXT: 2 7 1.00 * pshuflw $1, (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pshufd $1, %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pshufd $1, (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pshufhw $1, %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pshufhw $1, (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pshuflw $1, %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pshuflw $1, (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pslld $1, %xmm2 # CHECK-NEXT: 2 2 1.00 pslld %xmm0, %xmm2 # CHECK-NEXT: 2 7 0.50 * pslld (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pslldq $1, %xmm2 +# CHECK-NEXT: 1 1 0.50 pslldq $1, %xmm2 # CHECK-NEXT: 1 1 0.50 psllq $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psllq %xmm0, %xmm2 # CHECK-NEXT: 2 7 0.50 * psllq (%rax), %xmm2 @@ -613,7 +613,7 @@ # CHECK-NEXT: 1 1 0.50 psrld $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psrld %xmm0, %xmm2 # CHECK-NEXT: 2 7 0.50 * psrld (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 psrldq $1, %xmm2 +# CHECK-NEXT: 1 1 0.50 psrldq $1, %xmm2 # CHECK-NEXT: 1 1 0.50 psrlq $1, %xmm2 # CHECK-NEXT: 2 2 1.00 psrlq %xmm0, %xmm2 # CHECK-NEXT: 2 7 0.50 * psrlq (%rax), %xmm2 @@ -638,22 +638,22 @@ # CHECK-NEXT: 2 7 0.50 * psubusw (%rax), %xmm2 # CHECK-NEXT: 1 1 0.33 psubw %xmm0, %xmm2 # CHECK-NEXT: 2 7 0.50 * psubw (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 punpckhbw %xmm0, %xmm2 -# CHECK-NEXT: 2 7 1.00 * punpckhbw (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 punpckhdq %xmm0, %xmm2 -# CHECK-NEXT: 2 7 1.00 * punpckhdq (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 punpckhqdq %xmm0, %xmm2 -# CHECK-NEXT: 2 7 1.00 * punpckhqdq (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 punpckhwd %xmm0, %xmm2 -# CHECK-NEXT: 2 7 1.00 * punpckhwd (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 punpcklbw %xmm0, %xmm2 -# CHECK-NEXT: 2 7 1.00 * punpcklbw (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 punpckldq %xmm0, %xmm2 -# CHECK-NEXT: 2 7 1.00 * punpckldq (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 punpcklqdq %xmm0, %xmm2 -# CHECK-NEXT: 2 7 1.00 * punpcklqdq (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 punpcklwd %xmm0, %xmm2 -# CHECK-NEXT: 2 7 1.00 * punpcklwd (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 punpckhbw %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * punpckhbw (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 punpckhdq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * punpckhdq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 punpckhqdq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * punpckhqdq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 punpckhwd %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * punpckhwd (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 punpcklbw %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * punpcklbw (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 punpckldq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * punpckldq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 punpcklqdq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * punpcklqdq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 punpcklwd %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * punpcklwd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.33 pxor %xmm0, %xmm2 # CHECK-NEXT: 2 7 0.50 * pxor (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 shufpd $1, %xmm0, %xmm2 @@ -691,7 +691,7 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: - 38.00 103.58 82.58 63.50 63.50 14.00 97.58 2.25 5.00 - - +# CHECK-NEXT: - 38.00 103.58 94.58 63.50 63.50 14.00 85.58 2.25 5.00 - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -876,16 +876,16 @@ # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - por (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - - - psadbw %xmm0, %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - psadbw (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pshufd $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pshufd $1, (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pshufhw $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pshufhw $1, (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pshuflw $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pshuflw $1, (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pshufd $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pshufd $1, (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pshufhw $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pshufhw $1, (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pshuflw $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pshuflw $1, (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - pslld $1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - pslld %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - pslld (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pslldq $1, %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pslldq $1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - psllq $1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - psllq %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - psllq (%rax), %xmm2 @@ -901,7 +901,7 @@ # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - psrld $1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - psrld %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - psrld (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - psrldq $1, %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - psrldq $1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - psrlq $1, %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - psrlq %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - psrlq (%rax), %xmm2 @@ -926,22 +926,22 @@ # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - psubusw (%rax), %xmm2 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - psubw %xmm0, %xmm2 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - psubw (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - punpckhbw %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpckhbw (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - punpckhdq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpckhdq (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - punpckhqdq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpckhqdq (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - punpckhwd %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpckhwd (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - punpcklbw %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpcklbw (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - punpckldq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpckldq (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - punpcklqdq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpcklqdq (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - punpcklwd %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - punpcklwd (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpckhbw %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpckhbw (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpckhdq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpckhdq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpckhqdq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpckhqdq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpckhwd %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpckhwd (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpcklbw %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpcklbw (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpckldq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpckldq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpcklqdq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpcklqdq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - punpcklwd %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - punpcklwd (%rax), %xmm2 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - pxor %xmm0, %xmm2 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - pxor (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - - - shufpd $1, %xmm0, %xmm2 diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s --- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s +++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-sse41.s @@ -213,30 +213,30 @@ # CHECK-NEXT: 2 7 0.50 * pminud (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pminuw %xmm0, %xmm2 # CHECK-NEXT: 2 7 0.50 * pminuw (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pmovsxbd %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * pmovsxbd (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pmovsxbq %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * pmovsxbq (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pmovsxbw %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * pmovsxbw (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pmovsxdq %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * pmovsxdq (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pmovsxwd %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * pmovsxwd (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pmovsxwq %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * pmovsxwq (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pmovzxbd %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * pmovzxbd (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pmovzxbq %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * pmovzxbq (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pmovzxbw %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * pmovzxbw (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pmovzxdq %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * pmovzxdq (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pmovzxwd %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * pmovzxwd (%rax), %xmm2 -# CHECK-NEXT: 1 1 1.00 pmovzxwq %xmm0, %xmm2 -# CHECK-NEXT: 2 6 1.00 * pmovzxwq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pmovsxbd %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pmovsxbd (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pmovsxbq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pmovsxbq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pmovsxbw %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pmovsxbw (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pmovsxdq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pmovsxdq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pmovsxwd %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pmovsxwd (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pmovsxwq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pmovsxwq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pmovzxbd %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pmovzxbd (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pmovzxbq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pmovzxbq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pmovzxbw %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pmovzxbw (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pmovzxdq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pmovzxdq (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pmovzxwd %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pmovzxwd (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pmovzxwq %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pmovzxwq (%rax), %xmm2 # CHECK-NEXT: 1 5 0.50 pmuldq %xmm0, %xmm2 # CHECK-NEXT: 2 11 0.50 * pmuldq (%rax), %xmm2 # CHECK-NEXT: 2 10 1.00 pmulld %xmm0, %xmm2 @@ -268,7 +268,7 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: - - 36.67 28.67 23.67 23.67 5.00 66.67 - 1.67 - - +# CHECK-NEXT: - - 36.67 40.67 23.67 23.67 5.00 54.67 - 1.67 - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -330,30 +330,30 @@ # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - pminud (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - pminuw %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - pminuw (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovsxbd %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovsxbd (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovsxbq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovsxbq (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovsxbw %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovsxbw (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovsxdq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovsxdq (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovsxwd %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovsxwd (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovsxwq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovsxwq (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovzxbd %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovzxbd (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovzxbq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovzxbq (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovzxbw %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovzxbw (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovzxdq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovzxdq (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovzxwd %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovzxwd (%rax), %xmm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pmovzxwq %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pmovzxwq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovsxbd %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovsxbd (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovsxbq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovsxbq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovsxbw %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovsxbw (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovsxdq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovsxdq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovsxwd %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovsxwd (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovsxwq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovsxwq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovzxbd %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovzxbd (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovzxbq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovzxbq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovzxbw %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovzxbw (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovzxdq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovzxdq (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovzxwd %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovzxwd (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pmovzxwq %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pmovzxwq (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - pmuldq %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - pmuldq (%rax), %xmm2 # CHECK-NEXT: - - 1.00 1.00 - - - - - - - - pmulld %xmm0, %xmm2 diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-ssse3.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-ssse3.s --- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-ssse3.s +++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-ssse3.s @@ -156,8 +156,8 @@ # CHECK-NEXT: 2 11 0.50 * pmulhrsw (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 pshufb %mm0, %mm2 # CHECK-NEXT: 2 6 1.00 * pshufb (%rax), %mm2 -# CHECK-NEXT: 1 1 1.00 pshufb %xmm0, %xmm2 -# CHECK-NEXT: 2 7 1.00 * pshufb (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 pshufb %xmm0, %xmm2 +# CHECK-NEXT: 2 7 0.50 * pshufb (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 psignb %mm0, %mm2 # CHECK-NEXT: 2 6 0.50 * psignb (%rax), %mm2 # CHECK-NEXT: 1 1 0.50 psignb %xmm0, %xmm2 @@ -187,7 +187,7 @@ # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: - - 30.67 12.67 16.00 16.00 - 68.67 - - - - +# CHECK-NEXT: - - 30.67 13.67 16.00 16.00 - 67.67 - - - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -241,8 +241,8 @@ # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - pmulhrsw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - - - pshufb %mm0, %mm2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pshufb (%rax), %mm2 -# CHECK-NEXT: - - - - - - - 1.00 - - - - pshufb %xmm0, %xmm2 -# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - pshufb (%rax), %xmm2 +# CHECK-NEXT: - - - 0.50 - - - 0.50 - - - - pshufb %xmm0, %xmm2 +# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - - - pshufb (%rax), %xmm2 # CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - psignb %mm0, %mm2 # CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - psignb (%rax), %mm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - - - psignb %xmm0, %xmm2