[X86][AVX512] Remove xmm->xmm vpmovsx/vpmovzx rm overrides

The XMM evex cases have the same behaviour as the SSE41 versions, which already uses WriteShuffleX.Folded
This commit is contained in:
Simon Pilgrim 2021-12-12 16:08:01 +00:00
parent b743ff161b
commit c02f9791c6
6 changed files with 74 additions and 98 deletions

View File

@ -1709,19 +1709,7 @@ def: InstRW<[ICXWriteResGroup136], (instregex "VALIGN(D|Q)Z128rm(b?)i",
"VPMAXSQZ128rm(b?)",
"VPMAXUQZ128rm(b?)",
"VPMINSQZ128rm(b?)",
"VPMINUQZ128rm(b?)",
"VPMOVSXBDZ128rm(b?)",
"VPMOVSXBQZ128rm(b?)",
"VPMOVSXBWZ128rm(b?)",
"VPMOVSXDQZ128rm(b?)",
"VPMOVSXWDZ128rm(b?)",
"VPMOVSXWQZ128rm(b?)",
"VPMOVZXBDZ128rm(b?)",
"VPMOVZXBQZ128rm(b?)",
"VPMOVZXBWZ128rm(b?)",
"VPMOVZXDQZ128rm(b?)",
"VPMOVZXWDZ128rm(b?)",
"VPMOVZXWQZ128rm(b?)")>;
"VPMINUQZ128rm(b?)")>;
def ICXWriteResGroup136_2 : SchedWriteRes<[ICXPort5,ICXPort23]> {
let Latency = 10;

View File

@ -1701,19 +1701,7 @@ def: InstRW<[SKXWriteResGroup136], (instregex "VALIGN(D|Q)Z128rm(b?)i",
"VPMAXSQZ128rm(b?)",
"VPMAXUQZ128rm(b?)",
"VPMINSQZ128rm(b?)",
"VPMINUQZ128rm(b?)",
"VPMOVSXBDZ128rm(b?)",
"VPMOVSXBQZ128rm(b?)",
"VPMOVSXBWZ128rm(b?)",
"VPMOVSXDQZ128rm(b?)",
"VPMOVSXWDZ128rm(b?)",
"VPMOVSXWQZ128rm(b?)",
"VPMOVZXBDZ128rm(b?)",
"VPMOVZXBQZ128rm(b?)",
"VPMOVZXBWZ128rm(b?)",
"VPMOVZXDQZ128rm(b?)",
"VPMOVZXWDZ128rm(b?)",
"VPMOVZXWQZ128rm(b?)")>;
"VPMINUQZ128rm(b?)")>;
def SKXWriteResGroup136_2 : SchedWriteRes<[SKXPort5,SKXPort23]> {
let Latency = 10;

View File

@ -633,11 +633,11 @@ vpmovw2m %ymm0, %k0
# 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 9 1.00 * vpmovsxbw (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovsxbw (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovsxbw (%rax), %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 9 1.00 * vpmovsxbw (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %ymm19 {%k1}
@ -645,11 +645,11 @@ vpmovw2m %ymm0, %k0
# 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 9 1.00 * vpmovzxbw (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovzxbw (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovzxbw (%rax), %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 9 1.00 * vpmovzxbw (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %ymm19 {%k1}

View File

@ -1697,11 +1697,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovsxbd (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovsxbd (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovsxbd (%rax), %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 9 1.00 * vpmovsxbd (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %ymm19 {%k1}
@ -1709,11 +1709,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovsxbq (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovsxbq (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovsxbq (%rax), %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 9 1.00 * vpmovsxbq (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %ymm19 {%k1}
@ -1721,11 +1721,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovsxdq (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovsxdq (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovsxdq (%rax), %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 9 1.00 * vpmovsxdq (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %ymm19 {%k1}
@ -1733,11 +1733,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovsxwd (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovsxwd (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovsxwd (%rax), %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 9 1.00 * vpmovsxwd (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %ymm19 {%k1}
@ -1745,11 +1745,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovsxwq (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovsxwq (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovsxwq (%rax), %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 9 1.00 * vpmovsxwq (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %ymm19 {%k1}
@ -1757,11 +1757,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovzxbd (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovzxbd (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovzxbd (%rax), %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 9 1.00 * vpmovzxbd (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %ymm19 {%k1}
@ -1769,11 +1769,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovzxbq (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovzxbq (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovzxbq (%rax), %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 9 1.00 * vpmovzxbq (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %ymm19 {%k1}
@ -1781,11 +1781,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovzxdq (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovzxdq (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovzxdq (%rax), %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 9 1.00 * vpmovzxdq (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %ymm19 {%k1}
@ -1793,11 +1793,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovzxwd (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovzxwd (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovzxwd (%rax), %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 9 1.00 * vpmovzxwd (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %ymm19 {%k1}
@ -1805,11 +1805,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovzxwq (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovzxwq (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovzxwq (%rax), %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 9 1.00 * vpmovzxwq (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %ymm19 {%k1}

View File

@ -633,11 +633,11 @@ vpmovw2m %ymm0, %k0
# 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 9 1.00 * vpmovsxbw (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovsxbw (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovsxbw %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovsxbw (%rax), %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 9 1.00 * vpmovsxbw (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovsxbw %xmm16, %ymm19 {%k1}
@ -645,11 +645,11 @@ vpmovw2m %ymm0, %k0
# 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 9 1.00 * vpmovzxbw (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovzxbw (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovzxbw (%rax), %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 9 1.00 * vpmovzxbw (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovzxbw %xmm16, %ymm19 {%k1}

View File

@ -1697,11 +1697,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovsxbd (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovsxbd (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovsxbd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovsxbd (%rax), %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 9 1.00 * vpmovsxbd (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovsxbd %xmm16, %ymm19 {%k1}
@ -1709,11 +1709,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovsxbq (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovsxbq (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovsxbq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovsxbq (%rax), %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 9 1.00 * vpmovsxbq (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovsxbq %xmm16, %ymm19 {%k1}
@ -1721,11 +1721,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovsxdq (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovsxdq (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovsxdq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovsxdq (%rax), %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 9 1.00 * vpmovsxdq (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovsxdq %xmm16, %ymm19 {%k1}
@ -1733,11 +1733,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovsxwd (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovsxwd (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovsxwd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovsxwd (%rax), %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 9 1.00 * vpmovsxwd (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovsxwd %xmm16, %ymm19 {%k1}
@ -1745,11 +1745,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovsxwq (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovsxwq (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovsxwq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovsxwq (%rax), %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 9 1.00 * vpmovsxwq (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovsxwq %xmm16, %ymm19 {%k1}
@ -1757,11 +1757,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovzxbd (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovzxbd (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovzxbd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovzxbd (%rax), %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 9 1.00 * vpmovzxbd (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovzxbd %xmm16, %ymm19 {%k1}
@ -1769,11 +1769,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovzxbq (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovzxbq (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovzxbq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovzxbq (%rax), %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 9 1.00 * vpmovzxbq (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovzxbq %xmm16, %ymm19 {%k1}
@ -1781,11 +1781,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovzxdq (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovzxdq (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovzxdq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovzxdq (%rax), %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 9 1.00 * vpmovzxdq (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovzxdq %xmm16, %ymm19 {%k1}
@ -1793,11 +1793,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovzxwd (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovzxwd (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovzxwd %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovzxwd (%rax), %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 9 1.00 * vpmovzxwd (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovzxwd %xmm16, %ymm19 {%k1}
@ -1805,11 +1805,11 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{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 9 1.00 * vpmovzxwq (%rax), %xmm19
# CHECK-NEXT: 2 7 1.00 * vpmovzxwq (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 vpmovzxwq %xmm16, %xmm19 {%k1}
# CHECK-NEXT: 2 9 1.00 * vpmovzxwq (%rax), %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 9 1.00 * vpmovzxwq (%rax), %xmm19 {%k1} {z}
# CHECK-NEXT: 2 7 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
# CHECK-NEXT: 1 3 1.00 vpmovzxwq %xmm16, %ymm19 {%k1}