diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2021-12-12 15:22:32 +0000 |
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2021-12-12 15:22:32 +0000 |
| commit | fc02ceb12aedeb43a993eac8226700810638e455 (patch) | |
| tree | c7da0c7e5c7af4e35e095a8e3fd49e424cb0ee6e | |
| parent | 408553dd96792929b2468bcd2d8e4764ae7c2c9e (diff) | |
[X86][AVX512] Use WriteShuffleX for xmm->xmm extensions
The XMM evex cases have the same behaviour as the SSE41 versions, which already uses WriteShuffleX
7 files changed, 259 insertions, 254 deletions
diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td index a74c6aed0305..fa8787b65079 100644 --- a/llvm/lib/Target/X86/X86InstrAVX512.td +++ b/llvm/lib/Target/X86/X86InstrAVX512.td @@ -10102,18 +10102,19 @@ multiclass avx512_pmovx_common<bits<8> opc, string OpcodeStr, X86FoldableSchedWr multiclass avx512_pmovx_bw<bits<8> opc, string OpcodeStr, SDNode OpNode, SDNode InVecNode, string ExtTy, - X86FoldableSchedWrite sched, PatFrag LdFrag = !cast<PatFrag>(ExtTy#"extloadvi8")> { + X86FoldableSchedWrite schedX, X86FoldableSchedWrite schedYZ, + PatFrag LdFrag = !cast<PatFrag>(ExtTy#"extloadvi8")> { let Predicates = [HasVLX, HasBWI] in { - defm Z128: avx512_pmovx_common<opc, OpcodeStr, sched, v8i16x_info, + defm Z128: avx512_pmovx_common<opc, OpcodeStr, schedX, v8i16x_info, v16i8x_info, i64mem, LdFrag, InVecNode>, EVEX_CD8<8, CD8VH>, T8PD, EVEX_V128, VEX_WIG; - defm Z256: avx512_pmovx_common<opc, OpcodeStr, sched, v16i16x_info, + defm Z256: avx512_pmovx_common<opc, OpcodeStr, schedYZ, v16i16x_info, v16i8x_info, i128mem, LdFrag, OpNode>, EVEX_CD8<8, CD8VH>, T8PD, EVEX_V256, VEX_WIG; } let Predicates = [HasBWI] in { - defm Z : avx512_pmovx_common<opc, OpcodeStr, sched, v32i16_info, + defm Z : avx512_pmovx_common<opc, OpcodeStr, schedYZ, v32i16_info, v32i8x_info, i256mem, LdFrag, OpNode>, EVEX_CD8<8, CD8VH>, T8PD, EVEX_V512, VEX_WIG; } @@ -10121,18 +10122,19 @@ multiclass avx512_pmovx_bw<bits<8> opc, string OpcodeStr, multiclass avx512_pmovx_bd<bits<8> opc, string OpcodeStr, SDNode OpNode, SDNode InVecNode, string ExtTy, - X86FoldableSchedWrite sched, PatFrag LdFrag = !cast<PatFrag>(ExtTy#"extloadvi8")> { + X86FoldableSchedWrite schedX, X86FoldableSchedWrite schedYZ, + PatFrag LdFrag = !cast<PatFrag>(ExtTy#"extloadvi8")> { let Predicates = [HasVLX, HasAVX512] in { - defm Z128: avx512_pmovx_common<opc, OpcodeStr, sched, v4i32x_info, + defm Z128: avx512_pmovx_common<opc, OpcodeStr, schedX, v4i32x_info, v16i8x_info, i32mem, LdFrag, InVecNode>, EVEX_CD8<8, CD8VQ>, T8PD, EVEX_V128, VEX_WIG; - defm Z256: avx512_pmovx_common<opc, OpcodeStr, sched, v8i32x_info, + defm Z256: avx512_pmovx_common<opc, OpcodeStr, schedYZ, v8i32x_info, v16i8x_info, i64mem, LdFrag, InVecNode>, EVEX_CD8<8, CD8VQ>, T8PD, EVEX_V256, VEX_WIG; } let Predicates = [HasAVX512] in { - defm Z : avx512_pmovx_common<opc, OpcodeStr, sched, v16i32_info, + defm Z : avx512_pmovx_common<opc, OpcodeStr, schedYZ, v16i32_info, v16i8x_info, i128mem, LdFrag, OpNode>, EVEX_CD8<8, CD8VQ>, T8PD, EVEX_V512, VEX_WIG; } @@ -10140,19 +10142,19 @@ multiclass avx512_pmovx_bd<bits<8> opc, string OpcodeStr, multiclass avx512_pmovx_bq<bits<8> opc, string OpcodeStr, SDNode InVecNode, string ExtTy, - X86FoldableSchedWrite sched, + X86FoldableSchedWrite schedX, X86FoldableSchedWrite schedYZ, PatFrag LdFrag = !cast<PatFrag>(ExtTy#"extloadvi8")> { let Predicates = [HasVLX, HasAVX512] in { - defm Z128: avx512_pmovx_common<opc, OpcodeStr, sched, v2i64x_info, + defm Z128: avx512_pmovx_common<opc, OpcodeStr, schedX, v2i64x_info, v16i8x_info, i16mem, LdFrag, InVecNode>, EVEX_CD8<8, CD8VO>, T8PD, EVEX_V128, VEX_WIG; - defm Z256: avx512_pmovx_common<opc, OpcodeStr, sched, v4i64x_info, + defm Z256: avx512_pmovx_common<opc, OpcodeStr, schedYZ, v4i64x_info, v16i8x_info, i32mem, LdFrag, InVecNode>, EVEX_CD8<8, CD8VO>, T8PD, EVEX_V256, VEX_WIG; } let Predicates = [HasAVX512] in { - defm Z : avx512_pmovx_common<opc, OpcodeStr, sched, v8i64_info, + defm Z : avx512_pmovx_common<opc, OpcodeStr, schedYZ, v8i64_info, v16i8x_info, i64mem, LdFrag, InVecNode>, EVEX_CD8<8, CD8VO>, T8PD, EVEX_V512, VEX_WIG; } @@ -10160,18 +10162,19 @@ multiclass avx512_pmovx_bq<bits<8> opc, string OpcodeStr, multiclass avx512_pmovx_wd<bits<8> opc, string OpcodeStr, SDNode OpNode, SDNode InVecNode, string ExtTy, - X86FoldableSchedWrite sched, PatFrag LdFrag = !cast<PatFrag>(ExtTy#"extloadvi16")> { + X86FoldableSchedWrite schedX, X86FoldableSchedWrite schedYZ, + PatFrag LdFrag = !cast<PatFrag>(ExtTy#"extloadvi16")> { let Predicates = [HasVLX, HasAVX512] in { - defm Z128: avx512_pmovx_common<opc, OpcodeStr, sched, v4i32x_info, + defm Z128: avx512_pmovx_common<opc, OpcodeStr, schedX, v4i32x_info, v8i16x_info, i64mem, LdFrag, InVecNode>, EVEX_CD8<16, CD8VH>, T8PD, EVEX_V128, VEX_WIG; - defm Z256: avx512_pmovx_common<opc, OpcodeStr, sched, v8i32x_info, + defm Z256: avx512_pmovx_common<opc, OpcodeStr, schedYZ, v8i32x_info, v8i16x_info, i128mem, LdFrag, OpNode>, EVEX_CD8<16, CD8VH>, T8PD, EVEX_V256, VEX_WIG; } let Predicates = [HasAVX512] in { - defm Z : avx512_pmovx_common<opc, OpcodeStr, sched, v16i32_info, + defm Z : avx512_pmovx_common<opc, OpcodeStr, schedYZ, v16i32_info, v16i16x_info, i256mem, LdFrag, OpNode>, EVEX_CD8<16, CD8VH>, T8PD, EVEX_V512, VEX_WIG; } @@ -10179,18 +10182,19 @@ multiclass avx512_pmovx_wd<bits<8> opc, string OpcodeStr, multiclass avx512_pmovx_wq<bits<8> opc, string OpcodeStr, SDNode OpNode, SDNode InVecNode, string ExtTy, - X86FoldableSchedWrite sched, PatFrag LdFrag = !cast<PatFrag>(ExtTy#"extloadvi16")> { + X86FoldableSchedWrite schedX, X86FoldableSchedWrite schedYZ, + PatFrag LdFrag = !cast<PatFrag>(ExtTy#"extloadvi16")> { let Predicates = [HasVLX, HasAVX512] in { - defm Z128: avx512_pmovx_common<opc, OpcodeStr, sched, v2i64x_info, + defm Z128: avx512_pmovx_common<opc, OpcodeStr, schedX, v2i64x_info, v8i16x_info, i32mem, LdFrag, InVecNode>, EVEX_CD8<16, CD8VQ>, T8PD, EVEX_V128, VEX_WIG; - defm Z256: avx512_pmovx_common<opc, OpcodeStr, sched, v4i64x_info, + defm Z256: avx512_pmovx_common<opc, OpcodeStr, schedYZ, v4i64x_info, v8i16x_info, i64mem, LdFrag, InVecNode>, EVEX_CD8<16, CD8VQ>, T8PD, EVEX_V256, VEX_WIG; } let Predicates = [HasAVX512] in { - defm Z : avx512_pmovx_common<opc, OpcodeStr, sched, v8i64_info, + defm Z : avx512_pmovx_common<opc, OpcodeStr, schedYZ, v8i64_info, v8i16x_info, i128mem, LdFrag, OpNode>, EVEX_CD8<16, CD8VQ>, T8PD, EVEX_V512, VEX_WIG; } @@ -10198,37 +10202,38 @@ multiclass avx512_pmovx_wq<bits<8> opc, string OpcodeStr, multiclass avx512_pmovx_dq<bits<8> opc, string OpcodeStr, SDNode OpNode, SDNode InVecNode, string ExtTy, - X86FoldableSchedWrite sched, PatFrag LdFrag = !cast<PatFrag>(ExtTy#"extloadvi32")> { + X86FoldableSchedWrite schedX, X86FoldableSchedWrite schedYZ, + PatFrag LdFrag = !cast<PatFrag>(ExtTy#"extloadvi32")> { let Predicates = [HasVLX, HasAVX512] in { - defm Z128: avx512_pmovx_common<opc, OpcodeStr, sched, v2i64x_info, + defm Z128: avx512_pmovx_common<opc, OpcodeStr, schedX, v2i64x_info, v4i32x_info, i64mem, LdFrag, InVecNode>, EVEX_CD8<32, CD8VH>, T8PD, EVEX_V128; - defm Z256: avx512_pmovx_common<opc, OpcodeStr, sched, v4i64x_info, + defm Z256: avx512_pmovx_common<opc, OpcodeStr, schedYZ, v4i64x_info, v4i32x_info, i128mem, LdFrag, OpNode>, EVEX_CD8<32, CD8VH>, T8PD, EVEX_V256; } let Predicates = [HasAVX512] in { - defm Z : avx512_pmovx_common<opc, OpcodeStr, sched, v8i64_info, + defm Z : avx512_pmovx_common<opc, OpcodeStr, schedYZ, v8i64_info, v8i32x_info, i256mem, LdFrag, OpNode>, EVEX_CD8<32, CD8VH>, T8PD, EVEX_V512; } } -defm VPMOVZXBW : avx512_pmovx_bw<0x30, "vpmovzxbw", zext, zext_invec, "z", WriteVPMOV256>; -defm VPMOVZXBD : avx512_pmovx_bd<0x31, "vpmovzxbd", zext, zext_invec, "z", WriteVPMOV256>; -defm VPMOVZXBQ : avx512_pmovx_bq<0x32, "vpmovzxbq", zext_invec, "z", WriteVPMOV256>; -defm VPMOVZXWD : avx512_pmovx_wd<0x33, "vpmovzxwd", zext, zext_invec, "z", WriteVPMOV256>; -defm VPMOVZXWQ : avx512_pmovx_wq<0x34, "vpmovzxwq", zext, zext_invec, "z", WriteVPMOV256>; -defm VPMOVZXDQ : avx512_pmovx_dq<0x35, "vpmovzxdq", zext, zext_invec, "z", WriteVPMOV256>; +defm VPMOVZXBW : avx512_pmovx_bw<0x30, "vpmovzxbw", zext, zext_invec, "z", SchedWriteShuffle.XMM, WriteVPMOV256>; +defm VPMOVZXBD : avx512_pmovx_bd<0x31, "vpmovzxbd", zext, zext_invec, "z", SchedWriteShuffle.XMM, WriteVPMOV256>; +defm VPMOVZXBQ : avx512_pmovx_bq<0x32, "vpmovzxbq", zext_invec, "z", SchedWriteShuffle.XMM, WriteVPMOV256>; +defm VPMOVZXWD : avx512_pmovx_wd<0x33, "vpmovzxwd", zext, zext_invec, "z", SchedWriteShuffle.XMM, WriteVPMOV256>; +defm VPMOVZXWQ : avx512_pmovx_wq<0x34, "vpmovzxwq", zext, zext_invec, "z", SchedWriteShuffle.XMM, WriteVPMOV256>; +defm VPMOVZXDQ : avx512_pmovx_dq<0x35, "vpmovzxdq", zext, zext_invec, "z", SchedWriteShuffle.XMM, WriteVPMOV256>; -defm VPMOVSXBW: avx512_pmovx_bw<0x20, "vpmovsxbw", sext, sext_invec, "s", WriteVPMOV256>; -defm VPMOVSXBD: avx512_pmovx_bd<0x21, "vpmovsxbd", sext, sext_invec, "s", WriteVPMOV256>; -defm VPMOVSXBQ: avx512_pmovx_bq<0x22, "vpmovsxbq", sext_invec, "s", WriteVPMOV256>; -defm VPMOVSXWD: avx512_pmovx_wd<0x23, "vpmovsxwd", sext, sext_invec, "s", WriteVPMOV256>; -defm VPMOVSXWQ: avx512_pmovx_wq<0x24, "vpmovsxwq", sext, sext_invec, "s", WriteVPMOV256>; -defm VPMOVSXDQ: avx512_pmovx_dq<0x25, "vpmovsxdq", sext, sext_invec, "s", WriteVPMOV256>; +defm VPMOVSXBW: avx512_pmovx_bw<0x20, "vpmovsxbw", sext, sext_invec, "s", SchedWriteShuffle.XMM, WriteVPMOV256>; +defm VPMOVSXBD: avx512_pmovx_bd<0x21, "vpmovsxbd", sext, sext_invec, "s", SchedWriteShuffle.XMM, WriteVPMOV256>; +defm VPMOVSXBQ: avx512_pmovx_bq<0x22, "vpmovsxbq", sext_invec, "s", SchedWriteShuffle.XMM, WriteVPMOV256>; +defm VPMOVSXWD: avx512_pmovx_wd<0x23, "vpmovsxwd", sext, sext_invec, "s", SchedWriteShuffle.XMM, WriteVPMOV256>; +defm VPMOVSXWQ: avx512_pmovx_wq<0x24, "vpmovsxwq", sext, sext_invec, "s", SchedWriteShuffle.XMM, WriteVPMOV256>; +defm VPMOVSXDQ: avx512_pmovx_dq<0x25, "vpmovsxdq", sext, sext_invec, "s", SchedWriteShuffle.XMM, WriteVPMOV256>; // Patterns that we also need any extend versions of. aext_vector_inreg diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s index 2ee0e5aab483..207660a754e0 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s @@ -632,24 +632,24 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpermw %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 -# CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 8 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 1 1.00 vpmovsxbw %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %ymm19 # CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 -# CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 8 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 1 1.00 vpmovzxbw %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %ymm19 # CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %ymm19 {%k1} @@ -825,7 +825,7 @@ vpmovw2m %ymm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - - 13.33 122.33 - 228.33 89.00 89.00 +# CHECK-NEXT: - - 13.33 128.33 - 222.33 89.00 89.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -1013,24 +1013,24 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpermw %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %xmm16, %xmm19 -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %xmm19 -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 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: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %ymm19 # CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %xmm16, %xmm19 -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %xmm19 -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 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: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %ymm19 # CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %xmm16, %ymm19 {%k1} diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s index 696408ca6ec7..1e6e6711aa2d 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s @@ -1696,120 +1696,120 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: 1 5 0.50 * vpgatherdd (%rax,%xmm1,2), %xmm2 {%k1} # CHECK-NEXT: 1 5 0.50 * vpgatherqq (%rax,%xmm1,2), %xmm2 {%k1} # CHECK-NEXT: 1 5 0.50 * vpgatherqd (%rax,%xmm1,2), %xmm2 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 -# CHECK-NEXT: 2 8 1.00 * vpmovsxbd (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpmovsxbd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 8 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 1 1.00 vpmovsxbd %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpmovsxbd (%rax), %ymm19 # CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpmovsxbd (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpmovsxbd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 -# CHECK-NEXT: 2 8 1.00 * vpmovsxbq (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpmovsxbq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 8 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 1 1.00 vpmovsxbq %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpmovsxbq (%rax), %ymm19 # CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpmovsxbq (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpmovsxbq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 -# CHECK-NEXT: 2 8 1.00 * vpmovsxdq (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpmovsxdq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 8 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 1 1.00 vpmovsxdq %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpmovsxdq (%rax), %ymm19 # CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpmovsxdq (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpmovsxdq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 -# CHECK-NEXT: 2 8 1.00 * vpmovsxwd (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpmovsxwd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 8 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 1 1.00 vpmovsxwd %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpmovsxwd (%rax), %ymm19 # CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpmovsxwd (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpmovsxwd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 -# CHECK-NEXT: 2 8 1.00 * vpmovsxwq (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpmovsxwq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 8 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 1 1.00 vpmovsxwq %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpmovsxwq (%rax), %ymm19 # CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpmovsxwq (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpmovsxwq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 -# CHECK-NEXT: 2 8 1.00 * vpmovzxbd (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpmovzxbd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 8 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 1 1.00 vpmovzxbd %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpmovzxbd (%rax), %ymm19 # CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpmovzxbd (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpmovzxbd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 -# CHECK-NEXT: 2 8 1.00 * vpmovzxbq (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpmovzxbq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 8 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 1 1.00 vpmovzxbq %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpmovzxbq (%rax), %ymm19 # CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpmovzxbq (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpmovzxbq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 -# CHECK-NEXT: 2 8 1.00 * vpmovzxdq (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpmovzxdq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 8 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 1 1.00 vpmovzxdq %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpmovzxdq (%rax), %ymm19 # CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpmovzxdq (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpmovzxdq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 -# CHECK-NEXT: 2 8 1.00 * vpmovzxwd (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpmovzxwd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 8 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 1 1.00 vpmovzxwd %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpmovzxwd (%rax), %ymm19 # CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpmovzxwd (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpmovzxwd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 -# CHECK-NEXT: 2 8 1.00 * vpmovzxwq (%rax), %xmm19 -# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: 2 8 1.00 * vpmovzxwq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: 2 8 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 1 1.00 vpmovzxwq %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpmovzxwq (%rax), %ymm19 # CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %ymm19 {%k1} @@ -2165,7 +2165,7 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - 1935.00 196.00 326.50 - 557.50 328.00 328.00 +# CHECK-NEXT: - 1935.00 196.00 356.50 - 527.50 328.00 328.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -2719,120 +2719,120 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: - - - - - - 0.50 0.50 vpgatherdd (%rax,%xmm1,2), %xmm2 {%k1} # CHECK-NEXT: - - - - - - 0.50 0.50 vpgatherqq (%rax,%xmm1,2), %xmm2 {%k1} # CHECK-NEXT: - - - - - - 0.50 0.50 vpgatherqd (%rax,%xmm1,2), %xmm2 {%k1} -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbd %xmm16, %xmm19 -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbd (%rax), %xmm19 -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbd (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 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: - - - - - 1.00 0.50 0.50 vpmovsxbd (%rax), %ymm19 # CHECK-NEXT: - - - - - 1.00 - - vpmovsxbd %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbd (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpmovsxbd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbq %xmm16, %xmm19 -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbq (%rax), %xmm19 -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbq (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxbq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 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: - - - - - 1.00 0.50 0.50 vpmovsxbq (%rax), %ymm19 # CHECK-NEXT: - - - - - 1.00 - - vpmovsxbq %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbq (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpmovsxbq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxdq %xmm16, %xmm19 -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxdq (%rax), %xmm19 -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxdq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxdq (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxdq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 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: - - - - - 1.00 0.50 0.50 vpmovsxdq (%rax), %ymm19 # CHECK-NEXT: - - - - - 1.00 - - vpmovsxdq %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxdq (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpmovsxdq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxdq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwd %xmm16, %xmm19 -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwd (%rax), %xmm19 -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwd (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 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: - - - - - 1.00 0.50 0.50 vpmovsxwd (%rax), %ymm19 # CHECK-NEXT: - - - - - 1.00 - - vpmovsxwd %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwd (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpmovsxwd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwq %xmm16, %xmm19 -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwq (%rax), %xmm19 -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwq (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 - - vpmovsxwq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 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: - - - - - 1.00 0.50 0.50 vpmovsxwq (%rax), %ymm19 # CHECK-NEXT: - - - - - 1.00 - - vpmovsxwq %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwq (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpmovsxwq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxwq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbd %xmm16, %xmm19 -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbd (%rax), %xmm19 -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbd (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 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: - - - - - 1.00 0.50 0.50 vpmovzxbd (%rax), %ymm19 # CHECK-NEXT: - - - - - 1.00 - - vpmovzxbd %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbd (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpmovzxbd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbq %xmm16, %xmm19 -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbq (%rax), %xmm19 -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbq (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxbq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 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: - - - - - 1.00 0.50 0.50 vpmovzxbq (%rax), %ymm19 # CHECK-NEXT: - - - - - 1.00 - - vpmovzxbq %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbq (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpmovzxbq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxdq %xmm16, %xmm19 -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxdq (%rax), %xmm19 -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxdq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxdq (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxdq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 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: - - - - - 1.00 0.50 0.50 vpmovzxdq (%rax), %ymm19 # CHECK-NEXT: - - - - - 1.00 - - vpmovzxdq %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxdq (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpmovzxdq %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxdq (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwd %xmm16, %xmm19 -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwd (%rax), %xmm19 -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwd %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwd (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwd %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 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: - - - - - 1.00 0.50 0.50 vpmovzxwd (%rax), %ymm19 # CHECK-NEXT: - - - - - 1.00 - - vpmovzxwd %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwd (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpmovzxwd %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwd (%rax), %ymm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwq %xmm16, %xmm19 -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwq (%rax), %xmm19 -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwq %xmm16, %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxwq (%rax), %xmm19 {%k1} -# CHECK-NEXT: - - - - - 1.00 - - vpmovzxwq %xmm16, %xmm19 {%k1} {z} -# CHECK-NEXT: - - - - - 1.00 0.50 0.50 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: - - - - - 1.00 0.50 0.50 vpmovzxwq (%rax), %ymm19 # CHECK-NEXT: - - - - - 1.00 - - vpmovzxwq %xmm16, %ymm19 {%k1} diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s index dfd5587c0079..9932946228ea 100644 --- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s +++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s @@ -632,11 +632,11 @@ vpmovw2m %ymm0, %k0 # 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 3 1.00 vpmovsxbw %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovsxbw (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovsxbw (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovsxbw (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %ymm19 @@ -644,11 +644,11 @@ vpmovw2m %ymm0, %k0 # 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 3 1.00 vpmovzxbw %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovzxbw (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovzxbw (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovzxbw (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %ymm19 diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s index e2f523fa1330..95db8f148b21 100644 --- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s +++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512vl.s @@ -1696,11 +1696,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # 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 3 1.00 vpmovsxbd %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovsxbd (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovsxbd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovsxbd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %ymm19 @@ -1708,11 +1708,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovsxbq %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovsxbq (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovsxbq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovsxbq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %ymm19 @@ -1720,11 +1720,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovsxdq %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovsxdq (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovsxdq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovsxdq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %ymm19 @@ -1732,11 +1732,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovsxwd %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovsxwd (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovsxwd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovsxwd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %ymm19 @@ -1744,11 +1744,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovsxwq %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovsxwq (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovsxwq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovsxwq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %ymm19 @@ -1756,11 +1756,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovzxbd %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovzxbd (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovzxbd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovzxbd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %ymm19 @@ -1768,11 +1768,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovzxbq %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovzxbq (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovzxbq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovzxbq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %ymm19 @@ -1780,11 +1780,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovzxdq %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovzxdq (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovzxdq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovzxdq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %ymm19 @@ -1792,11 +1792,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovzxwd %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovzxwd (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovzxwd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovzxwd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %ymm19 @@ -1804,11 +1804,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovzxwq %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovzxwq (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovzxwq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovzxwq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxwq (%rax), %ymm19 diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s index 3de9603db612..9e7b1d500f53 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s @@ -632,11 +632,11 @@ vpmovw2m %ymm0, %k0 # 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 3 1.00 vpmovsxbw %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovsxbw (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovsxbw (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovsxbw (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %ymm19 @@ -644,11 +644,11 @@ vpmovw2m %ymm0, %k0 # 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 3 1.00 vpmovzxbw %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovzxbw (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovzxbw (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovzxbw (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %ymm19 diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s index 49aa3a4b624b..f67a40d2a22b 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s @@ -1696,11 +1696,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # 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 3 1.00 vpmovsxbd %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovsxbd (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovsxbd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovsxbd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxbd (%rax), %ymm19 @@ -1708,11 +1708,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovsxbq %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovsxbq (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovsxbq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovsxbq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxbq (%rax), %ymm19 @@ -1720,11 +1720,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovsxdq %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovsxdq (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovsxdq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovsxdq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxdq (%rax), %ymm19 @@ -1732,11 +1732,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovsxwd %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovsxwd (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovsxwd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovsxwd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxwd (%rax), %ymm19 @@ -1744,11 +1744,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovsxwq %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovsxwq (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovsxwq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovsxwq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxwq (%rax), %ymm19 @@ -1756,11 +1756,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovzxbd %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovzxbd (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovzxbd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovzxbd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxbd (%rax), %ymm19 @@ -1768,11 +1768,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovzxbq %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovzxbq (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovzxbq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovzxbq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxbq (%rax), %ymm19 @@ -1780,11 +1780,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovzxdq %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovzxdq (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovzxdq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovzxdq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxdq (%rax), %ymm19 @@ -1792,11 +1792,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovzxwd %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovzxwd (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovzxwd (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovzxwd (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxwd (%rax), %ymm19 @@ -1804,11 +1804,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 3 1.00 vpmovzxwq %xmm16, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 # CHECK-NEXT: 2 9 1.00 * vpmovzxwq (%rax), %xmm19 -# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 9 1.00 * vpmovzxwq (%rax), %xmm19 {%k1} -# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 9 1.00 * vpmovzxwq (%rax), %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxwq (%rax), %ymm19 |
