From: Simon Pilgrim Date: Sun, 20 Nov 2022 17:19:50 +0000 (+0000) Subject: [MCA][X86] Add missing test coverage for BWI instructions X-Git-Tag: upstream/17.0.6~27063 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7de156d1cc056a1f40be8d09915f194e0be9b669;p=platform%2Fupstream%2Fllvm.git [MCA][X86] Add missing test coverage for BWI instructions --- diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s index df1a9eb..f028580 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s @@ -3,23 +3,52 @@ kaddd %k0, %k1, %k2 kaddq %k0, %k1, %k2 + kandd %k0, %k1, %k2 kandq %k0, %k1, %k2 + kandnd %k0, %k1, %k2 kandnq %k0, %k1, %k2 + +kmovd %k0, %k2 +kmovd (%rax), %k2 +kmovd %k0, (%rax) +kmovd %eax, %k2 +kmovd %k0, %eax + +kmovq %k0, %k2 +kmovq (%rax), %k2 +kmovq %k0, (%rax) +kmovq %rax, %k2 +kmovq %k0, %rax + +knotd %k0, %k2 +knotq %k0, %k2 + kord %k0, %k1, %k2 korq %k0, %k1, %k2 -kxnord %k0, %k1, %k2 -kxnorq %k0, %k1, %k2 -kxord %k0, %k1, %k2 -kxorq %k0, %k1, %k2 + +kortestd %k0, %k2 +kortestq %k0, %k2 + kshiftld $2, %k1, %k2 kshiftlq $2, %k1, %k2 + kshiftrd $2, %k1, %k2 kshiftrq $2, %k1, %k2 + +ktestd %k0, %k2 +ktestq %k0, %k2 + kunpckdq %k0, %k1, %k2 kunpckwd %k0, %k1, %k2 +kxnord %k0, %k1, %k2 +kxnorq %k0, %k1, %k2 + +kxord %k0, %k1, %k2 +kxorq %k0, %k1, %k2 + vdbpsadbw $0, %zmm16, %zmm17, %zmm19 vdbpsadbw $0, (%rax), %zmm17, %zmm19 vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {k1} @@ -94,6 +123,34 @@ vpaddb (%rax), %zmm17, %zmm19 {k1} vpaddb %zmm16, %zmm17, %zmm19 {z}{k1} vpaddb (%rax), %zmm17, %zmm19 {z}{k1} +vpaddsb %zmm16, %zmm17, %zmm19 +vpaddsb (%rax), %zmm17, %zmm19 +vpaddsb %zmm16, %zmm17, %zmm19 {k1} +vpaddsb (%rax), %zmm17, %zmm19 {k1} +vpaddsb %zmm16, %zmm17, %zmm19 {z}{k1} +vpaddsb (%rax), %zmm17, %zmm19 {z}{k1} + +vpaddsw %zmm16, %zmm17, %zmm19 +vpaddsw (%rax), %zmm17, %zmm19 +vpaddsw %zmm16, %zmm17, %zmm19 {k1} +vpaddsw (%rax), %zmm17, %zmm19 {k1} +vpaddsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpaddsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpaddusb %zmm16, %zmm17, %zmm19 +vpaddusb (%rax), %zmm17, %zmm19 +vpaddusb %zmm16, %zmm17, %zmm19 {k1} +vpaddusb (%rax), %zmm17, %zmm19 {k1} +vpaddusb %zmm16, %zmm17, %zmm19 {z}{k1} +vpaddusb (%rax), %zmm17, %zmm19 {z}{k1} + +vpaddusw %zmm16, %zmm17, %zmm19 +vpaddusw (%rax), %zmm17, %zmm19 +vpaddusw %zmm16, %zmm17, %zmm19 {k1} +vpaddusw (%rax), %zmm17, %zmm19 {k1} +vpaddusw %zmm16, %zmm17, %zmm19 {z}{k1} +vpaddusw (%rax), %zmm17, %zmm19 {z}{k1} + vpaddw %zmm16, %zmm17, %zmm19 vpaddw (%rax), %zmm17, %zmm19 vpaddw %zmm16, %zmm17, %zmm19 {k1} @@ -108,19 +165,53 @@ vpalignr $1, (%rax), %zmm17, %zmm19 {k1} vpalignr $1, %zmm16, %zmm17, %zmm19 {z}{k1} vpalignr $1, (%rax), %zmm17, %zmm19 {z}{k1} +vpavgb %zmm16, %zmm17, %zmm19 +vpavgb (%rax), %zmm17, %zmm19 +vpavgb %zmm16, %zmm17, %zmm19 {k1} +vpavgb (%rax), %zmm17, %zmm19 {k1} +vpavgb %zmm16, %zmm17, %zmm19 {z}{k1} +vpavgb (%rax), %zmm17, %zmm19 {z}{k1} + +vpavgw %zmm16, %zmm17, %zmm19 +vpavgw (%rax), %zmm17, %zmm19 +vpavgw %zmm16, %zmm17, %zmm19 {k1} +vpavgw (%rax), %zmm17, %zmm19 {k1} +vpavgw %zmm16, %zmm17, %zmm19 {z}{k1} +vpavgw (%rax), %zmm17, %zmm19 {z}{k1} + +vpblendmb %zmm16, %zmm17, %zmm19 +vpblendmb (%rax), %zmm17, %zmm19 +vpblendmb %zmm16, %zmm17, %zmm19 {k1} +vpblendmb (%rax), %zmm17, %zmm19 {k1} +vpblendmb %zmm16, %zmm17, %zmm19 {z}{k1} +vpblendmb (%rax), %zmm17, %zmm19 {z}{k1} + +vpblendmw %zmm16, %zmm17, %zmm19 +vpblendmw (%rax), %zmm17, %zmm19 +vpblendmw %zmm16, %zmm17, %zmm19 {k1} +vpblendmw (%rax), %zmm17, %zmm19 {k1} +vpblendmw %zmm16, %zmm17, %zmm19 {z}{k1} +vpblendmw (%rax), %zmm17, %zmm19 {z}{k1} + vpbroadcastb %xmm16, %zmm19 vpbroadcastb (%rax), %zmm19 +vpbroadcastb %eax, %zmm19 vpbroadcastb %xmm16, %zmm19 {k1} vpbroadcastb (%rax), %zmm19 {k1} +vpbroadcastb %eax, %zmm19 {k1} vpbroadcastb %xmm16, %zmm19 {z}{k1} vpbroadcastb (%rax), %zmm19 {z}{k1} +vpbroadcastb %eax, %zmm19 {z}{k1} vpbroadcastw %xmm16, %zmm19 vpbroadcastw (%rax), %zmm19 +vpbroadcastw %eax, %zmm19 vpbroadcastw %xmm16, %zmm19 {k1} vpbroadcastw (%rax), %zmm19 {k1} +vpbroadcastw %eax, %zmm19 {k1} vpbroadcastw %xmm16, %zmm19 {z}{k1} vpbroadcastw (%rax), %zmm19 {z}{k1} +vpbroadcastw %eax, %zmm19 {z}{k1} vpcmpb $0, %zmm0, %zmm1, %k2 vpcmpb $0, (%rax), %zmm1, %k2 @@ -162,6 +253,18 @@ vpcmpw $0, (%rax), %zmm1, %k2 vpcmpw $0, %zmm0, %zmm1, %k2 {k3} vpcmpw $0, (%rax), %zmm1, %k2 {k3} +vpextrb $0, %xmm16, %rax +vpextrb $0, %xmm16, (%rax) + +vpextrw $0, %xmm16, %rax +vpextrw $0, %xmm16, (%rax) + +vpinsrb $0, %rax, %xmm16, %xmm19 +vpinsrb $0, (%rax), %xmm16, %xmm19 + +vpinsrw $0, %rax, %xmm16, %xmm19 +vpinsrw $0, (%rax), %xmm16, %xmm19 + vpermw %zmm16, %zmm17, %zmm19 vpermw (%rax), %zmm17, %zmm19 vpermw %zmm16, %zmm17, %zmm19 {k1} @@ -169,6 +272,96 @@ vpermw (%rax), %zmm17, %zmm19 {k1} vpermw %zmm16, %zmm17, %zmm19 {z}{k1} vpermw (%rax), %zmm17, %zmm19 {z}{k1} +vpermi2w %zmm16, %zmm17, %zmm19 +vpermi2w (%rax), %zmm17, %zmm19 +vpermi2w %zmm16, %zmm17, %zmm19 {k1} +vpermi2w (%rax), %zmm17, %zmm19 {k1} +vpermi2w %zmm16, %zmm17, %zmm19 {z}{k1} +vpermi2w (%rax), %zmm17, %zmm19 {z}{k1} + +vpermt2w %zmm16, %zmm17, %zmm19 +vpermt2w (%rax), %zmm17, %zmm19 +vpermt2w %zmm16, %zmm17, %zmm19 {k1} +vpermt2w (%rax), %zmm17, %zmm19 {k1} +vpermt2w %zmm16, %zmm17, %zmm19 {z}{k1} +vpermt2w (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaddubsw %zmm16, %zmm17, %zmm19 +vpmaddubsw (%rax), %zmm17, %zmm19 +vpmaddubsw %zmm16, %zmm17, %zmm19 {k1} +vpmaddubsw (%rax), %zmm17, %zmm19 {k1} +vpmaddubsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaddubsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaddwd %zmm16, %zmm17, %zmm19 +vpmaddwd (%rax), %zmm17, %zmm19 +vpmaddwd %zmm16, %zmm17, %zmm19 {k1} +vpmaddwd (%rax), %zmm17, %zmm19 {k1} +vpmaddwd %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaddwd (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaxsb %zmm16, %zmm17, %zmm19 +vpmaxsb (%rax), %zmm17, %zmm19 +vpmaxsb %zmm16, %zmm17, %zmm19 {k1} +vpmaxsb (%rax), %zmm17, %zmm19 {k1} +vpmaxsb %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaxsb (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaxsw %zmm16, %zmm17, %zmm19 +vpmaxsw (%rax), %zmm17, %zmm19 +vpmaxsw %zmm16, %zmm17, %zmm19 {k1} +vpmaxsw (%rax), %zmm17, %zmm19 {k1} +vpmaxsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaxsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaxub %zmm16, %zmm17, %zmm19 +vpmaxub (%rax), %zmm17, %zmm19 +vpmaxub %zmm16, %zmm17, %zmm19 {k1} +vpmaxub (%rax), %zmm17, %zmm19 {k1} +vpmaxub %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaxub (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaxuw %zmm16, %zmm17, %zmm19 +vpmaxuw (%rax), %zmm17, %zmm19 +vpmaxuw %zmm16, %zmm17, %zmm19 {k1} +vpmaxuw (%rax), %zmm17, %zmm19 {k1} +vpmaxuw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaxuw (%rax), %zmm17, %zmm19 {z}{k1} + +vpminsb %zmm16, %zmm17, %zmm19 +vpminsb (%rax), %zmm17, %zmm19 +vpminsb %zmm16, %zmm17, %zmm19 {k1} +vpminsb (%rax), %zmm17, %zmm19 {k1} +vpminsb %zmm16, %zmm17, %zmm19 {z}{k1} +vpminsb (%rax), %zmm17, %zmm19 {z}{k1} + +vpminsw %zmm16, %zmm17, %zmm19 +vpminsw (%rax), %zmm17, %zmm19 +vpminsw %zmm16, %zmm17, %zmm19 {k1} +vpminsw (%rax), %zmm17, %zmm19 {k1} +vpminsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpminsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpminub %zmm16, %zmm17, %zmm19 +vpminub (%rax), %zmm17, %zmm19 +vpminub %zmm16, %zmm17, %zmm19 {k1} +vpminub (%rax), %zmm17, %zmm19 {k1} +vpminub %zmm16, %zmm17, %zmm19 {z}{k1} +vpminub (%rax), %zmm17, %zmm19 {z}{k1} + +vpminuw %zmm16, %zmm17, %zmm19 +vpminuw (%rax), %zmm17, %zmm19 +vpminuw %zmm16, %zmm17, %zmm19 {k1} +vpminuw (%rax), %zmm17, %zmm19 {k1} +vpminuw %zmm16, %zmm17, %zmm19 {z}{k1} +vpminuw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmovb2m %zmm0, %k0 +vpmovw2m %zmm0, %k0 + +vpmovm2b %k0, %zmm0 +vpmovm2w %k0, %zmm0 + vpmovsxbw %ymm16, %zmm19 vpmovsxbw (%rax), %zmm19 vpmovsxbw %ymm16, %zmm19 {k1} @@ -176,6 +369,21 @@ vpmovsxbw (%rax), %zmm19 {k1} vpmovsxbw %ymm16, %zmm19 {z}{k1} vpmovsxbw (%rax), %zmm19 {z}{k1} +vpmovswb %zmm16, %ymm19 +vpmovswb %zmm16, (%rax) +vpmovswb %zmm16, %ymm19 {k1} +vpmovswb %zmm16, (%rax) {k1} + +vpmovuswb %zmm16, %ymm19 +vpmovuswb %zmm16, (%rax) +vpmovuswb %zmm16, %ymm19 {k1} +vpmovuswb %zmm16, (%rax) {k1} + +vpmovwb %zmm16, %ymm19 +vpmovwb %zmm16, (%rax) +vpmovwb %zmm16, %ymm19 {k1} +vpmovwb %zmm16, (%rax) {k1} + vpmovzxbw %ymm16, %zmm19 vpmovzxbw (%rax), %zmm19 vpmovzxbw %ymm16, %zmm19 {k1} @@ -183,6 +391,37 @@ vpmovzxbw (%rax), %zmm19 {k1} vpmovzxbw %ymm16, %zmm19 {z}{k1} vpmovzxbw (%rax), %zmm19 {z}{k1} +vpmulhrsw %zmm16, %zmm17, %zmm19 +vpmulhrsw (%rax), %zmm17, %zmm19 +vpmulhrsw %zmm16, %zmm17, %zmm19 {k1} +vpmulhrsw (%rax), %zmm17, %zmm19 {k1} +vpmulhrsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmulhrsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmulhuw %zmm16, %zmm17, %zmm19 +vpmulhuw (%rax), %zmm17, %zmm19 +vpmulhuw %zmm16, %zmm17, %zmm19 {k1} +vpmulhuw (%rax), %zmm17, %zmm19 {k1} +vpmulhuw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmulhuw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmulhw %zmm16, %zmm17, %zmm19 +vpmulhw (%rax), %zmm17, %zmm19 +vpmulhw %zmm16, %zmm17, %zmm19 {k1} +vpmulhw (%rax), %zmm17, %zmm19 {k1} +vpmulhw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmulhw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmullw %zmm16, %zmm17, %zmm19 +vpmullw (%rax), %zmm17, %zmm19 +vpmullw %zmm16, %zmm17, %zmm19 {k1} +vpmullw (%rax), %zmm17, %zmm19 {k1} +vpmullw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmullw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsadbw %zmm16, %zmm17, %zmm19 +vpsadbw (%rax), %zmm17, %zmm19 + vpshufb %zmm16, %zmm17, %zmm19 vpshufb (%rax), %zmm17, %zmm19 vpshufb %zmm16, %zmm17, %zmm19 {k1} @@ -207,9 +446,72 @@ vpshuflw $0, (%rax), %zmm19 {z}{k1} vpslldq $1, %zmm16, %zmm19 vpslldq $1, (%rax), %zmm19 +vpsllvw %zmm16, %zmm17, %zmm19 +vpsllvw (%rax), %zmm17, %zmm19 +vpsllvw %zmm16, %zmm17, %zmm19 {k1} +vpsllvw (%rax), %zmm17, %zmm19 {k1} +vpsllvw %zmm16, %zmm17, %zmm19 {z}{k1} +vpsllvw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsllw $0, %zmm16, %zmm19 +vpsllw $0, (%rax), %zmm19 +vpsllw $0, %zmm16, %zmm19 {k1} +vpsllw $0, (%rax), %zmm19 {k1} +vpsllw $0, %zmm16, %zmm19 {z}{k1} +vpsllw $0, (%rax), %zmm19 {z}{k1} + +vpsllw %xmm16, %zmm17, %zmm19 +vpsllw (%rax), %zmm17, %zmm19 +vpsllw %xmm16, %zmm17, %zmm19 {k1} +vpsllw (%rax), %zmm17, %zmm19 {k1} +vpsllw %xmm16, %zmm17, %zmm19 {z}{k1} +vpsllw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsravw %zmm16, %zmm17, %zmm19 +vpsravw (%rax), %zmm17, %zmm19 +vpsravw %zmm16, %zmm17, %zmm19 {k1} +vpsravw (%rax), %zmm17, %zmm19 {k1} +vpsravw %zmm16, %zmm17, %zmm19 {z}{k1} +vpsravw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsraw $0, %zmm16, %zmm19 +vpsraw $0, (%rax), %zmm19 +vpsraw $0, %zmm16, %zmm19 {k1} +vpsraw $0, (%rax), %zmm19 {k1} +vpsraw $0, %zmm16, %zmm19 {z}{k1} +vpsraw $0, (%rax), %zmm19 {z}{k1} + +vpsraw %xmm16, %zmm17, %zmm19 +vpsraw (%rax), %zmm17, %zmm19 +vpsraw %xmm16, %zmm17, %zmm19 {k1} +vpsraw (%rax), %zmm17, %zmm19 {k1} +vpsraw %xmm16, %zmm17, %zmm19 {z}{k1} +vpsraw (%rax), %zmm17, %zmm19 {z}{k1} + vpsrldq $1, %zmm16, %zmm19 vpsrldq $1, (%rax), %zmm19 +vpsrlvw %zmm16, %zmm17, %zmm19 +vpsrlvw (%rax), %zmm17, %zmm19 +vpsrlvw %zmm16, %zmm17, %zmm19 {k1} +vpsrlvw (%rax), %zmm17, %zmm19 {k1} +vpsrlvw %zmm16, %zmm17, %zmm19 {z}{k1} +vpsrlvw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsrlw $0, %zmm16, %zmm19 +vpsrlw $0, (%rax), %zmm19 +vpsrlw $0, %zmm16, %zmm19 {k1} +vpsrlw $0, (%rax), %zmm19 {k1} +vpsrlw $0, %zmm16, %zmm19 {z}{k1} +vpsrlw $0, (%rax), %zmm19 {z}{k1} + +vpsrlw %xmm16, %zmm17, %zmm19 +vpsrlw (%rax), %zmm17, %zmm19 +vpsrlw %xmm16, %zmm17, %zmm19 {k1} +vpsrlw (%rax), %zmm17, %zmm19 {k1} +vpsrlw %xmm16, %zmm17, %zmm19 {z}{k1} +vpsrlw (%rax), %zmm17, %zmm19 {z}{k1} + vpsubb %zmm16, %zmm17, %zmm19 vpsubb (%rax), %zmm17, %zmm19 vpsubb %zmm16, %zmm17, %zmm19 {k1} @@ -217,6 +519,34 @@ vpsubb (%rax), %zmm17, %zmm19 {k1} vpsubb %zmm16, %zmm17, %zmm19 {z}{k1} vpsubb (%rax), %zmm17, %zmm19 {z}{k1} +vpsubsb %zmm16, %zmm17, %zmm19 +vpsubsb (%rax), %zmm17, %zmm19 +vpsubsb %zmm16, %zmm17, %zmm19 {k1} +vpsubsb (%rax), %zmm17, %zmm19 {k1} +vpsubsb %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubsb (%rax), %zmm17, %zmm19 {z}{k1} + +vpsubsw %zmm16, %zmm17, %zmm19 +vpsubsw (%rax), %zmm17, %zmm19 +vpsubsw %zmm16, %zmm17, %zmm19 {k1} +vpsubsw (%rax), %zmm17, %zmm19 {k1} +vpsubsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsubusb %zmm16, %zmm17, %zmm19 +vpsubusb (%rax), %zmm17, %zmm19 +vpsubusb %zmm16, %zmm17, %zmm19 {k1} +vpsubusb (%rax), %zmm17, %zmm19 {k1} +vpsubusb %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubusb (%rax), %zmm17, %zmm19 {z}{k1} + +vpsubusw %zmm16, %zmm17, %zmm19 +vpsubusw (%rax), %zmm17, %zmm19 +vpsubusw %zmm16, %zmm17, %zmm19 {k1} +vpsubusw (%rax), %zmm17, %zmm19 {k1} +vpsubusw %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubusw (%rax), %zmm17, %zmm19 {z}{k1} + vpsubw %zmm16, %zmm17, %zmm19 vpsubw (%rax), %zmm17, %zmm19 vpsubw %zmm16, %zmm17, %zmm19 {k1} @@ -272,12 +602,6 @@ vpunpcklwd (%rax), %zmm17, %zmm19 {k1} vpunpcklwd %zmm16, %zmm17, %zmm19 {z}{k1} vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1} -vpmovm2b %k0, %zmm0 -vpmovm2w %k0, %zmm0 - -vpmovb2m %zmm0, %k0 -vpmovw2m %zmm0, %k0 - # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -293,18 +617,34 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 1 1 0.33 kandq %k0, %k1, %k2 # CHECK-NEXT: 1 1 0.33 kandnd %k0, %k1, %k2 # CHECK-NEXT: 1 1 0.33 kandnq %k0, %k1, %k2 +# CHECK-NEXT: 1 1 0.33 kmovd %k0, %k2 +# CHECK-NEXT: 1 5 0.50 * kmovd (%rax), %k2 +# CHECK-NEXT: 1 1 1.00 * kmovd %k0, (%rax) +# CHECK-NEXT: 1 1 0.33 kmovd %eax, %k2 +# CHECK-NEXT: 1 1 0.33 kmovd %k0, %eax +# CHECK-NEXT: 1 1 0.33 kmovq %k0, %k2 +# CHECK-NEXT: 1 5 0.50 * kmovq (%rax), %k2 +# CHECK-NEXT: 1 1 1.00 * kmovq %k0, (%rax) +# CHECK-NEXT: 1 1 0.33 kmovq %rax, %k2 +# CHECK-NEXT: 1 1 0.33 kmovq %k0, %rax +# CHECK-NEXT: 1 1 0.33 knotd %k0, %k2 +# CHECK-NEXT: 1 1 0.33 knotq %k0, %k2 # CHECK-NEXT: 1 1 0.33 kord %k0, %k1, %k2 # CHECK-NEXT: 1 1 0.33 korq %k0, %k1, %k2 -# CHECK-NEXT: 1 1 0.33 kxnord %k0, %k1, %k2 -# CHECK-NEXT: 1 1 0.33 kxnorq %k0, %k1, %k2 -# CHECK-NEXT: 1 1 0.33 kxord %k0, %k1, %k2 -# CHECK-NEXT: 1 1 0.33 kxorq %k0, %k1, %k2 +# CHECK-NEXT: 1 1 0.33 kortestd %k0, %k2 +# CHECK-NEXT: 1 1 0.33 kortestq %k0, %k2 # CHECK-NEXT: 1 1 1.00 kshiftld $2, %k1, %k2 # CHECK-NEXT: 1 1 1.00 kshiftlq $2, %k1, %k2 # CHECK-NEXT: 1 1 1.00 kshiftrd $2, %k1, %k2 # CHECK-NEXT: 1 1 1.00 kshiftrq $2, %k1, %k2 +# CHECK-NEXT: 1 1 0.33 ktestd %k0, %k2 +# CHECK-NEXT: 1 1 0.33 ktestq %k0, %k2 # CHECK-NEXT: 1 1 1.00 kunpckdq %k0, %k1, %k2 # CHECK-NEXT: 1 1 1.00 kunpckwd %k0, %k1, %k2 +# CHECK-NEXT: 1 1 0.33 kxnord %k0, %k1, %k2 +# CHECK-NEXT: 1 1 0.33 kxnorq %k0, %k1, %k2 +# CHECK-NEXT: 1 1 0.33 kxord %k0, %k1, %k2 +# CHECK-NEXT: 1 1 0.33 kxorq %k0, %k1, %k2 # CHECK-NEXT: 1 5 1.00 vdbpsadbw $0, %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 12 1.00 * vdbpsadbw $0, (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 5 1.00 vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1} @@ -369,6 +709,30 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 0.50 * vpaddb (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 0.50 vpaddb %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpaddb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpaddsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpaddsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpaddsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpaddsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddusb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpaddusb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpaddusb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddusb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddusb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddusb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddusw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpaddusw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpaddusw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddusw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddusw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddusw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 0.50 vpaddw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 0.50 vpaddw %zmm16, %zmm17, %zmm19 {%k1} @@ -381,18 +745,48 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpalignr $1, %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpavgb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpavgb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpavgb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpavgb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpavgb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpavgb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpavgw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpavgw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpavgw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpavgw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpavgw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpavgw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 2 1.00 vpblendmb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 3 9 1.00 * vpblendmb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 2 1.00 vpblendmb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 3 9 1.00 * vpblendmb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 2 1.00 vpblendmb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 9 1.00 * vpblendmb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 2 1.00 vpblendmw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 3 9 1.00 * vpblendmw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 2 1.00 vpblendmw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 3 9 1.00 * vpblendmw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 2 1.00 vpblendmw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 9 1.00 * vpblendmw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpbroadcastb %eax, %zmm19 # CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %zmm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpbroadcastb %eax, %zmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpbroadcastb %eax, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpbroadcastw %eax, %zmm19 # CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %zmm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpbroadcastw %eax, %zmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpbroadcastw %eax, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 0.50 vpcmpeqb %zmm0, %zmm1, %k2 # CHECK-NEXT: 2 8 0.50 * vpcmpeqb (%rax), %zmm1, %k2 # CHECK-NEXT: 1 1 0.50 vpcmpeqb %zmm0, %zmm1, %k2 {%k3} @@ -425,24 +819,146 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 0.50 * vpcmpeqw (%rax), %zmm1, %k2 # CHECK-NEXT: 1 1 0.50 vpcmpeqw %zmm0, %zmm1, %k2 {%k3} # CHECK-NEXT: 2 8 0.50 * vpcmpeqw (%rax), %zmm1, %k2 {%k3} +# CHECK-NEXT: 2 3 1.00 vpextrb $0, %xmm16, %eax +# CHECK-NEXT: 3 5 1.00 * vpextrb $0, %xmm16, (%rax) +# CHECK-NEXT: 2 3 1.00 vpextrw $0, %xmm16, %eax +# CHECK-NEXT: 3 5 1.00 * vpextrw $0, %xmm16, (%rax) +# CHECK-NEXT: 2 2 1.00 vpinsrb $0, %eax, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpinsrb $0, (%rax), %xmm16, %xmm19 +# CHECK-NEXT: 2 2 1.00 vpinsrw $0, %eax, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpinsrw $0, (%rax), %xmm16, %xmm19 # CHECK-NEXT: 1 1 1.00 vpermw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 1.00 vpermw %zmm16, %zmm17, %zmm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpermw %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpermw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpermi2w %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpermi2w (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpermi2w %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpermi2w (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpermi2w %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpermi2w (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpermt2w %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpermt2w (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpermt2w %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpermt2w (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpermt2w %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpermt2w (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmaddubsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 1.00 * vpmaddubsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 1.00 vpmaddubsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmaddubsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmaddubsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmaddubsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmaddwd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 1.00 * vpmaddwd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 1.00 vpmaddwd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmaddwd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmaddwd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmaddwd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxub %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxub (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxub %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxub (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxub %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxub (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpminsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpminsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpminsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpminsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminub %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpminub (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpminub %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminub (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminub %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminub (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpminuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpminuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpmovb2m %zmm0, %k0 +# CHECK-NEXT: 1 1 0.33 vpmovw2m %zmm0, %k0 +# CHECK-NEXT: 1 1 0.50 vpmovm2b %k0, %zmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2w %k0, %zmm0 # CHECK-NEXT: 1 1 1.00 vpmovsxbw %ymm16, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %zmm19 # CHECK-NEXT: 1 1 1.00 vpmovsxbw %ymm16, %zmm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %zmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpmovsxbw %ymm16, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpmovsxbw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovswb %zmm16, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vpmovswb %zmm16, (%rax) +# CHECK-NEXT: 1 1 1.00 vpmovswb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmovswb %zmm16, (%rax) {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovuswb %zmm16, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vpmovuswb %zmm16, (%rax) +# CHECK-NEXT: 1 1 1.00 vpmovuswb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmovuswb %zmm16, (%rax) {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovwb %zmm16, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vpmovwb %zmm16, (%rax) +# CHECK-NEXT: 1 1 1.00 vpmovwb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmovwb %zmm16, (%rax) {%k1} # CHECK-NEXT: 1 1 1.00 vpmovzxbw %ymm16, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %zmm19 # CHECK-NEXT: 1 1 1.00 vpmovzxbw %ymm16, %zmm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %zmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpmovzxbw %ymm16, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmulhrsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 1.00 * vpmulhrsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 1.00 vpmulhrsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmulhrsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmulhrsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmulhrsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmulhuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 1.00 * vpmulhuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 1.00 vpmulhuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmulhuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmulhuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmulhuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmulhw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 1.00 * vpmulhw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 1.00 vpmulhw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmulhw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmulhw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmulhw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmullw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 1.00 * vpmullw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 1.00 vpmullw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmullw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmullw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmullw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpsadbw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 1.00 * vpsadbw (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 0.50 vpshufb %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 0.50 * vpshufb (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 0.50 vpshufb %zmm16, %zmm17, %zmm19 {%k1} @@ -463,14 +979,92 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpshuflw $0, (%rax), %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpslldq $1, %zmm16, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpslldq $1, (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsllvw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsllvw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsllvw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsllvw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsllvw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsllvw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsllw $0, %zmm16, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsllw $0, (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsllw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsllw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsllw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsllw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: 3 11 1.00 * vpsllw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 3 11 1.00 * vpsllw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 11 1.00 * vpsllw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsravw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsravw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsravw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsravw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsravw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsravw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsraw $0, %zmm16, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsraw $0, (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsraw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsraw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsraw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsraw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: 3 11 1.00 * vpsraw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 3 11 1.00 * vpsraw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 11 1.00 * vpsraw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpsrldq $1, %zmm16, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpsrldq $1, (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsrlvw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsrlvw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsrlvw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsrlvw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsrlvw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsrlvw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsrlw $0, %zmm16, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsrlw $0, (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsrlw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsrlw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsrlw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsrlw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: 3 11 1.00 * vpsrlw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 3 11 1.00 * vpsrlw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 11 1.00 * vpsrlw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 0.50 vpsubb %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 0.50 vpsubb %zmm16, %zmm17, %zmm19 {%k1} # CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 0.50 vpsubb %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpsubsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpsubsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpsubsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpsubsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubusb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpsubusb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpsubusb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubusb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubusb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubusb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubusw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpsubusw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpsubusw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubusw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubusw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubusw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 0.50 vpsubw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 0.50 vpsubw %zmm16, %zmm17, %zmm19 {%k1} @@ -517,10 +1111,6 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: 1 1 0.50 vpmovm2b %k0, %zmm0 -# CHECK-NEXT: 1 1 0.50 vpmovm2w %k0, %zmm0 -# CHECK-NEXT: 1 1 0.33 vpmovb2m %zmm0, %k0 -# CHECK-NEXT: 1 1 0.33 vpmovw2m %zmm0, %k0 # CHECK: Resources: # CHECK-NEXT: [0] - SBDivider @@ -534,7 +1124,7 @@ vpmovw2m %zmm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - - 20.00 47.00 4.00 157.00 54.00 54.00 +# CHECK-NEXT: - - 118.00 130.00 8.00 272.00 117.00 117.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -544,18 +1134,34 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kandq %k0, %k1, %k2 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kandnd %k0, %k1, %k2 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kandnq %k0, %k1, %k2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kmovd %k0, %k2 +# CHECK-NEXT: - - - - - - 0.50 0.50 kmovd (%rax), %k2 +# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 kmovd %k0, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kmovd %eax, %k2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kmovd %k0, %eax +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kmovq %k0, %k2 +# CHECK-NEXT: - - - - - - 0.50 0.50 kmovq (%rax), %k2 +# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 kmovq %k0, (%rax) +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kmovq %rax, %k2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kmovq %k0, %rax +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - knotd %k0, %k2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - knotq %k0, %k2 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kord %k0, %k1, %k2 # CHECK-NEXT: - - 0.33 0.33 - 0.33 - - korq %k0, %k1, %k2 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kxnord %k0, %k1, %k2 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kxnorq %k0, %k1, %k2 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kxord %k0, %k1, %k2 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kxorq %k0, %k1, %k2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kortestd %k0, %k2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kortestq %k0, %k2 # CHECK-NEXT: - - - - - 1.00 - - kshiftld $2, %k1, %k2 # CHECK-NEXT: - - - - - 1.00 - - kshiftlq $2, %k1, %k2 # CHECK-NEXT: - - - - - 1.00 - - kshiftrd $2, %k1, %k2 # CHECK-NEXT: - - - - - 1.00 - - kshiftrq $2, %k1, %k2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - ktestd %k0, %k2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - ktestq %k0, %k2 # CHECK-NEXT: - - - - - 1.00 - - kunpckdq %k0, %k1, %k2 # CHECK-NEXT: - - - - - 1.00 - - kunpckwd %k0, %k1, %k2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kxnord %k0, %k1, %k2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kxnorq %k0, %k1, %k2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kxord %k0, %k1, %k2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kxorq %k0, %k1, %k2 # CHECK-NEXT: - - 1.00 - - - - - vdbpsadbw $0, %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vdbpsadbw $0, (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - 1.00 - - - - - vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1} @@ -620,6 +1226,30 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddb (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddb %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddw (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddw %zmm16, %zmm17, %zmm19 {%k1} @@ -632,18 +1262,48 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpalignr $1, %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %zmm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastb (%rax), %zmm19 +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %eax, %zmm19 # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %zmm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastb (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %eax, %zmm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastb (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %eax, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %zmm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastw (%rax), %zmm19 +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %eax, %zmm19 # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %zmm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastw (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %eax, %zmm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %eax, %zmm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpeqb %zmm0, %zmm1, %k2 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpeqb (%rax), %zmm1, %k2 # CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpeqb %zmm0, %zmm1, %k2 {%k3} @@ -676,24 +1336,146 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpeqw (%rax), %zmm1, %k2 # CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpeqw %zmm0, %zmm1, %k2 {%k3} # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpeqw (%rax), %zmm1, %k2 {%k3} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpextrb $0, %xmm16, %eax +# CHECK-NEXT: - - - 0.50 1.00 0.50 0.50 0.50 vpextrb $0, %xmm16, (%rax) +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpextrw $0, %xmm16, %eax +# CHECK-NEXT: - - - 0.50 1.00 0.50 0.50 0.50 vpextrw $0, %xmm16, (%rax) +# CHECK-NEXT: - - - 0.50 - 1.50 - - vpinsrb $0, %eax, %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpinsrb $0, (%rax), %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 - 1.50 - - vpinsrw $0, %eax, %xmm16, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpinsrw $0, (%rax), %xmm16, %xmm19 # CHECK-NEXT: - - - - - 1.00 - - vpermw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - - - 1.00 - - vpermw %zmm16, %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpermw %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vpermi2w %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermi2w (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 - - vpermi2w %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermi2w (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpermi2w %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermi2w (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vpermt2w %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermt2w (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 - - vpermt2w %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermt2w (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpermt2w %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermt2w (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmaddubsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddubsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmaddubsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddubsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmaddubsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddubsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmaddwd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddwd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmaddwd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddwd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmaddwd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddwd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxub %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxub (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxub %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxub (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxub %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxub (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminub %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminub (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminub %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminub (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminub %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminub (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovb2m %zmm0, %k0 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovw2m %zmm0, %k0 +# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2b %k0, %zmm0 +# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2w %k0, %zmm0 # CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %ymm16, %zmm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %zmm19 # CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %ymm16, %zmm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %zmm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpmovsxbw %ymm16, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovsxbw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vpmovswb %zmm16, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovswb %zmm16, (%rax) +# CHECK-NEXT: - - - - - 1.00 - - vpmovswb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovswb %zmm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpmovuswb %zmm16, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovuswb %zmm16, (%rax) +# CHECK-NEXT: - - - - - 1.00 - - vpmovuswb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovuswb %zmm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpmovwb %zmm16, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovwb %zmm16, (%rax) +# CHECK-NEXT: - - - - - 1.00 - - vpmovwb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovwb %zmm16, (%rax) {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %ymm16, %zmm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %zmm19 # CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %ymm16, %zmm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %zmm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %ymm16, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhrsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhrsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmulhrsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhrsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhrsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhrsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmulhuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmulhw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmullw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmullw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmullw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsadbw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsadbw (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufb (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufb %zmm16, %zmm17, %zmm19 {%k1} @@ -714,14 +1496,92 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshuflw $0, (%rax), %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 - - vpslldq $1, %zmm16, %zmm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpslldq $1, (%rax), %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsllvw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllvw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsllvw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllvw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsllvw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllvw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsllw $0, %zmm16, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllw $0, (%rax), %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsllw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsllw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsllw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsllw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsllw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsllw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsllw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsllw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsravw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsravw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsravw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsravw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsravw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsravw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsraw $0, %zmm16, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsraw $0, (%rax), %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsraw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsraw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsraw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsraw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsraw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsraw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsraw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsraw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsraw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsraw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 - - vpsrldq $1, %zmm16, %zmm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpsrldq $1, (%rax), %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsrlvw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlvw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsrlvw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlvw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsrlvw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlvw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsrlw $0, %zmm16, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlw $0, (%rax), %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsrlw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsrlw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsrlw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsrlw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsrlw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsrlw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsrlw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsrlw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubb %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubb (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubb %zmm16, %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubb (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubb %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubw (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubw %zmm16, %zmm17, %zmm19 {%k1} @@ -768,7 +1628,3 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2b %k0, %zmm0 -# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2w %k0, %zmm0 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovb2m %zmm0, %k0 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovw2m %zmm0, %k0 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 c02c52d..946335b 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s @@ -149,6 +149,62 @@ vpaddb (%rax), %ymm17, %ymm19 {k1} vpaddb %ymm16, %ymm17, %ymm19 {z}{k1} vpaddb (%rax), %ymm17, %ymm19 {z}{k1} +vpaddsb %xmm16, %xmm17, %xmm19 +vpaddsb (%rax), %xmm17, %xmm19 +vpaddsb %xmm16, %xmm17, %xmm19 {k1} +vpaddsb (%rax), %xmm17, %xmm19 {k1} +vpaddsb %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddsb (%rax), %xmm17, %xmm19 {z}{k1} + +vpaddsb %ymm16, %ymm17, %ymm19 +vpaddsb (%rax), %ymm17, %ymm19 +vpaddsb %ymm16, %ymm17, %ymm19 {k1} +vpaddsb (%rax), %ymm17, %ymm19 {k1} +vpaddsb %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddsb (%rax), %ymm17, %ymm19 {z}{k1} + +vpaddsw %xmm16, %xmm17, %xmm19 +vpaddsw (%rax), %xmm17, %xmm19 +vpaddsw %xmm16, %xmm17, %xmm19 {k1} +vpaddsw (%rax), %xmm17, %xmm19 {k1} +vpaddsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpaddsw %ymm16, %ymm17, %ymm19 +vpaddsw (%rax), %ymm17, %ymm19 +vpaddsw %ymm16, %ymm17, %ymm19 {k1} +vpaddsw (%rax), %ymm17, %ymm19 {k1} +vpaddsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpaddusb %xmm16, %xmm17, %xmm19 +vpaddusb (%rax), %xmm17, %xmm19 +vpaddusb %xmm16, %xmm17, %xmm19 {k1} +vpaddusb (%rax), %xmm17, %xmm19 {k1} +vpaddusb %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddusb (%rax), %xmm17, %xmm19 {z}{k1} + +vpaddusb %ymm16, %ymm17, %ymm19 +vpaddusb (%rax), %ymm17, %ymm19 +vpaddusb %ymm16, %ymm17, %ymm19 {k1} +vpaddusb (%rax), %ymm17, %ymm19 {k1} +vpaddusb %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddusb (%rax), %ymm17, %ymm19 {z}{k1} + +vpaddusw %xmm16, %xmm17, %xmm19 +vpaddusw (%rax), %xmm17, %xmm19 +vpaddusw %xmm16, %xmm17, %xmm19 {k1} +vpaddusw (%rax), %xmm17, %xmm19 {k1} +vpaddusw %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddusw (%rax), %xmm17, %xmm19 {z}{k1} + +vpaddusw %ymm16, %ymm17, %ymm19 +vpaddusw (%rax), %ymm17, %ymm19 +vpaddusw %ymm16, %ymm17, %ymm19 {k1} +vpaddusw (%rax), %ymm17, %ymm19 {k1} +vpaddusw %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddusw (%rax), %ymm17, %ymm19 {z}{k1} + vpaddw %xmm16, %xmm17, %xmm19 vpaddw (%rax), %xmm17, %xmm19 vpaddw %xmm16, %xmm17, %xmm19 {k1} @@ -177,33 +233,101 @@ vpalignr $1, (%rax), %ymm17, %ymm19 {k1} vpalignr $1, %ymm16, %ymm17, %ymm19 {z}{k1} vpalignr $1, (%rax), %ymm17, %ymm19 {z}{k1} +vpavgb %xmm16, %xmm17, %xmm19 +vpavgb (%rax), %xmm17, %xmm19 +vpavgb %xmm16, %xmm17, %xmm19 {k1} +vpavgb (%rax), %xmm17, %xmm19 {k1} +vpavgb %xmm16, %xmm17, %xmm19 {z}{k1} +vpavgb (%rax), %xmm17, %xmm19 {z}{k1} + +vpavgb %ymm16, %ymm17, %ymm19 +vpavgb (%rax), %ymm17, %ymm19 +vpavgb %ymm16, %ymm17, %ymm19 {k1} +vpavgb (%rax), %ymm17, %ymm19 {k1} +vpavgb %ymm16, %ymm17, %ymm19 {z}{k1} +vpavgb (%rax), %ymm17, %ymm19 {z}{k1} + +vpavgw %xmm16, %xmm17, %xmm19 +vpavgw (%rax), %xmm17, %xmm19 +vpavgw %xmm16, %xmm17, %xmm19 {k1} +vpavgw (%rax), %xmm17, %xmm19 {k1} +vpavgw %xmm16, %xmm17, %xmm19 {z}{k1} +vpavgw (%rax), %xmm17, %xmm19 {z}{k1} + +vpavgw %ymm16, %ymm17, %ymm19 +vpavgw (%rax), %ymm17, %ymm19 +vpavgw %ymm16, %ymm17, %ymm19 {k1} +vpavgw (%rax), %ymm17, %ymm19 {k1} +vpavgw %ymm16, %ymm17, %ymm19 {z}{k1} +vpavgw (%rax), %ymm17, %ymm19 {z}{k1} + +vpblendmb %xmm16, %xmm17, %xmm19 +vpblendmb (%rax), %xmm17, %xmm19 +vpblendmb %xmm16, %xmm17, %xmm19 {k1} +vpblendmb (%rax), %xmm17, %xmm19 {k1} +vpblendmb %xmm16, %xmm17, %xmm19 {z}{k1} +vpblendmb (%rax), %xmm17, %xmm19 {z}{k1} + +vpblendmb %ymm16, %ymm17, %ymm19 +vpblendmb (%rax), %ymm17, %ymm19 +vpblendmb %ymm16, %ymm17, %ymm19 {k1} +vpblendmb (%rax), %ymm17, %ymm19 {k1} +vpblendmb %ymm16, %ymm17, %ymm19 {z}{k1} +vpblendmb (%rax), %ymm17, %ymm19 {z}{k1} + +vpblendmw %xmm16, %xmm17, %xmm19 +vpblendmw (%rax), %xmm17, %xmm19 +vpblendmw %xmm16, %xmm17, %xmm19 {k1} +vpblendmw (%rax), %xmm17, %xmm19 {k1} +vpblendmw %xmm16, %xmm17, %xmm19 {z}{k1} +vpblendmw (%rax), %xmm17, %xmm19 {z}{k1} + +vpblendmw %ymm16, %ymm17, %ymm19 +vpblendmw (%rax), %ymm17, %ymm19 +vpblendmw %ymm16, %ymm17, %ymm19 {k1} +vpblendmw (%rax), %ymm17, %ymm19 {k1} +vpblendmw %ymm16, %ymm17, %ymm19 {z}{k1} +vpblendmw (%rax), %ymm17, %ymm19 {z}{k1} + vpbroadcastb %xmm16, %xmm19 vpbroadcastb (%rax), %xmm19 +vpbroadcastb %eax, %xmm19 vpbroadcastb %xmm16, %xmm19 {k1} vpbroadcastb (%rax), %xmm19 {k1} +vpbroadcastb %eax, %xmm19 {k1} vpbroadcastb %xmm16, %xmm19 {z}{k1} vpbroadcastb (%rax), %xmm19 {z}{k1} +vpbroadcastb %eax, %xmm19 {z}{k1} vpbroadcastb %xmm16, %ymm19 vpbroadcastb (%rax), %ymm19 +vpbroadcastb %eax, %ymm19 vpbroadcastb %xmm16, %ymm19 {k1} vpbroadcastb (%rax), %ymm19 {k1} +vpbroadcastb %eax, %ymm19 {k1} vpbroadcastb %xmm16, %ymm19 {z}{k1} vpbroadcastb (%rax), %ymm19 {z}{k1} +vpbroadcastb %eax, %ymm19 {z}{k1} vpbroadcastw %xmm16, %xmm19 vpbroadcastw (%rax), %xmm19 +vpbroadcastw %eax, %xmm19 vpbroadcastw %xmm16, %xmm19 {k1} vpbroadcastw (%rax), %xmm19 {k1} +vpbroadcastw %eax, %xmm19 {k1} vpbroadcastw %xmm16, %xmm19 {z}{k1} vpbroadcastw (%rax), %xmm19 {z}{k1} +vpbroadcastw %eax, %xmm19 {z}{k1} vpbroadcastw %xmm16, %ymm19 vpbroadcastw (%rax), %ymm19 +vpbroadcastw %eax, %ymm19 vpbroadcastw %xmm16, %ymm19 {k1} vpbroadcastw (%rax), %ymm19 {k1} +vpbroadcastw %eax, %ymm19 {k1} vpbroadcastw %xmm16, %ymm19 {z}{k1} vpbroadcastw (%rax), %ymm19 {z}{k1} +vpbroadcastw %eax, %ymm19 {z}{k1} vpcmpb $0, %xmm0, %xmm1, %k2 vpcmpb $0, (%rax), %xmm1, %k2 @@ -299,6 +423,186 @@ vpermw (%rax), %ymm17, %ymm19 {k1} vpermw %ymm16, %ymm17, %ymm19 {z}{k1} vpermw (%rax), %ymm17, %ymm19 {z}{k1} +vpermi2w %xmm16, %xmm17, %xmm19 +vpermi2w (%rax), %xmm17, %xmm19 +vpermi2w %xmm16, %xmm17, %xmm19 {k1} +vpermi2w (%rax), %xmm17, %xmm19 {k1} +vpermi2w %xmm16, %xmm17, %xmm19 {z}{k1} +vpermi2w (%rax), %xmm17, %xmm19 {z}{k1} + +vpermi2w %ymm16, %ymm17, %ymm19 +vpermi2w (%rax), %ymm17, %ymm19 +vpermi2w %ymm16, %ymm17, %ymm19 {k1} +vpermi2w (%rax), %ymm17, %ymm19 {k1} +vpermi2w %ymm16, %ymm17, %ymm19 {z}{k1} +vpermi2w (%rax), %ymm17, %ymm19 {z}{k1} + +vpermt2w %xmm16, %xmm17, %xmm19 +vpermt2w (%rax), %xmm17, %xmm19 +vpermt2w %xmm16, %xmm17, %xmm19 {k1} +vpermt2w (%rax), %xmm17, %xmm19 {k1} +vpermt2w %xmm16, %xmm17, %xmm19 {z}{k1} +vpermt2w (%rax), %xmm17, %xmm19 {z}{k1} + +vpermt2w %ymm16, %ymm17, %ymm19 +vpermt2w (%rax), %ymm17, %ymm19 +vpermt2w %ymm16, %ymm17, %ymm19 {k1} +vpermt2w (%rax), %ymm17, %ymm19 {k1} +vpermt2w %ymm16, %ymm17, %ymm19 {z}{k1} +vpermt2w (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaddubsw %xmm16, %xmm17, %xmm19 +vpmaddubsw (%rax), %xmm17, %xmm19 +vpmaddubsw %xmm16, %xmm17, %xmm19 {k1} +vpmaddubsw (%rax), %xmm17, %xmm19 {k1} +vpmaddubsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaddubsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaddubsw %ymm16, %ymm17, %ymm19 +vpmaddubsw (%rax), %ymm17, %ymm19 +vpmaddubsw %ymm16, %ymm17, %ymm19 {k1} +vpmaddubsw (%rax), %ymm17, %ymm19 {k1} +vpmaddubsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaddubsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaddwd %xmm16, %xmm17, %xmm19 +vpmaddwd (%rax), %xmm17, %xmm19 +vpmaddwd %xmm16, %xmm17, %xmm19 {k1} +vpmaddwd (%rax), %xmm17, %xmm19 {k1} +vpmaddwd %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaddwd (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaddwd %ymm16, %ymm17, %ymm19 +vpmaddwd (%rax), %ymm17, %ymm19 +vpmaddwd %ymm16, %ymm17, %ymm19 {k1} +vpmaddwd (%rax), %ymm17, %ymm19 {k1} +vpmaddwd %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaddwd (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaxsb %xmm16, %xmm17, %xmm19 +vpmaxsb (%rax), %xmm17, %xmm19 +vpmaxsb %xmm16, %xmm17, %xmm19 {k1} +vpmaxsb (%rax), %xmm17, %xmm19 {k1} +vpmaxsb %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaxsb (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaxsb %ymm16, %ymm17, %ymm19 +vpmaxsb (%rax), %ymm17, %ymm19 +vpmaxsb %ymm16, %ymm17, %ymm19 {k1} +vpmaxsb (%rax), %ymm17, %ymm19 {k1} +vpmaxsb %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaxsb (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaxsw %xmm16, %xmm17, %xmm19 +vpmaxsw (%rax), %xmm17, %xmm19 +vpmaxsw %xmm16, %xmm17, %xmm19 {k1} +vpmaxsw (%rax), %xmm17, %xmm19 {k1} +vpmaxsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaxsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaxsw %ymm16, %ymm17, %ymm19 +vpmaxsw (%rax), %ymm17, %ymm19 +vpmaxsw %ymm16, %ymm17, %ymm19 {k1} +vpmaxsw (%rax), %ymm17, %ymm19 {k1} +vpmaxsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaxsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaxub %xmm16, %xmm17, %xmm19 +vpmaxub (%rax), %xmm17, %xmm19 +vpmaxub %xmm16, %xmm17, %xmm19 {k1} +vpmaxub (%rax), %xmm17, %xmm19 {k1} +vpmaxub %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaxub (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaxub %ymm16, %ymm17, %ymm19 +vpmaxub (%rax), %ymm17, %ymm19 +vpmaxub %ymm16, %ymm17, %ymm19 {k1} +vpmaxub (%rax), %ymm17, %ymm19 {k1} +vpmaxub %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaxub (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaxuw %xmm16, %xmm17, %xmm19 +vpmaxuw (%rax), %xmm17, %xmm19 +vpmaxuw %xmm16, %xmm17, %xmm19 {k1} +vpmaxuw (%rax), %xmm17, %xmm19 {k1} +vpmaxuw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaxuw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaxuw %ymm16, %ymm17, %ymm19 +vpmaxuw (%rax), %ymm17, %ymm19 +vpmaxuw %ymm16, %ymm17, %ymm19 {k1} +vpmaxuw (%rax), %ymm17, %ymm19 {k1} +vpmaxuw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaxuw (%rax), %ymm17, %ymm19 {z}{k1} + +vpminsb %xmm16, %xmm17, %xmm19 +vpminsb (%rax), %xmm17, %xmm19 +vpminsb %xmm16, %xmm17, %xmm19 {k1} +vpminsb (%rax), %xmm17, %xmm19 {k1} +vpminsb %xmm16, %xmm17, %xmm19 {z}{k1} +vpminsb (%rax), %xmm17, %xmm19 {z}{k1} + +vpminsb %ymm16, %ymm17, %ymm19 +vpminsb (%rax), %ymm17, %ymm19 +vpminsb %ymm16, %ymm17, %ymm19 {k1} +vpminsb (%rax), %ymm17, %ymm19 {k1} +vpminsb %ymm16, %ymm17, %ymm19 {z}{k1} +vpminsb (%rax), %ymm17, %ymm19 {z}{k1} + +vpminsw %xmm16, %xmm17, %xmm19 +vpminsw (%rax), %xmm17, %xmm19 +vpminsw %xmm16, %xmm17, %xmm19 {k1} +vpminsw (%rax), %xmm17, %xmm19 {k1} +vpminsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpminsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpminsw %ymm16, %ymm17, %ymm19 +vpminsw (%rax), %ymm17, %ymm19 +vpminsw %ymm16, %ymm17, %ymm19 {k1} +vpminsw (%rax), %ymm17, %ymm19 {k1} +vpminsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpminsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpminub %xmm16, %xmm17, %xmm19 +vpminub (%rax), %xmm17, %xmm19 +vpminub %xmm16, %xmm17, %xmm19 {k1} +vpminub (%rax), %xmm17, %xmm19 {k1} +vpminub %xmm16, %xmm17, %xmm19 {z}{k1} +vpminub (%rax), %xmm17, %xmm19 {z}{k1} + +vpminub %ymm16, %ymm17, %ymm19 +vpminub (%rax), %ymm17, %ymm19 +vpminub %ymm16, %ymm17, %ymm19 {k1} +vpminub (%rax), %ymm17, %ymm19 {k1} +vpminub %ymm16, %ymm17, %ymm19 {z}{k1} +vpminub (%rax), %ymm17, %ymm19 {z}{k1} + +vpminuw %xmm16, %xmm17, %xmm19 +vpminuw (%rax), %xmm17, %xmm19 +vpminuw %xmm16, %xmm17, %xmm19 {k1} +vpminuw (%rax), %xmm17, %xmm19 {k1} +vpminuw %xmm16, %xmm17, %xmm19 {z}{k1} +vpminuw (%rax), %xmm17, %xmm19 {z}{k1} + +vpminuw %ymm16, %ymm17, %ymm19 +vpminuw (%rax), %ymm17, %ymm19 +vpminuw %ymm16, %ymm17, %ymm19 {k1} +vpminuw (%rax), %ymm17, %ymm19 {k1} +vpminuw %ymm16, %ymm17, %ymm19 {z}{k1} +vpminuw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmovb2m %xmm0, %k0 +vpmovw2m %xmm0, %k0 + +vpmovb2m %ymm0, %k0 +vpmovw2m %ymm0, %k0 + +vpmovm2b %k0, %xmm0 +vpmovm2w %k0, %xmm0 + +vpmovm2b %k0, %ymm0 +vpmovm2w %k0, %ymm0 + vpmovsxbw %xmm16, %xmm19 vpmovsxbw (%rax), %xmm19 vpmovsxbw %xmm16, %xmm19 {k1} @@ -313,6 +617,36 @@ vpmovsxbw (%rax), %ymm19 {k1} vpmovsxbw %xmm16, %ymm19 {z}{k1} vpmovsxbw (%rax), %ymm19 {z}{k1} +vpmovswb %xmm16, %xmm19 +vpmovswb %xmm16, (%rax) +vpmovswb %xmm16, %xmm19 {k1} +vpmovswb %xmm16, (%rax) {k1} + +vpmovswb %ymm16, %xmm19 +vpmovswb %ymm16, (%rax) +vpmovswb %ymm16, %xmm19 {k1} +vpmovswb %ymm16, (%rax) {k1} + +vpmovuswb %xmm16, %xmm19 +vpmovuswb %xmm16, (%rax) +vpmovuswb %xmm16, %xmm19 {k1} +vpmovuswb %xmm16, (%rax) {k1} + +vpmovuswb %ymm16, %xmm19 +vpmovuswb %ymm16, (%rax) +vpmovuswb %ymm16, %xmm19 {k1} +vpmovuswb %ymm16, (%rax) {k1} + +vpmovwb %xmm16, %xmm19 +vpmovwb %xmm16, (%rax) +vpmovwb %xmm16, %xmm19 {k1} +vpmovwb %xmm16, (%rax) {k1} + +vpmovwb %ymm16, %xmm19 +vpmovwb %ymm16, (%rax) +vpmovwb %ymm16, %xmm19 {k1} +vpmovwb %ymm16, (%rax) {k1} + vpmovzxbw %xmm16, %xmm19 vpmovzxbw (%rax), %xmm19 vpmovzxbw %xmm16, %xmm19 {k1} @@ -327,6 +661,68 @@ vpmovzxbw (%rax), %ymm19 {k1} vpmovzxbw %xmm16, %ymm19 {z}{k1} vpmovzxbw (%rax), %ymm19 {z}{k1} +vpmulhrsw %xmm16, %xmm17, %xmm19 +vpmulhrsw (%rax), %xmm17, %xmm19 +vpmulhrsw %xmm16, %xmm17, %xmm19 {k1} +vpmulhrsw (%rax), %xmm17, %xmm19 {k1} +vpmulhrsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmulhrsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmulhrsw %ymm16, %ymm17, %ymm19 +vpmulhrsw (%rax), %ymm17, %ymm19 +vpmulhrsw %ymm16, %ymm17, %ymm19 {k1} +vpmulhrsw (%rax), %ymm17, %ymm19 {k1} +vpmulhrsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmulhrsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmulhuw %xmm16, %xmm17, %xmm19 +vpmulhuw (%rax), %xmm17, %xmm19 +vpmulhuw %xmm16, %xmm17, %xmm19 {k1} +vpmulhuw (%rax), %xmm17, %xmm19 {k1} +vpmulhuw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmulhuw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmulhuw %ymm16, %ymm17, %ymm19 +vpmulhuw (%rax), %ymm17, %ymm19 +vpmulhuw %ymm16, %ymm17, %ymm19 {k1} +vpmulhuw (%rax), %ymm17, %ymm19 {k1} +vpmulhuw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmulhuw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmulhw %xmm16, %xmm17, %xmm19 +vpmulhw (%rax), %xmm17, %xmm19 +vpmulhw %xmm16, %xmm17, %xmm19 {k1} +vpmulhw (%rax), %xmm17, %xmm19 {k1} +vpmulhw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmulhw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmulhw %ymm16, %ymm17, %ymm19 +vpmulhw (%rax), %ymm17, %ymm19 +vpmulhw %ymm16, %ymm17, %ymm19 {k1} +vpmulhw (%rax), %ymm17, %ymm19 {k1} +vpmulhw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmulhw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmullw %xmm16, %xmm17, %xmm19 +vpmullw (%rax), %xmm17, %xmm19 +vpmullw %xmm16, %xmm17, %xmm19 {k1} +vpmullw (%rax), %xmm17, %xmm19 {k1} +vpmullw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmullw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmullw %ymm16, %ymm17, %ymm19 +vpmullw (%rax), %ymm17, %ymm19 +vpmullw %ymm16, %ymm17, %ymm19 {k1} +vpmullw (%rax), %ymm17, %ymm19 {k1} +vpmullw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmullw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsadbw %xmm16, %xmm17, %xmm19 +vpsadbw (%rax), %xmm17, %xmm19 + +vpsadbw %ymm16, %ymm17, %ymm19 +vpsadbw (%rax), %ymm17, %ymm19 + vpshufb %xmm16, %xmm17, %xmm19 vpshufb (%rax), %xmm17, %xmm19 vpshufb %xmm16, %xmm17, %xmm19 {k1} @@ -375,12 +771,138 @@ vpslldq $1, (%rax), %xmm19 vpslldq $1, %ymm16, %ymm19 vpslldq $1, (%rax), %ymm19 +vpsllvw %xmm16, %xmm17, %xmm19 +vpsllvw (%rax), %xmm17, %xmm19 +vpsllvw %xmm16, %xmm17, %xmm19 {k1} +vpsllvw (%rax), %xmm17, %xmm19 {k1} +vpsllvw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsllvw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsllvw %ymm16, %ymm17, %ymm19 +vpsllvw (%rax), %ymm17, %ymm19 +vpsllvw %ymm16, %ymm17, %ymm19 {k1} +vpsllvw (%rax), %ymm17, %ymm19 {k1} +vpsllvw %ymm16, %ymm17, %ymm19 {z}{k1} +vpsllvw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsllw $0, %xmm16, %xmm19 +vpsllw $0, (%rax), %xmm19 +vpsllw $0, %xmm16, %xmm19 {k1} +vpsllw $0, (%rax), %xmm19 {k1} +vpsllw $0, %xmm16, %xmm19 {z}{k1} +vpsllw $0, (%rax), %xmm19 {z}{k1} + +vpsllw $0, %ymm16, %ymm19 +vpsllw $0, (%rax), %ymm19 +vpsllw $0, %ymm16, %ymm19 {k1} +vpsllw $0, (%rax), %ymm19 {k1} +vpsllw $0, %ymm16, %ymm19 {z}{k1} +vpsllw $0, (%rax), %ymm19 {z}{k1} + +vpsllw %xmm16, %xmm17, %xmm19 +vpsllw (%rax), %xmm17, %xmm19 +vpsllw %xmm16, %xmm17, %xmm19 {k1} +vpsllw (%rax), %xmm17, %xmm19 {k1} +vpsllw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsllw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsllw %xmm16, %ymm17, %ymm19 +vpsllw (%rax), %ymm17, %ymm19 +vpsllw %xmm16, %ymm17, %ymm19 {k1} +vpsllw (%rax), %ymm17, %ymm19 {k1} +vpsllw %xmm16, %ymm17, %ymm19 {z}{k1} +vpsllw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsravw %xmm16, %xmm17, %xmm19 +vpsravw (%rax), %xmm17, %xmm19 +vpsravw %xmm16, %xmm17, %xmm19 {k1} +vpsravw (%rax), %xmm17, %xmm19 {k1} +vpsravw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsravw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsravw %ymm16, %ymm17, %ymm19 +vpsravw (%rax), %ymm17, %ymm19 +vpsravw %ymm16, %ymm17, %ymm19 {k1} +vpsravw (%rax), %ymm17, %ymm19 {k1} +vpsravw %ymm16, %ymm17, %ymm19 {z}{k1} +vpsravw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsraw $0, %xmm16, %xmm19 +vpsraw $0, (%rax), %xmm19 +vpsraw $0, %xmm16, %xmm19 {k1} +vpsraw $0, (%rax), %xmm19 {k1} +vpsraw $0, %xmm16, %xmm19 {z}{k1} +vpsraw $0, (%rax), %xmm19 {z}{k1} + +vpsraw $0, %ymm16, %ymm19 +vpsraw $0, (%rax), %ymm19 +vpsraw $0, %ymm16, %ymm19 {k1} +vpsraw $0, (%rax), %ymm19 {k1} +vpsraw $0, %ymm16, %ymm19 {z}{k1} +vpsraw $0, (%rax), %ymm19 {z}{k1} + +vpsraw %xmm16, %xmm17, %xmm19 +vpsraw (%rax), %xmm17, %xmm19 +vpsraw %xmm16, %xmm17, %xmm19 {k1} +vpsraw (%rax), %xmm17, %xmm19 {k1} +vpsraw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsraw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsraw %xmm16, %ymm17, %ymm19 +vpsraw (%rax), %ymm17, %ymm19 +vpsraw %xmm16, %ymm17, %ymm19 {k1} +vpsraw (%rax), %ymm17, %ymm19 {k1} +vpsraw %xmm16, %ymm17, %ymm19 {z}{k1} +vpsraw (%rax), %ymm17, %ymm19 {z}{k1} + vpsrldq $1, %xmm16, %xmm19 vpsrldq $1, (%rax), %xmm19 vpsrldq $1, %ymm16, %ymm19 vpsrldq $1, (%rax), %ymm19 +vpsrlvw %xmm16, %xmm17, %xmm19 +vpsrlvw (%rax), %xmm17, %xmm19 +vpsrlvw %xmm16, %xmm17, %xmm19 {k1} +vpsrlvw (%rax), %xmm17, %xmm19 {k1} +vpsrlvw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsrlvw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsrlvw %ymm16, %ymm17, %ymm19 +vpsrlvw (%rax), %ymm17, %ymm19 +vpsrlvw %ymm16, %ymm17, %ymm19 {k1} +vpsrlvw (%rax), %ymm17, %ymm19 {k1} +vpsrlvw %ymm16, %ymm17, %ymm19 {z}{k1} +vpsrlvw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsrlw $0, %xmm16, %xmm19 +vpsrlw $0, (%rax), %xmm19 +vpsrlw $0, %xmm16, %xmm19 {k1} +vpsrlw $0, (%rax), %xmm19 {k1} +vpsrlw $0, %xmm16, %xmm19 {z}{k1} +vpsrlw $0, (%rax), %xmm19 {z}{k1} + +vpsrlw $0, %ymm16, %ymm19 +vpsrlw $0, (%rax), %ymm19 +vpsrlw $0, %ymm16, %ymm19 {k1} +vpsrlw $0, (%rax), %ymm19 {k1} +vpsrlw $0, %ymm16, %ymm19 {z}{k1} +vpsrlw $0, (%rax), %ymm19 {z}{k1} + +vpsrlw %xmm16, %xmm17, %xmm19 +vpsrlw (%rax), %xmm17, %xmm19 +vpsrlw %xmm16, %xmm17, %xmm19 {k1} +vpsrlw (%rax), %xmm17, %xmm19 {k1} +vpsrlw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsrlw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsrlw %xmm16, %ymm17, %ymm19 +vpsrlw (%rax), %ymm17, %ymm19 +vpsrlw %xmm16, %ymm17, %ymm19 {k1} +vpsrlw (%rax), %ymm17, %ymm19 {k1} +vpsrlw %xmm16, %ymm17, %ymm19 {z}{k1} +vpsrlw (%rax), %ymm17, %ymm19 {z}{k1} + vpsubb %xmm16, %xmm17, %xmm19 vpsubb (%rax), %xmm17, %xmm19 vpsubb %xmm16, %xmm17, %xmm19 {k1} @@ -395,6 +917,62 @@ vpsubb (%rax), %ymm17, %ymm19 {k1} vpsubb %ymm16, %ymm17, %ymm19 {z}{k1} vpsubb (%rax), %ymm17, %ymm19 {z}{k1} +vpsubsb %xmm16, %xmm17, %xmm19 +vpsubsb (%rax), %xmm17, %xmm19 +vpsubsb %xmm16, %xmm17, %xmm19 {k1} +vpsubsb (%rax), %xmm17, %xmm19 {k1} +vpsubsb %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubsb (%rax), %xmm17, %xmm19 {z}{k1} + +vpsubsb %ymm16, %ymm17, %ymm19 +vpsubsb (%rax), %ymm17, %ymm19 +vpsubsb %ymm16, %ymm17, %ymm19 {k1} +vpsubsb (%rax), %ymm17, %ymm19 {k1} +vpsubsb %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubsb (%rax), %ymm17, %ymm19 {z}{k1} + +vpsubsw %xmm16, %xmm17, %xmm19 +vpsubsw (%rax), %xmm17, %xmm19 +vpsubsw %xmm16, %xmm17, %xmm19 {k1} +vpsubsw (%rax), %xmm17, %xmm19 {k1} +vpsubsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsubsw %ymm16, %ymm17, %ymm19 +vpsubsw (%rax), %ymm17, %ymm19 +vpsubsw %ymm16, %ymm17, %ymm19 {k1} +vpsubsw (%rax), %ymm17, %ymm19 {k1} +vpsubsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsubusb %xmm16, %xmm17, %xmm19 +vpsubusb (%rax), %xmm17, %xmm19 +vpsubusb %xmm16, %xmm17, %xmm19 {k1} +vpsubusb (%rax), %xmm17, %xmm19 {k1} +vpsubusb %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubusb (%rax), %xmm17, %xmm19 {z}{k1} + +vpsubusb %ymm16, %ymm17, %ymm19 +vpsubusb (%rax), %ymm17, %ymm19 +vpsubusb %ymm16, %ymm17, %ymm19 {k1} +vpsubusb (%rax), %ymm17, %ymm19 {k1} +vpsubusb %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubusb (%rax), %ymm17, %ymm19 {z}{k1} + +vpsubusw %xmm16, %xmm17, %xmm19 +vpsubusw (%rax), %xmm17, %xmm19 +vpsubusw %xmm16, %xmm17, %xmm19 {k1} +vpsubusw (%rax), %xmm17, %xmm19 {k1} +vpsubusw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubusw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsubusw %ymm16, %ymm17, %ymm19 +vpsubusw (%rax), %ymm17, %ymm19 +vpsubusw %ymm16, %ymm17, %ymm19 {k1} +vpsubusw (%rax), %ymm17, %ymm19 {k1} +vpsubusw %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubusw (%rax), %ymm17, %ymm19 {z}{k1} + vpsubw %xmm16, %xmm17, %xmm19 vpsubw (%rax), %xmm17, %xmm19 vpsubw %xmm16, %xmm17, %xmm19 {k1} @@ -505,18 +1083,6 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {k1} vpunpcklwd %ymm16, %ymm17, %ymm19 {z}{k1} vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1} -vpmovm2b %k0, %xmm0 -vpmovm2w %k0, %xmm0 - -vpmovm2b %k0, %ymm0 -vpmovm2w %k0, %ymm0 - -vpmovb2m %xmm0, %k0 -vpmovw2m %xmm0, %k0 - -vpmovb2m %ymm0, %k0 -vpmovw2m %ymm0, %k0 - # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -654,6 +1220,54 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: 2 8 0.50 * vpaddb (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: 1 1 0.50 vpaddb %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpaddb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpaddsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpaddsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpaddsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpaddsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddusb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddusb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpaddusb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddusb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddusb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddusb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddusb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddusb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpaddusb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddusb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddusb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddusb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddusw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddusw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpaddusw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddusw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddusw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddusw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddusw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddusw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpaddusw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddusw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddusw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddusw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 0.50 vpaddw %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 7 0.50 * vpaddw (%rax), %xmm17, %xmm19 # CHECK-NEXT: 1 1 0.50 vpaddw %xmm16, %xmm17, %xmm19 {%k1} @@ -678,30 +1292,90 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpalignr $1, %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpavgb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpavgb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpavgb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpavgb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpavgb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpavgb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpavgb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpavgb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpavgb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpavgb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpavgb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpavgb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpavgw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpavgw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpavgw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpavgw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpavgw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpavgw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpavgw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpavgw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpavgw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpavgw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpavgw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpavgw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 2 1.00 vpblendmb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 3 8 1.00 * vpblendmb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 2 1.00 vpblendmb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 3 8 1.00 * vpblendmb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 2 1.00 vpblendmb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 8 1.00 * vpblendmb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 2 1.00 vpblendmb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 3 9 1.00 * vpblendmb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 2 1.00 vpblendmb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 3 9 1.00 * vpblendmb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 2 1.00 vpblendmb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 3 9 1.00 * vpblendmb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 2 1.00 vpblendmw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 3 8 1.00 * vpblendmw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 2 1.00 vpblendmw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 3 8 1.00 * vpblendmw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 2 1.00 vpblendmw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 8 1.00 * vpblendmw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 2 1.00 vpblendmw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 3 9 1.00 * vpblendmw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 2 1.00 vpblendmw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 3 9 1.00 * vpblendmw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 2 1.00 vpblendmw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 3 9 1.00 * vpblendmw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19 # CHECK-NEXT: 2 7 0.50 * vpbroadcastb (%rax), %xmm19 +# CHECK-NEXT: 1 1 1.00 vpbroadcastb %eax, %xmm19 # CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 7 0.50 * vpbroadcastb (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpbroadcastb %eax, %xmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 7 0.50 * vpbroadcastb (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpbroadcastb %eax, %xmm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19 +# CHECK-NEXT: 1 1 1.00 vpbroadcastb %eax, %ymm19 # CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpbroadcastb %eax, %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpbroadcastb %eax, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19 # CHECK-NEXT: 2 7 0.50 * vpbroadcastw (%rax), %xmm19 +# CHECK-NEXT: 1 1 1.00 vpbroadcastw %eax, %xmm19 # CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 7 0.50 * vpbroadcastw (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpbroadcastw %eax, %xmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 7 0.50 * vpbroadcastw (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpbroadcastw %eax, %xmm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19 +# CHECK-NEXT: 1 1 1.00 vpbroadcastw %eax, %ymm19 # CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpbroadcastw %eax, %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpbroadcastw %eax, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 0.50 vpcmpeqb %xmm0, %xmm1, %k2 # CHECK-NEXT: 2 7 0.50 * vpcmpeqb (%rax), %xmm1, %k2 # CHECK-NEXT: 1 1 0.50 vpcmpeqb %xmm0, %xmm1, %k2 {%k3} @@ -778,6 +1452,158 @@ 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 vpermi2w %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 8 1.00 * vpermi2w (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpermi2w %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpermi2w (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpermi2w %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpermi2w (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpermi2w %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vpermi2w (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 1.00 vpermi2w %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpermi2w (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpermi2w %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpermi2w (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpermt2w %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 8 1.00 * vpermt2w (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpermt2w %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpermt2w (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpermt2w %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpermt2w (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpermt2w %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vpermt2w (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 1.00 vpermt2w %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpermt2w (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpermt2w %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpermt2w (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmaddubsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 1.00 * vpmaddubsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 1.00 vpmaddubsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 1.00 * vpmaddubsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmaddubsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 1.00 * vpmaddubsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmaddubsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 1.00 * vpmaddubsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 1.00 vpmaddubsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmaddubsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmaddubsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmaddubsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmaddwd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 1.00 * vpmaddwd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 1.00 vpmaddwd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 1.00 * vpmaddwd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmaddwd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 1.00 * vpmaddwd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmaddwd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 1.00 * vpmaddwd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 1.00 vpmaddwd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmaddwd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmaddwd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmaddwd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmaxsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmaxsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmaxsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpmaxsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmaxsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmaxsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmaxsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpmaxsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxub %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmaxub (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxub %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmaxub (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxub %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmaxub (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxub %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxub (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpmaxub %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxub (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxub %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxub (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmaxuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmaxuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmaxuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpmaxuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpminsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpminsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpminsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpminsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpminsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpminsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpminsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpminsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpminsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpminsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpminsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpminsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminub %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpminub (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpminub %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpminub (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminub %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpminub (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminub %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpminub (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpminub %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminub (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminub %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminub (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpminuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpminuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpminuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpminuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpminuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpminuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpmovb2m %xmm0, %k0 +# CHECK-NEXT: 1 1 0.33 vpmovw2m %xmm0, %k0 +# CHECK-NEXT: 1 1 0.33 vpmovb2m %ymm0, %k0 +# CHECK-NEXT: 1 1 0.33 vpmovw2m %ymm0, %k0 +# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %xmm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %xmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2b %k0, %ymm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2w %k0, %ymm0 # 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} @@ -790,6 +1616,30 @@ vpmovw2m %ymm0, %k0 # 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 vpmovswb %xmm16, %xmm19 +# CHECK-NEXT: 2 8 1.00 * vpmovswb %xmm16, (%rax) +# CHECK-NEXT: 1 1 1.00 vpmovswb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmovswb %xmm16, (%rax) {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovswb %ymm16, %xmm19 +# CHECK-NEXT: 2 8 1.00 * vpmovswb %ymm16, (%rax) +# CHECK-NEXT: 1 1 1.00 vpmovswb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmovswb %ymm16, (%rax) {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovuswb %xmm16, %xmm19 +# CHECK-NEXT: 2 8 1.00 * vpmovuswb %xmm16, (%rax) +# CHECK-NEXT: 1 1 1.00 vpmovuswb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmovuswb %xmm16, (%rax) {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovuswb %ymm16, %xmm19 +# CHECK-NEXT: 2 8 1.00 * vpmovuswb %ymm16, (%rax) +# CHECK-NEXT: 1 1 1.00 vpmovuswb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmovuswb %ymm16, (%rax) {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovwb %xmm16, %xmm19 +# CHECK-NEXT: 2 8 1.00 * vpmovwb %xmm16, (%rax) +# CHECK-NEXT: 1 1 1.00 vpmovwb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmovwb %xmm16, (%rax) {%k1} +# CHECK-NEXT: 1 1 1.00 vpmovwb %ymm16, %xmm19 +# CHECK-NEXT: 2 8 1.00 * vpmovwb %ymm16, (%rax) +# CHECK-NEXT: 1 1 1.00 vpmovwb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmovwb %ymm16, (%rax) {%k1} # 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} @@ -802,6 +1652,58 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpmovzxbw %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpmovzxbw (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmulhrsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 1.00 * vpmulhrsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 1.00 vpmulhrsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 1.00 * vpmulhrsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmulhrsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 1.00 * vpmulhrsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmulhrsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 1.00 * vpmulhrsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 1.00 vpmulhrsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmulhrsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmulhrsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmulhrsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmulhuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 1.00 * vpmulhuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 1.00 vpmulhuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 1.00 * vpmulhuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmulhuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 1.00 * vpmulhuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmulhuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 1.00 * vpmulhuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 1.00 vpmulhuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmulhuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmulhuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmulhuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmulhw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 1.00 * vpmulhw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 1.00 vpmulhw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 1.00 * vpmulhw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmulhw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 1.00 * vpmulhw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmulhw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 1.00 * vpmulhw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 1.00 vpmulhw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmulhw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmulhw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmulhw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmullw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 1.00 * vpmullw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 1.00 vpmullw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 1.00 * vpmullw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmullw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 1.00 * vpmullw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmullw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 1.00 * vpmullw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 1.00 vpmullw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmullw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmullw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmullw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpsadbw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 1.00 * vpsadbw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 1.00 vpsadbw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 1.00 * vpsadbw (%rax), %ymm17, %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} @@ -842,10 +1744,118 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: 2 7 0.50 * 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 vpsllvw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vpsllvw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpsllvw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vpsllvw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsllvw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vpsllvw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsllvw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vpsllvw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 1.00 vpsllvw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsllvw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsllvw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsllvw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsllw $0, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vpsllw $0, (%rax), %xmm19 +# CHECK-NEXT: 1 1 1.00 vpsllw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vpsllw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsllw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vpsllw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsllw $0, %ymm16, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vpsllw $0, (%rax), %ymm19 +# CHECK-NEXT: 1 1 1.00 vpsllw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsllw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsllw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsllw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 2 1.00 vpsllw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 3 8 1.00 * vpsllw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 2 1.00 vpsllw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 3 8 1.00 * vpsllw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 2 1.00 vpsllw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 8 1.00 * vpsllw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: 3 11 1.00 * vpsllw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 3 11 1.00 * vpsllw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 3 11 1.00 * vpsllw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsravw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vpsravw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpsravw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vpsravw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsravw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vpsravw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsravw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vpsravw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 1.00 vpsravw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsravw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsravw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsravw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsraw $0, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vpsraw $0, (%rax), %xmm19 +# CHECK-NEXT: 1 1 1.00 vpsraw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vpsraw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsraw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vpsraw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsraw $0, %ymm16, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vpsraw $0, (%rax), %ymm19 +# CHECK-NEXT: 1 1 1.00 vpsraw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsraw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsraw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsraw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 2 1.00 vpsraw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 3 8 1.00 * vpsraw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 2 1.00 vpsraw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 3 8 1.00 * vpsraw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 2 1.00 vpsraw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 8 1.00 * vpsraw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: 3 11 1.00 * vpsraw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 3 11 1.00 * vpsraw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 3 11 1.00 * vpsraw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 0.50 vpsrldq $1, %xmm16, %xmm19 # CHECK-NEXT: 2 7 0.50 * 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 1.00 vpsrlvw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vpsrlvw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 1.00 vpsrlvw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vpsrlvw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsrlvw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vpsrlvw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsrlvw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vpsrlvw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 1.00 vpsrlvw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsrlvw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsrlvw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsrlvw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsrlw $0, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vpsrlw $0, (%rax), %xmm19 +# CHECK-NEXT: 1 1 1.00 vpsrlw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vpsrlw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsrlw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vpsrlw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsrlw $0, %ymm16, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vpsrlw $0, (%rax), %ymm19 +# CHECK-NEXT: 1 1 1.00 vpsrlw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsrlw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsrlw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsrlw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 2 1.00 vpsrlw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 3 8 1.00 * vpsrlw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 2 1.00 vpsrlw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 3 8 1.00 * vpsrlw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 2 1.00 vpsrlw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 8 1.00 * vpsrlw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: 3 11 1.00 * vpsrlw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 3 11 1.00 * vpsrlw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 3 11 1.00 * vpsrlw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 0.50 vpsubb %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 7 0.50 * vpsubb (%rax), %xmm17, %xmm19 # CHECK-NEXT: 1 1 0.50 vpsubb %xmm16, %xmm17, %xmm19 {%k1} @@ -858,6 +1868,54 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: 1 1 0.50 vpsubb %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsubsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsubsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsubsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsubsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubusb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubusb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsubusb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubusb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubusb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubusb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubusb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubusb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsubusb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubusb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubusb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubusb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubusw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubusw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsubusw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubusw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubusw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubusw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubusw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubusw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsubusw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubusw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubusw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubusw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 0.50 vpsubw %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 7 0.50 * vpsubw (%rax), %xmm17, %xmm19 # CHECK-NEXT: 1 1 0.50 vpsubw %xmm16, %xmm17, %xmm19 {%k1} @@ -950,14 +2008,6 @@ vpmovw2m %ymm0, %k0 # 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.33 vpmovm2b %k0, %xmm0 -# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %xmm0 -# CHECK-NEXT: 1 1 0.50 vpmovm2b %k0, %ymm0 -# CHECK-NEXT: 1 1 0.50 vpmovm2w %k0, %ymm0 -# CHECK-NEXT: 1 1 0.33 vpmovb2m %xmm0, %k0 -# CHECK-NEXT: 1 1 0.33 vpmovw2m %xmm0, %k0 -# CHECK-NEXT: 1 1 0.33 vpmovb2m %ymm0, %k0 -# CHECK-NEXT: 1 1 0.33 vpmovw2m %ymm0, %k0 # CHECK: Resources: # CHECK-NEXT: [0] - SBDivider @@ -971,7 +2021,7 @@ vpmovw2m %ymm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - - 30.67 132.67 8.00 248.67 108.00 108.00 +# CHECK-NEXT: - - 214.67 282.67 8.00 458.67 226.00 226.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -1103,6 +2153,54 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddb (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddb %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddusw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddusw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddw %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddw (%rax), %xmm17, %xmm19 # CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddw %xmm16, %xmm17, %xmm19 {%k1} @@ -1127,30 +2225,90 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpalignr $1, %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpavgw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpavgw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vpblendmw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vpblendmw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %xmm19 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastb (%rax), %xmm19 +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %eax, %xmm19 # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %xmm19 {%k1} # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastb (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %eax, %xmm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastb (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %eax, %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %ymm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastb (%rax), %ymm19 +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %eax, %ymm19 # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastb (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %eax, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastb (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastb %eax, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %xmm19 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastw (%rax), %xmm19 +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %eax, %xmm19 # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %xmm19 {%k1} # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastw (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %eax, %xmm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpbroadcastw (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %eax, %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %ymm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastw (%rax), %ymm19 +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %eax, %ymm19 # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastw (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %eax, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpbroadcastw (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vpbroadcastw %eax, %ymm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpeqb %xmm0, %xmm1, %k2 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpeqb (%rax), %xmm1, %k2 # CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpeqb %xmm0, %xmm1, %k2 {%k3} @@ -1227,6 +2385,158 @@ 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 - - vpermi2w %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermi2w (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 - - vpermi2w %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermi2w (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpermi2w %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermi2w (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vpermi2w %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermi2w (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 - - vpermi2w %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermi2w (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpermi2w %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermi2w (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vpermt2w %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermt2w (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 - - vpermt2w %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermt2w (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpermt2w %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermt2w (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vpermt2w %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermt2w (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 - - vpermt2w %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermt2w (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpermt2w %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermt2w (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmaddubsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddubsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmaddubsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddubsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmaddubsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddubsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmaddubsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddubsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmaddubsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddubsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmaddubsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddubsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmaddwd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddwd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmaddwd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddwd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmaddwd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddwd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmaddwd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddwd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmaddwd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddwd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmaddwd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmaddwd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxub %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxub (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxub %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxub (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxub %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxub (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxub %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxub (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxub %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxub (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxub %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxub (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpmaxuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpmaxuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminub %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminub (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminub %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminub (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminub %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminub (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminub %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminub (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminub %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminub (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminub %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminub (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpminuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpminuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovb2m %xmm0, %k0 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovw2m %xmm0, %k0 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovb2m %ymm0, %k0 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovw2m %ymm0, %k0 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2b %k0, %xmm0 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2w %k0, %xmm0 +# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2b %k0, %ymm0 +# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2w %k0, %ymm0 # 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} @@ -1239,6 +2549,30 @@ vpmovw2m %ymm0, %k0 # 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 - - vpmovswb %xmm16, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovswb %xmm16, (%rax) +# CHECK-NEXT: - - - - - 1.00 - - vpmovswb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovswb %xmm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpmovswb %ymm16, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovswb %ymm16, (%rax) +# CHECK-NEXT: - - - - - 1.00 - - vpmovswb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovswb %ymm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpmovuswb %xmm16, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovuswb %xmm16, (%rax) +# CHECK-NEXT: - - - - - 1.00 - - vpmovuswb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovuswb %xmm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpmovuswb %ymm16, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovuswb %ymm16, (%rax) +# CHECK-NEXT: - - - - - 1.00 - - vpmovuswb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovuswb %ymm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpmovwb %xmm16, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovwb %xmm16, (%rax) +# CHECK-NEXT: - - - - - 1.00 - - vpmovwb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovwb %xmm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vpmovwb %ymm16, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovwb %ymm16, (%rax) +# CHECK-NEXT: - - - - - 1.00 - - vpmovwb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovwb %ymm16, (%rax) {%k1} # 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} @@ -1251,6 +2585,58 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpmovzxbw %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpmovzxbw (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhrsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhrsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmulhrsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhrsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhrsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhrsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhrsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhrsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmulhrsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhrsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhrsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhrsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmulhuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmulhuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmulhw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmulhw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmulhw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulhw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmullw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmullw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmullw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmullw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmullw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmullw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsadbw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsadbw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsadbw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsadbw (%rax), %ymm17, %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} @@ -1291,10 +2677,118 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpslldq $1, (%rax), %xmm19 # CHECK-NEXT: - - - - - 1.00 - - vpslldq $1, %ymm16, %ymm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpslldq $1, (%rax), %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsllvw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllvw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsllvw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllvw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsllvw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllvw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsllvw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllvw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsllvw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllvw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsllvw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllvw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsllw $0, %xmm16, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllw $0, (%rax), %xmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsllw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsllw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsllw $0, %ymm16, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllw $0, (%rax), %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsllw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsllw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsllw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsllw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsllw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsllw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsllw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsllw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsllw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsllw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsllw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsllw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsllw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsllw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsllw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsravw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsravw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsravw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsravw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsravw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsravw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsravw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsravw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsravw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsravw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsravw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsravw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsraw $0, %xmm16, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsraw $0, (%rax), %xmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsraw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsraw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsraw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsraw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsraw $0, %ymm16, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsraw $0, (%rax), %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsraw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsraw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsraw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsraw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsraw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsraw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsraw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsraw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsraw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsraw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsraw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsraw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsraw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsraw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsraw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsraw (%rax), %ymm17, %ymm19 {%k1} {z} # 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: - - - - - 1.00 - - vpsrldq $1, %ymm16, %ymm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpsrldq $1, (%rax), %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsrlvw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlvw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsrlvw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlvw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsrlvw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlvw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsrlvw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlvw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsrlvw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlvw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsrlvw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlvw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsrlw $0, %xmm16, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlw $0, (%rax), %xmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsrlw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsrlw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpsrlw $0, %ymm16, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlw $0, (%rax), %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpsrlw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpsrlw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpsrlw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsrlw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsrlw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsrlw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsrlw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsrlw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsrlw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsrlw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsrlw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsrlw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsrlw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 - - vpsrlw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 0.50 - 0.50 0.50 0.50 vpsrlw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubb %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubb (%rax), %xmm17, %xmm19 # CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubb %xmm16, %xmm17, %xmm19 {%k1} @@ -1307,6 +2801,54 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubb (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubb %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubusw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubusw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubw %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubw (%rax), %xmm17, %xmm19 # CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubw %xmm16, %xmm17, %xmm19 {%k1} @@ -1399,11 +2941,3 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: - - - - - 1.00 - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z} -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2b %k0, %xmm0 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2w %k0, %xmm0 -# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2b %k0, %ymm0 -# CHECK-NEXT: - - 0.50 - - 0.50 - - vpmovm2w %k0, %ymm0 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovb2m %xmm0, %k0 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovw2m %xmm0, %k0 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovb2m %ymm0, %k0 -# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovw2m %ymm0, %k0 diff --git a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s index c156d38..5fb114b0 100644 --- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s +++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bw.s @@ -3,23 +3,52 @@ kaddd %k0, %k1, %k2 kaddq %k0, %k1, %k2 + kandd %k0, %k1, %k2 kandq %k0, %k1, %k2 + kandnd %k0, %k1, %k2 kandnq %k0, %k1, %k2 + +kmovd %k0, %k2 +kmovd (%rax), %k2 +kmovd %k0, (%rax) +kmovd %eax, %k2 +kmovd %k0, %eax + +kmovq %k0, %k2 +kmovq (%rax), %k2 +kmovq %k0, (%rax) +kmovq %rax, %k2 +kmovq %k0, %rax + +knotd %k0, %k2 +knotq %k0, %k2 + kord %k0, %k1, %k2 korq %k0, %k1, %k2 -kxnord %k0, %k1, %k2 -kxnorq %k0, %k1, %k2 -kxord %k0, %k1, %k2 -kxorq %k0, %k1, %k2 + +kortestd %k0, %k2 +kortestq %k0, %k2 + kshiftld $2, %k1, %k2 kshiftlq $2, %k1, %k2 + kshiftrd $2, %k1, %k2 kshiftrq $2, %k1, %k2 + +ktestd %k0, %k2 +ktestq %k0, %k2 + kunpckdq %k0, %k1, %k2 kunpckwd %k0, %k1, %k2 +kxnord %k0, %k1, %k2 +kxnorq %k0, %k1, %k2 + +kxord %k0, %k1, %k2 +kxorq %k0, %k1, %k2 + vdbpsadbw $0, %zmm16, %zmm17, %zmm19 vdbpsadbw $0, (%rax), %zmm17, %zmm19 vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {k1} @@ -94,6 +123,34 @@ vpaddb (%rax), %zmm17, %zmm19 {k1} vpaddb %zmm16, %zmm17, %zmm19 {z}{k1} vpaddb (%rax), %zmm17, %zmm19 {z}{k1} +vpaddsb %zmm16, %zmm17, %zmm19 +vpaddsb (%rax), %zmm17, %zmm19 +vpaddsb %zmm16, %zmm17, %zmm19 {k1} +vpaddsb (%rax), %zmm17, %zmm19 {k1} +vpaddsb %zmm16, %zmm17, %zmm19 {z}{k1} +vpaddsb (%rax), %zmm17, %zmm19 {z}{k1} + +vpaddsw %zmm16, %zmm17, %zmm19 +vpaddsw (%rax), %zmm17, %zmm19 +vpaddsw %zmm16, %zmm17, %zmm19 {k1} +vpaddsw (%rax), %zmm17, %zmm19 {k1} +vpaddsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpaddsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpaddusb %zmm16, %zmm17, %zmm19 +vpaddusb (%rax), %zmm17, %zmm19 +vpaddusb %zmm16, %zmm17, %zmm19 {k1} +vpaddusb (%rax), %zmm17, %zmm19 {k1} +vpaddusb %zmm16, %zmm17, %zmm19 {z}{k1} +vpaddusb (%rax), %zmm17, %zmm19 {z}{k1} + +vpaddusw %zmm16, %zmm17, %zmm19 +vpaddusw (%rax), %zmm17, %zmm19 +vpaddusw %zmm16, %zmm17, %zmm19 {k1} +vpaddusw (%rax), %zmm17, %zmm19 {k1} +vpaddusw %zmm16, %zmm17, %zmm19 {z}{k1} +vpaddusw (%rax), %zmm17, %zmm19 {z}{k1} + vpaddw %zmm16, %zmm17, %zmm19 vpaddw (%rax), %zmm17, %zmm19 vpaddw %zmm16, %zmm17, %zmm19 {k1} @@ -108,19 +165,53 @@ vpalignr $1, (%rax), %zmm17, %zmm19 {k1} vpalignr $1, %zmm16, %zmm17, %zmm19 {z}{k1} vpalignr $1, (%rax), %zmm17, %zmm19 {z}{k1} +vpavgb %zmm16, %zmm17, %zmm19 +vpavgb (%rax), %zmm17, %zmm19 +vpavgb %zmm16, %zmm17, %zmm19 {k1} +vpavgb (%rax), %zmm17, %zmm19 {k1} +vpavgb %zmm16, %zmm17, %zmm19 {z}{k1} +vpavgb (%rax), %zmm17, %zmm19 {z}{k1} + +vpavgw %zmm16, %zmm17, %zmm19 +vpavgw (%rax), %zmm17, %zmm19 +vpavgw %zmm16, %zmm17, %zmm19 {k1} +vpavgw (%rax), %zmm17, %zmm19 {k1} +vpavgw %zmm16, %zmm17, %zmm19 {z}{k1} +vpavgw (%rax), %zmm17, %zmm19 {z}{k1} + +vpblendmb %zmm16, %zmm17, %zmm19 +vpblendmb (%rax), %zmm17, %zmm19 +vpblendmb %zmm16, %zmm17, %zmm19 {k1} +vpblendmb (%rax), %zmm17, %zmm19 {k1} +vpblendmb %zmm16, %zmm17, %zmm19 {z}{k1} +vpblendmb (%rax), %zmm17, %zmm19 {z}{k1} + +vpblendmw %zmm16, %zmm17, %zmm19 +vpblendmw (%rax), %zmm17, %zmm19 +vpblendmw %zmm16, %zmm17, %zmm19 {k1} +vpblendmw (%rax), %zmm17, %zmm19 {k1} +vpblendmw %zmm16, %zmm17, %zmm19 {z}{k1} +vpblendmw (%rax), %zmm17, %zmm19 {z}{k1} + vpbroadcastb %xmm16, %zmm19 vpbroadcastb (%rax), %zmm19 +vpbroadcastb %eax, %zmm19 vpbroadcastb %xmm16, %zmm19 {k1} vpbroadcastb (%rax), %zmm19 {k1} +vpbroadcastb %eax, %zmm19 {k1} vpbroadcastb %xmm16, %zmm19 {z}{k1} vpbroadcastb (%rax), %zmm19 {z}{k1} +vpbroadcastb %eax, %zmm19 {z}{k1} vpbroadcastw %xmm16, %zmm19 vpbroadcastw (%rax), %zmm19 +vpbroadcastw %eax, %zmm19 vpbroadcastw %xmm16, %zmm19 {k1} vpbroadcastw (%rax), %zmm19 {k1} +vpbroadcastw %eax, %zmm19 {k1} vpbroadcastw %xmm16, %zmm19 {z}{k1} vpbroadcastw (%rax), %zmm19 {z}{k1} +vpbroadcastw %eax, %zmm19 {z}{k1} vpcmpb $0, %zmm0, %zmm1, %k2 vpcmpb $0, (%rax), %zmm1, %k2 @@ -162,6 +253,18 @@ vpcmpw $0, (%rax), %zmm1, %k2 vpcmpw $0, %zmm0, %zmm1, %k2 {k3} vpcmpw $0, (%rax), %zmm1, %k2 {k3} +vpextrb $0, %xmm16, %rax +vpextrb $0, %xmm16, (%rax) + +vpextrw $0, %xmm16, %rax +vpextrw $0, %xmm16, (%rax) + +vpinsrb $0, %rax, %xmm16, %xmm19 +vpinsrb $0, (%rax), %xmm16, %xmm19 + +vpinsrw $0, %rax, %xmm16, %xmm19 +vpinsrw $0, (%rax), %xmm16, %xmm19 + vpermw %zmm16, %zmm17, %zmm19 vpermw (%rax), %zmm17, %zmm19 vpermw %zmm16, %zmm17, %zmm19 {k1} @@ -169,6 +272,96 @@ vpermw (%rax), %zmm17, %zmm19 {k1} vpermw %zmm16, %zmm17, %zmm19 {z}{k1} vpermw (%rax), %zmm17, %zmm19 {z}{k1} +vpermi2w %zmm16, %zmm17, %zmm19 +vpermi2w (%rax), %zmm17, %zmm19 +vpermi2w %zmm16, %zmm17, %zmm19 {k1} +vpermi2w (%rax), %zmm17, %zmm19 {k1} +vpermi2w %zmm16, %zmm17, %zmm19 {z}{k1} +vpermi2w (%rax), %zmm17, %zmm19 {z}{k1} + +vpermt2w %zmm16, %zmm17, %zmm19 +vpermt2w (%rax), %zmm17, %zmm19 +vpermt2w %zmm16, %zmm17, %zmm19 {k1} +vpermt2w (%rax), %zmm17, %zmm19 {k1} +vpermt2w %zmm16, %zmm17, %zmm19 {z}{k1} +vpermt2w (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaddubsw %zmm16, %zmm17, %zmm19 +vpmaddubsw (%rax), %zmm17, %zmm19 +vpmaddubsw %zmm16, %zmm17, %zmm19 {k1} +vpmaddubsw (%rax), %zmm17, %zmm19 {k1} +vpmaddubsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaddubsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaddwd %zmm16, %zmm17, %zmm19 +vpmaddwd (%rax), %zmm17, %zmm19 +vpmaddwd %zmm16, %zmm17, %zmm19 {k1} +vpmaddwd (%rax), %zmm17, %zmm19 {k1} +vpmaddwd %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaddwd (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaxsb %zmm16, %zmm17, %zmm19 +vpmaxsb (%rax), %zmm17, %zmm19 +vpmaxsb %zmm16, %zmm17, %zmm19 {k1} +vpmaxsb (%rax), %zmm17, %zmm19 {k1} +vpmaxsb %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaxsb (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaxsw %zmm16, %zmm17, %zmm19 +vpmaxsw (%rax), %zmm17, %zmm19 +vpmaxsw %zmm16, %zmm17, %zmm19 {k1} +vpmaxsw (%rax), %zmm17, %zmm19 {k1} +vpmaxsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaxsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaxub %zmm16, %zmm17, %zmm19 +vpmaxub (%rax), %zmm17, %zmm19 +vpmaxub %zmm16, %zmm17, %zmm19 {k1} +vpmaxub (%rax), %zmm17, %zmm19 {k1} +vpmaxub %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaxub (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaxuw %zmm16, %zmm17, %zmm19 +vpmaxuw (%rax), %zmm17, %zmm19 +vpmaxuw %zmm16, %zmm17, %zmm19 {k1} +vpmaxuw (%rax), %zmm17, %zmm19 {k1} +vpmaxuw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaxuw (%rax), %zmm17, %zmm19 {z}{k1} + +vpminsb %zmm16, %zmm17, %zmm19 +vpminsb (%rax), %zmm17, %zmm19 +vpminsb %zmm16, %zmm17, %zmm19 {k1} +vpminsb (%rax), %zmm17, %zmm19 {k1} +vpminsb %zmm16, %zmm17, %zmm19 {z}{k1} +vpminsb (%rax), %zmm17, %zmm19 {z}{k1} + +vpminsw %zmm16, %zmm17, %zmm19 +vpminsw (%rax), %zmm17, %zmm19 +vpminsw %zmm16, %zmm17, %zmm19 {k1} +vpminsw (%rax), %zmm17, %zmm19 {k1} +vpminsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpminsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpminub %zmm16, %zmm17, %zmm19 +vpminub (%rax), %zmm17, %zmm19 +vpminub %zmm16, %zmm17, %zmm19 {k1} +vpminub (%rax), %zmm17, %zmm19 {k1} +vpminub %zmm16, %zmm17, %zmm19 {z}{k1} +vpminub (%rax), %zmm17, %zmm19 {z}{k1} + +vpminuw %zmm16, %zmm17, %zmm19 +vpminuw (%rax), %zmm17, %zmm19 +vpminuw %zmm16, %zmm17, %zmm19 {k1} +vpminuw (%rax), %zmm17, %zmm19 {k1} +vpminuw %zmm16, %zmm17, %zmm19 {z}{k1} +vpminuw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmovb2m %zmm0, %k0 +vpmovw2m %zmm0, %k0 + +vpmovm2b %k0, %zmm0 +vpmovm2w %k0, %zmm0 + vpmovsxbw %ymm16, %zmm19 vpmovsxbw (%rax), %zmm19 vpmovsxbw %ymm16, %zmm19 {k1} @@ -176,6 +369,21 @@ vpmovsxbw (%rax), %zmm19 {k1} vpmovsxbw %ymm16, %zmm19 {z}{k1} vpmovsxbw (%rax), %zmm19 {z}{k1} +vpmovswb %zmm16, %ymm19 +vpmovswb %zmm16, (%rax) +vpmovswb %zmm16, %ymm19 {k1} +vpmovswb %zmm16, (%rax) {k1} + +vpmovuswb %zmm16, %ymm19 +vpmovuswb %zmm16, (%rax) +vpmovuswb %zmm16, %ymm19 {k1} +vpmovuswb %zmm16, (%rax) {k1} + +vpmovwb %zmm16, %ymm19 +vpmovwb %zmm16, (%rax) +vpmovwb %zmm16, %ymm19 {k1} +vpmovwb %zmm16, (%rax) {k1} + vpmovzxbw %ymm16, %zmm19 vpmovzxbw (%rax), %zmm19 vpmovzxbw %ymm16, %zmm19 {k1} @@ -183,6 +391,37 @@ vpmovzxbw (%rax), %zmm19 {k1} vpmovzxbw %ymm16, %zmm19 {z}{k1} vpmovzxbw (%rax), %zmm19 {z}{k1} +vpmulhrsw %zmm16, %zmm17, %zmm19 +vpmulhrsw (%rax), %zmm17, %zmm19 +vpmulhrsw %zmm16, %zmm17, %zmm19 {k1} +vpmulhrsw (%rax), %zmm17, %zmm19 {k1} +vpmulhrsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmulhrsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmulhuw %zmm16, %zmm17, %zmm19 +vpmulhuw (%rax), %zmm17, %zmm19 +vpmulhuw %zmm16, %zmm17, %zmm19 {k1} +vpmulhuw (%rax), %zmm17, %zmm19 {k1} +vpmulhuw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmulhuw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmulhw %zmm16, %zmm17, %zmm19 +vpmulhw (%rax), %zmm17, %zmm19 +vpmulhw %zmm16, %zmm17, %zmm19 {k1} +vpmulhw (%rax), %zmm17, %zmm19 {k1} +vpmulhw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmulhw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmullw %zmm16, %zmm17, %zmm19 +vpmullw (%rax), %zmm17, %zmm19 +vpmullw %zmm16, %zmm17, %zmm19 {k1} +vpmullw (%rax), %zmm17, %zmm19 {k1} +vpmullw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmullw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsadbw %zmm16, %zmm17, %zmm19 +vpsadbw (%rax), %zmm17, %zmm19 + vpshufb %zmm16, %zmm17, %zmm19 vpshufb (%rax), %zmm17, %zmm19 vpshufb %zmm16, %zmm17, %zmm19 {k1} @@ -207,9 +446,72 @@ vpshuflw $0, (%rax), %zmm19 {z}{k1} vpslldq $1, %zmm16, %zmm19 vpslldq $1, (%rax), %zmm19 +vpsllvw %zmm16, %zmm17, %zmm19 +vpsllvw (%rax), %zmm17, %zmm19 +vpsllvw %zmm16, %zmm17, %zmm19 {k1} +vpsllvw (%rax), %zmm17, %zmm19 {k1} +vpsllvw %zmm16, %zmm17, %zmm19 {z}{k1} +vpsllvw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsllw $0, %zmm16, %zmm19 +vpsllw $0, (%rax), %zmm19 +vpsllw $0, %zmm16, %zmm19 {k1} +vpsllw $0, (%rax), %zmm19 {k1} +vpsllw $0, %zmm16, %zmm19 {z}{k1} +vpsllw $0, (%rax), %zmm19 {z}{k1} + +vpsllw %xmm16, %zmm17, %zmm19 +vpsllw (%rax), %zmm17, %zmm19 +vpsllw %xmm16, %zmm17, %zmm19 {k1} +vpsllw (%rax), %zmm17, %zmm19 {k1} +vpsllw %xmm16, %zmm17, %zmm19 {z}{k1} +vpsllw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsravw %zmm16, %zmm17, %zmm19 +vpsravw (%rax), %zmm17, %zmm19 +vpsravw %zmm16, %zmm17, %zmm19 {k1} +vpsravw (%rax), %zmm17, %zmm19 {k1} +vpsravw %zmm16, %zmm17, %zmm19 {z}{k1} +vpsravw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsraw $0, %zmm16, %zmm19 +vpsraw $0, (%rax), %zmm19 +vpsraw $0, %zmm16, %zmm19 {k1} +vpsraw $0, (%rax), %zmm19 {k1} +vpsraw $0, %zmm16, %zmm19 {z}{k1} +vpsraw $0, (%rax), %zmm19 {z}{k1} + +vpsraw %xmm16, %zmm17, %zmm19 +vpsraw (%rax), %zmm17, %zmm19 +vpsraw %xmm16, %zmm17, %zmm19 {k1} +vpsraw (%rax), %zmm17, %zmm19 {k1} +vpsraw %xmm16, %zmm17, %zmm19 {z}{k1} +vpsraw (%rax), %zmm17, %zmm19 {z}{k1} + vpsrldq $1, %zmm16, %zmm19 vpsrldq $1, (%rax), %zmm19 +vpsrlvw %zmm16, %zmm17, %zmm19 +vpsrlvw (%rax), %zmm17, %zmm19 +vpsrlvw %zmm16, %zmm17, %zmm19 {k1} +vpsrlvw (%rax), %zmm17, %zmm19 {k1} +vpsrlvw %zmm16, %zmm17, %zmm19 {z}{k1} +vpsrlvw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsrlw $0, %zmm16, %zmm19 +vpsrlw $0, (%rax), %zmm19 +vpsrlw $0, %zmm16, %zmm19 {k1} +vpsrlw $0, (%rax), %zmm19 {k1} +vpsrlw $0, %zmm16, %zmm19 {z}{k1} +vpsrlw $0, (%rax), %zmm19 {z}{k1} + +vpsrlw %xmm16, %zmm17, %zmm19 +vpsrlw (%rax), %zmm17, %zmm19 +vpsrlw %xmm16, %zmm17, %zmm19 {k1} +vpsrlw (%rax), %zmm17, %zmm19 {k1} +vpsrlw %xmm16, %zmm17, %zmm19 {z}{k1} +vpsrlw (%rax), %zmm17, %zmm19 {z}{k1} + vpsubb %zmm16, %zmm17, %zmm19 vpsubb (%rax), %zmm17, %zmm19 vpsubb %zmm16, %zmm17, %zmm19 {k1} @@ -217,6 +519,34 @@ vpsubb (%rax), %zmm17, %zmm19 {k1} vpsubb %zmm16, %zmm17, %zmm19 {z}{k1} vpsubb (%rax), %zmm17, %zmm19 {z}{k1} +vpsubsb %zmm16, %zmm17, %zmm19 +vpsubsb (%rax), %zmm17, %zmm19 +vpsubsb %zmm16, %zmm17, %zmm19 {k1} +vpsubsb (%rax), %zmm17, %zmm19 {k1} +vpsubsb %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubsb (%rax), %zmm17, %zmm19 {z}{k1} + +vpsubsw %zmm16, %zmm17, %zmm19 +vpsubsw (%rax), %zmm17, %zmm19 +vpsubsw %zmm16, %zmm17, %zmm19 {k1} +vpsubsw (%rax), %zmm17, %zmm19 {k1} +vpsubsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsubusb %zmm16, %zmm17, %zmm19 +vpsubusb (%rax), %zmm17, %zmm19 +vpsubusb %zmm16, %zmm17, %zmm19 {k1} +vpsubusb (%rax), %zmm17, %zmm19 {k1} +vpsubusb %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubusb (%rax), %zmm17, %zmm19 {z}{k1} + +vpsubusw %zmm16, %zmm17, %zmm19 +vpsubusw (%rax), %zmm17, %zmm19 +vpsubusw %zmm16, %zmm17, %zmm19 {k1} +vpsubusw (%rax), %zmm17, %zmm19 {k1} +vpsubusw %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubusw (%rax), %zmm17, %zmm19 {z}{k1} + vpsubw %zmm16, %zmm17, %zmm19 vpsubw (%rax), %zmm17, %zmm19 vpsubw %zmm16, %zmm17, %zmm19 {k1} @@ -272,12 +602,6 @@ vpunpcklwd (%rax), %zmm17, %zmm19 {k1} vpunpcklwd %zmm16, %zmm17, %zmm19 {z}{k1} vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1} -vpmovm2b %k0, %zmm0 -vpmovm2w %k0, %zmm0 - -vpmovb2m %zmm0, %k0 -vpmovw2m %zmm0, %k0 - # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -293,18 +617,34 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 1 1 1.00 kandq %k0, %k1, %k2 # CHECK-NEXT: 1 1 1.00 kandnd %k0, %k1, %k2 # CHECK-NEXT: 1 1 1.00 kandnq %k0, %k1, %k2 +# CHECK-NEXT: 1 1 1.00 kmovd %k0, %k2 +# CHECK-NEXT: 3 7 1.00 * kmovd (%rax), %k2 +# CHECK-NEXT: 2 1 1.00 * kmovd %k0, (%rax) +# CHECK-NEXT: 1 1 1.00 kmovd %eax, %k2 +# CHECK-NEXT: 1 3 1.00 kmovd %k0, %eax +# CHECK-NEXT: 1 1 1.00 kmovq %k0, %k2 +# CHECK-NEXT: 3 7 1.00 * kmovq (%rax), %k2 +# CHECK-NEXT: 2 1 1.00 * kmovq %k0, (%rax) +# CHECK-NEXT: 1 1 1.00 kmovq %rax, %k2 +# CHECK-NEXT: 1 3 1.00 kmovq %k0, %rax +# CHECK-NEXT: 1 1 1.00 knotd %k0, %k2 +# CHECK-NEXT: 1 1 1.00 knotq %k0, %k2 # CHECK-NEXT: 1 1 1.00 kord %k0, %k1, %k2 # CHECK-NEXT: 1 1 1.00 korq %k0, %k1, %k2 -# CHECK-NEXT: 1 1 1.00 kxnord %k0, %k1, %k2 -# CHECK-NEXT: 1 1 1.00 kxnorq %k0, %k1, %k2 -# CHECK-NEXT: 1 1 1.00 kxord %k0, %k1, %k2 -# CHECK-NEXT: 1 1 1.00 kxorq %k0, %k1, %k2 +# CHECK-NEXT: 1 3 1.00 kortestd %k0, %k2 +# CHECK-NEXT: 1 3 1.00 kortestq %k0, %k2 # CHECK-NEXT: 1 4 1.00 kshiftld $2, %k1, %k2 # CHECK-NEXT: 1 4 1.00 kshiftlq $2, %k1, %k2 # CHECK-NEXT: 1 4 1.00 kshiftrd $2, %k1, %k2 # CHECK-NEXT: 1 4 1.00 kshiftrq $2, %k1, %k2 +# CHECK-NEXT: 1 3 1.00 ktestd %k0, %k2 +# CHECK-NEXT: 1 3 1.00 ktestq %k0, %k2 # CHECK-NEXT: 1 4 1.00 kunpckdq %k0, %k1, %k2 # CHECK-NEXT: 1 4 1.00 kunpckwd %k0, %k1, %k2 +# CHECK-NEXT: 1 1 1.00 kxnord %k0, %k1, %k2 +# CHECK-NEXT: 1 1 1.00 kxnorq %k0, %k1, %k2 +# CHECK-NEXT: 1 1 1.00 kxord %k0, %k1, %k2 +# CHECK-NEXT: 1 1 1.00 kxorq %k0, %k1, %k2 # CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 10 1.00 * vdbpsadbw $0, (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1} @@ -369,6 +709,30 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 0.50 * vpaddb (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 0.33 vpaddb %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpaddb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpaddsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpaddsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpaddsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpaddsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpaddsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpaddsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpaddsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpaddsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpaddsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpaddsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpaddsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpaddsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpaddusb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpaddusb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpaddusb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpaddusb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpaddusb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpaddusb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpaddusw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpaddusw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpaddusw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpaddusw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpaddusw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpaddusw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 0.33 vpaddw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 0.33 vpaddw %zmm16, %zmm17, %zmm19 {%k1} @@ -381,18 +745,48 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpalignr $1, %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpavgb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpavgb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpavgb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpavgb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpavgb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpavgb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpavgw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpavgw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpavgw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpavgw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpavgw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpavgw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 2 0.50 vpblendmb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpblendmb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 2 0.50 vpblendmb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpblendmb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 2 0.50 vpblendmb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpblendmb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 2 0.50 vpblendmw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpblendmw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 2 0.50 vpblendmw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpblendmw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 2 0.50 vpblendmw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpblendmw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19 +# CHECK-NEXT: 1 3 1.00 vpbroadcastb %eax, %zmm19 # CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %zmm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vpbroadcastb %eax, %zmm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vpbroadcastb %eax, %zmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19 +# CHECK-NEXT: 1 3 1.00 vpbroadcastw %eax, %zmm19 # CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %zmm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vpbroadcastw %eax, %zmm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vpbroadcastw %eax, %zmm19 {%k1} {z} # CHECK-NEXT: 1 4 1.00 vpcmpeqb %zmm0, %zmm1, %k2 # CHECK-NEXT: 2 11 1.00 * vpcmpeqb (%rax), %zmm1, %k2 # CHECK-NEXT: 1 4 1.00 vpcmpeqb %zmm0, %zmm1, %k2 {%k3} @@ -425,24 +819,146 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 11 1.00 * vpcmpeqw (%rax), %zmm1, %k2 # CHECK-NEXT: 1 4 1.00 vpcmpeqw %zmm0, %zmm1, %k2 {%k3} # CHECK-NEXT: 2 11 1.00 * vpcmpeqw (%rax), %zmm1, %k2 {%k3} +# CHECK-NEXT: 2 3 1.00 vpextrb $0, %xmm16, %eax +# CHECK-NEXT: 3 2 1.00 * vpextrb $0, %xmm16, (%rax) +# CHECK-NEXT: 2 3 1.00 vpextrw $0, %xmm16, %eax +# CHECK-NEXT: 3 2 1.00 * vpextrw $0, %xmm16, (%rax) +# CHECK-NEXT: 2 2 2.00 vpinsrb $0, %eax, %xmm16, %xmm19 +# CHECK-NEXT: 2 6 1.00 * vpinsrb $0, (%rax), %xmm16, %xmm19 +# CHECK-NEXT: 2 2 2.00 vpinsrw $0, %eax, %xmm16, %xmm19 +# CHECK-NEXT: 2 6 1.00 * vpinsrw $0, (%rax), %xmm16, %xmm19 # CHECK-NEXT: 2 6 2.00 vpermw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %zmm17, %zmm19 # CHECK-NEXT: 2 6 2.00 vpermw %zmm16, %zmm17, %zmm19 {%k1} # CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 2 6 2.00 vpermw %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 7 2.00 vpermi2w %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 4 14 2.00 * vpermi2w (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 3 7 2.00 vpermi2w %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 4 14 2.00 * vpermi2w (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 3 7 2.00 vpermi2w %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 4 14 2.00 * vpermi2w (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 7 2.00 vpermt2w %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 4 14 2.00 * vpermt2w (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 3 7 2.00 vpermt2w %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 4 14 2.00 * vpermt2w (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 3 7 2.00 vpermt2w %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 4 14 2.00 * vpermt2w (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 0.50 * vpmaddubsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmaddubsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmaddubsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmaddwd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 0.50 * vpmaddwd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 0.50 vpmaddwd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmaddwd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmaddwd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmaddwd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmaxsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpmaxsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpmaxsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmaxsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmaxsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpmaxsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmaxsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpmaxsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpmaxsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmaxsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmaxsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpmaxsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmaxub %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpmaxub (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpmaxub %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmaxub (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmaxub %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpmaxub (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmaxuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpmaxuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpmaxuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmaxuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmaxuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpmaxuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpminsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpminsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpminsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpminsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpminsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpminsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpminsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpminsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpminsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpminsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpminsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpminsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpminub %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpminub (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpminub %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpminub (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpminub %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpminub (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpminuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpminuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpminuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpminuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpminuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpminuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovb2m %zmm0, %k0 +# CHECK-NEXT: 1 1 1.00 vpmovw2m %zmm0, %k0 +# CHECK-NEXT: 1 1 0.50 vpmovm2b %k0, %zmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2w %k0, %zmm0 # CHECK-NEXT: 1 3 1.00 vpmovsxbw %ymm16, %zmm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %zmm19 # CHECK-NEXT: 1 3 1.00 vpmovsxbw %ymm16, %zmm19 {%k1} # CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %zmm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpmovsxbw %ymm16, %zmm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 4 2.00 vpmovswb %zmm16, %ymm19 +# CHECK-NEXT: 4 5 2.00 * vpmovswb %zmm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovswb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovswb %zmm16, (%rax) {%k1} +# CHECK-NEXT: 2 4 2.00 vpmovuswb %zmm16, %ymm19 +# CHECK-NEXT: 4 5 2.00 * vpmovuswb %zmm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovuswb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovuswb %zmm16, (%rax) {%k1} +# CHECK-NEXT: 2 4 2.00 vpmovwb %zmm16, %ymm19 +# CHECK-NEXT: 4 5 2.00 * vpmovwb %zmm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovwb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovwb %zmm16, (%rax) {%k1} # CHECK-NEXT: 1 3 1.00 vpmovzxbw %ymm16, %zmm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %zmm19 # CHECK-NEXT: 1 3 1.00 vpmovzxbw %ymm16, %zmm19 {%k1} # CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %zmm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpmovzxbw %ymm16, %zmm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 0.50 * vpmulhrsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmulhrsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmulhrsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 0.50 * vpmulhuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 0.50 vpmulhuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmulhuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmulhuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 0.50 * vpmulhw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 0.50 vpmulhw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmulhw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmulhw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmullw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 0.50 * vpmullw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 0.50 vpmullw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmullw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmullw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmullw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vpsadbw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 10 1.00 * vpsadbw (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 1.00 vpshufb %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 1.00 vpshufb %zmm16, %zmm17, %zmm19 {%k1} @@ -463,14 +979,92 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpshuflw $0, (%rax), %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpslldq $1, %zmm16, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpslldq $1, (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsllvw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsllvw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsllvw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsllvw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsllvw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsllvw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsllw $0, %zmm16, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsllw $0, (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsllw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsllw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsllw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsllw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsllw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsllw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsllw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsravw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsravw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsravw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsravw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsravw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsravw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsraw $0, %zmm16, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsraw $0, (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsraw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsraw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsraw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsraw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsraw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsraw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsraw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpsrldq $1, %zmm16, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpsrldq $1, (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsrlvw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsrlvw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsrlvw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsrlvw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsrlvw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsrlvw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsrlw $0, %zmm16, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsrlw $0, (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsrlw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsrlw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsrlw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsrlw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsrlw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsrlw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsrlw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 0.33 vpsubb %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 0.33 vpsubb %zmm16, %zmm17, %zmm19 {%k1} # CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 0.33 vpsubb %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsubsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsubsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsubsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsubsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsubsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsubsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsubsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsubsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsubsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsubsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsubsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsubsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsubusb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsubusb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsubusb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsubusb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsubusb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsubusb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsubusw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsubusw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsubusw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsubusw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsubusw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsubusw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 0.33 vpsubw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 0.33 vpsubw %zmm16, %zmm17, %zmm19 {%k1} @@ -517,10 +1111,6 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: 1 1 0.50 vpmovm2b %k0, %zmm0 -# CHECK-NEXT: 1 1 0.50 vpmovm2w %k0, %zmm0 -# CHECK-NEXT: 1 1 1.00 vpmovb2m %zmm0, %k0 -# CHECK-NEXT: 1 1 1.00 vpmovw2m %zmm0, %k0 # CHECK: Resources: # CHECK-NEXT: [0] - ICXDivider @@ -538,7 +1128,7 @@ vpmovw2m %zmm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: - - 38.00 11.00 54.00 54.00 6.00 189.00 - 2.00 - - +# CHECK-NEXT: - - 239.50 17.50 115.33 115.33 16.00 295.50 0.50 5.33 - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -548,18 +1138,34 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - 1.00 - - - - - - - - - kandq %k0, %k1, %k2 # CHECK-NEXT: - - 1.00 - - - - - - - - - kandnd %k0, %k1, %k2 # CHECK-NEXT: - - 1.00 - - - - - - - - - kandnq %k0, %k1, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - - - kmovd %k0, %k2 +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 1.25 0.25 - - - kmovd (%rax), %k2 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 - - kmovd %k0, (%rax) +# CHECK-NEXT: - - - - - - - 1.00 - - - - kmovd %eax, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - - - kmovd %k0, %eax +# CHECK-NEXT: - - 1.00 - - - - - - - - - kmovq %k0, %k2 +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 1.25 0.25 - - - kmovq (%rax), %k2 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 - - kmovq %k0, (%rax) +# CHECK-NEXT: - - - - - - - 1.00 - - - - kmovq %rax, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - - - kmovq %k0, %rax +# CHECK-NEXT: - - 1.00 - - - - - - - - - knotd %k0, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - - - knotq %k0, %k2 # CHECK-NEXT: - - 1.00 - - - - - - - - - kord %k0, %k1, %k2 # CHECK-NEXT: - - 1.00 - - - - - - - - - korq %k0, %k1, %k2 -# CHECK-NEXT: - - 1.00 - - - - - - - - - kxnord %k0, %k1, %k2 -# CHECK-NEXT: - - 1.00 - - - - - - - - - kxnorq %k0, %k1, %k2 -# CHECK-NEXT: - - 1.00 - - - - - - - - - kxord %k0, %k1, %k2 -# CHECK-NEXT: - - 1.00 - - - - - - - - - kxorq %k0, %k1, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - - - kortestd %k0, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - - - kortestq %k0, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - - - kshiftld $2, %k1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - - - kshiftlq $2, %k1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - - - kshiftrd $2, %k1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - - - kshiftrq $2, %k1, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - - - ktestd %k0, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - - - ktestq %k0, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - - - kunpckdq %k0, %k1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - - - kunpckwd %k0, %k1, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - - - kxnord %k0, %k1, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - - - kxnorq %k0, %k1, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - - - kxord %k0, %k1, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - - - kxorq %k0, %k1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - - - vdbpsadbw $0, %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vdbpsadbw $0, (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1} @@ -624,6 +1230,30 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpaddb (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpaddb %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpaddb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpaddsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpaddsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpaddsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpaddsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpaddsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpaddsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpaddsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpaddsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpaddsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpaddsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpaddsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpaddsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpaddusb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpaddusb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpaddusb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpaddusb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpaddusb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpaddusb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpaddusw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpaddusw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpaddusw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpaddusw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpaddusw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpaddusw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpaddw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpaddw (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpaddw %zmm16, %zmm17, %zmm19 {%k1} @@ -636,18 +1266,48 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpalignr $1, %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpavgb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpavgb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpavgb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpavgb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpavgb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpavgb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpavgw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpavgw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpavgw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpavgw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpavgw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpavgw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpblendmb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpblendmb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpblendmb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpblendmw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpblendmw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpblendmw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %zmm19 +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %eax, %zmm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %zmm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %eax, %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %eax, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %zmm19 +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %eax, %zmm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %zmm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %eax, %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %eax, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpeqb %zmm0, %zmm1, %k2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpcmpeqb (%rax), %zmm1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpeqb %zmm0, %zmm1, %k2 {%k3} @@ -680,24 +1340,146 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpcmpeqw (%rax), %zmm1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpeqw %zmm0, %zmm1, %k2 {%k3} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpcmpeqw (%rax), %zmm1, %k2 {%k3} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - vpextrb $0, %xmm16, %eax +# CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 - - vpextrb $0, %xmm16, (%rax) +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - vpextrw $0, %xmm16, %eax +# CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 - - vpextrw $0, %xmm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpinsrb $0, %eax, %xmm16, %xmm19 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpinsrb $0, (%rax), %xmm16, %xmm19 +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpinsrw $0, %eax, %xmm16, %xmm19 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpinsrw $0, (%rax), %xmm16, %xmm19 # CHECK-NEXT: - - - - - - - 2.00 - - - - vpermw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - - - vpermw (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - - - - - 2.00 - - - - vpermw %zmm16, %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - - - vpermw (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 2.00 - - - - vpermw %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - - - vpermw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermi2w %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermi2w (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermi2w %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermi2w (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermi2w %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermi2w (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermt2w %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermt2w (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermt2w %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermt2w (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermt2w %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermt2w (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmaddubsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmaddubsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmaddubsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmaddubsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmaddubsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmaddubsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmaddwd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmaddwd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmaddwd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmaddwd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmaddwd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmaddwd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmaxsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpmaxsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmaxsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpmaxsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmaxsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpmaxsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmaxsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpmaxsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmaxsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpmaxsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmaxsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpmaxsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmaxub %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpmaxub (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmaxub %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpmaxub (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmaxub %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpmaxub (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmaxuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpmaxuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmaxuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpmaxuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmaxuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpmaxuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpminsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpminsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpminsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpminsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpminsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpminsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpminsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpminsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpminsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpminsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpminsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpminsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpminub %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpminub (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpminub %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpminub (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpminub %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpminub (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpminuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpminuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpminuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpminuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpminuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpminuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovb2m %zmm0, %k0 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovw2m %zmm0, %k0 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmovm2b %k0, %zmm0 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmovm2w %k0, %zmm0 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %ymm16, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %zmm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %ymm16, %zmm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovsxbw %ymm16, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovsxbw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovswb %zmm16, %ymm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovswb %zmm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovswb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovswb %zmm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovuswb %zmm16, %ymm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovuswb %zmm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovuswb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovuswb %zmm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovwb %zmm16, %ymm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovwb %zmm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovwb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovwb %zmm16, (%rax) {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %ymm16, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %zmm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %ymm16, %zmm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpmovzxbw %ymm16, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpmovzxbw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmulhrsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmulhrsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmulhrsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmulhrsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmulhrsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmulhrsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmulhuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmulhuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmulhuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmulhuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmulhuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmulhuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmulhw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmulhw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmulhw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmulhw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmulhw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmulhw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmullw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmullw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmullw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmullw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmullw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vpmullw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsadbw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpsadbw (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshufb (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpshufb %zmm16, %zmm17, %zmm19 {%k1} @@ -718,14 +1500,92 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpshuflw $0, (%rax), %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpslldq $1, %zmm16, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpslldq $1, (%rax), %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsllvw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsllvw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsllvw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsllvw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsllvw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsllvw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsllw $0, %zmm16, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsllw $0, (%rax), %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsllw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsllw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsllw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsllw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - vpsllw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsllw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - vpsllw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsllw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - vpsllw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsllw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsravw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsravw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsravw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsravw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsravw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsravw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsraw $0, %zmm16, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsraw $0, (%rax), %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsraw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsraw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsraw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsraw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - vpsraw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsraw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - vpsraw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsraw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - vpsraw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsraw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpsrldq $1, %zmm16, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpsrldq $1, (%rax), %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsrlvw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsrlvw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsrlvw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsrlvw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsrlvw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsrlvw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsrlw $0, %zmm16, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsrlw $0, (%rax), %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsrlw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsrlw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsrlw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsrlw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - vpsrlw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsrlw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - vpsrlw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsrlw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - - - vpsrlw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsrlw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubb %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubb (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubb %zmm16, %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubb (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubb %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsubsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsubsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsubsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsubsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsubsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsubsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsubsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsubsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsubsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsubsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsubsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsubsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsubusb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsubusb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsubusb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsubusb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsubusb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsubusb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsubusw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsubusw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsubusw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsubusw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpsubusw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - - - vpsubusw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubw (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubw %zmm16, %zmm17, %zmm19 {%k1} @@ -772,7 +1632,3 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmovm2b %k0, %zmm0 -# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vpmovm2w %k0, %zmm0 -# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovb2m %zmm0, %k0 -# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovw2m %zmm0, %k0 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 9fde2ab..ba21db2 100644 --- a/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s +++ b/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512bwvl.s @@ -149,6 +149,62 @@ vpaddb (%rax), %ymm17, %ymm19 {k1} vpaddb %ymm16, %ymm17, %ymm19 {z}{k1} vpaddb (%rax), %ymm17, %ymm19 {z}{k1} +vpaddsb %xmm16, %xmm17, %xmm19 +vpaddsb (%rax), %xmm17, %xmm19 +vpaddsb %xmm16, %xmm17, %xmm19 {k1} +vpaddsb (%rax), %xmm17, %xmm19 {k1} +vpaddsb %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddsb (%rax), %xmm17, %xmm19 {z}{k1} + +vpaddsb %ymm16, %ymm17, %ymm19 +vpaddsb (%rax), %ymm17, %ymm19 +vpaddsb %ymm16, %ymm17, %ymm19 {k1} +vpaddsb (%rax), %ymm17, %ymm19 {k1} +vpaddsb %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddsb (%rax), %ymm17, %ymm19 {z}{k1} + +vpaddsw %xmm16, %xmm17, %xmm19 +vpaddsw (%rax), %xmm17, %xmm19 +vpaddsw %xmm16, %xmm17, %xmm19 {k1} +vpaddsw (%rax), %xmm17, %xmm19 {k1} +vpaddsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpaddsw %ymm16, %ymm17, %ymm19 +vpaddsw (%rax), %ymm17, %ymm19 +vpaddsw %ymm16, %ymm17, %ymm19 {k1} +vpaddsw (%rax), %ymm17, %ymm19 {k1} +vpaddsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpaddusb %xmm16, %xmm17, %xmm19 +vpaddusb (%rax), %xmm17, %xmm19 +vpaddusb %xmm16, %xmm17, %xmm19 {k1} +vpaddusb (%rax), %xmm17, %xmm19 {k1} +vpaddusb %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddusb (%rax), %xmm17, %xmm19 {z}{k1} + +vpaddusb %ymm16, %ymm17, %ymm19 +vpaddusb (%rax), %ymm17, %ymm19 +vpaddusb %ymm16, %ymm17, %ymm19 {k1} +vpaddusb (%rax), %ymm17, %ymm19 {k1} +vpaddusb %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddusb (%rax), %ymm17, %ymm19 {z}{k1} + +vpaddusw %xmm16, %xmm17, %xmm19 +vpaddusw (%rax), %xmm17, %xmm19 +vpaddusw %xmm16, %xmm17, %xmm19 {k1} +vpaddusw (%rax), %xmm17, %xmm19 {k1} +vpaddusw %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddusw (%rax), %xmm17, %xmm19 {z}{k1} + +vpaddusw %ymm16, %ymm17, %ymm19 +vpaddusw (%rax), %ymm17, %ymm19 +vpaddusw %ymm16, %ymm17, %ymm19 {k1} +vpaddusw (%rax), %ymm17, %ymm19 {k1} +vpaddusw %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddusw (%rax), %ymm17, %ymm19 {z}{k1} + vpaddw %xmm16, %xmm17, %xmm19 vpaddw (%rax), %xmm17, %xmm19 vpaddw %xmm16, %xmm17, %xmm19 {k1} @@ -177,33 +233,101 @@ vpalignr $1, (%rax), %ymm17, %ymm19 {k1} vpalignr $1, %ymm16, %ymm17, %ymm19 {z}{k1} vpalignr $1, (%rax), %ymm17, %ymm19 {z}{k1} +vpavgb %xmm16, %xmm17, %xmm19 +vpavgb (%rax), %xmm17, %xmm19 +vpavgb %xmm16, %xmm17, %xmm19 {k1} +vpavgb (%rax), %xmm17, %xmm19 {k1} +vpavgb %xmm16, %xmm17, %xmm19 {z}{k1} +vpavgb (%rax), %xmm17, %xmm19 {z}{k1} + +vpavgb %ymm16, %ymm17, %ymm19 +vpavgb (%rax), %ymm17, %ymm19 +vpavgb %ymm16, %ymm17, %ymm19 {k1} +vpavgb (%rax), %ymm17, %ymm19 {k1} +vpavgb %ymm16, %ymm17, %ymm19 {z}{k1} +vpavgb (%rax), %ymm17, %ymm19 {z}{k1} + +vpavgw %xmm16, %xmm17, %xmm19 +vpavgw (%rax), %xmm17, %xmm19 +vpavgw %xmm16, %xmm17, %xmm19 {k1} +vpavgw (%rax), %xmm17, %xmm19 {k1} +vpavgw %xmm16, %xmm17, %xmm19 {z}{k1} +vpavgw (%rax), %xmm17, %xmm19 {z}{k1} + +vpavgw %ymm16, %ymm17, %ymm19 +vpavgw (%rax), %ymm17, %ymm19 +vpavgw %ymm16, %ymm17, %ymm19 {k1} +vpavgw (%rax), %ymm17, %ymm19 {k1} +vpavgw %ymm16, %ymm17, %ymm19 {z}{k1} +vpavgw (%rax), %ymm17, %ymm19 {z}{k1} + +vpblendmb %xmm16, %xmm17, %xmm19 +vpblendmb (%rax), %xmm17, %xmm19 +vpblendmb %xmm16, %xmm17, %xmm19 {k1} +vpblendmb (%rax), %xmm17, %xmm19 {k1} +vpblendmb %xmm16, %xmm17, %xmm19 {z}{k1} +vpblendmb (%rax), %xmm17, %xmm19 {z}{k1} + +vpblendmb %ymm16, %ymm17, %ymm19 +vpblendmb (%rax), %ymm17, %ymm19 +vpblendmb %ymm16, %ymm17, %ymm19 {k1} +vpblendmb (%rax), %ymm17, %ymm19 {k1} +vpblendmb %ymm16, %ymm17, %ymm19 {z}{k1} +vpblendmb (%rax), %ymm17, %ymm19 {z}{k1} + +vpblendmw %xmm16, %xmm17, %xmm19 +vpblendmw (%rax), %xmm17, %xmm19 +vpblendmw %xmm16, %xmm17, %xmm19 {k1} +vpblendmw (%rax), %xmm17, %xmm19 {k1} +vpblendmw %xmm16, %xmm17, %xmm19 {z}{k1} +vpblendmw (%rax), %xmm17, %xmm19 {z}{k1} + +vpblendmw %ymm16, %ymm17, %ymm19 +vpblendmw (%rax), %ymm17, %ymm19 +vpblendmw %ymm16, %ymm17, %ymm19 {k1} +vpblendmw (%rax), %ymm17, %ymm19 {k1} +vpblendmw %ymm16, %ymm17, %ymm19 {z}{k1} +vpblendmw (%rax), %ymm17, %ymm19 {z}{k1} + vpbroadcastb %xmm16, %xmm19 vpbroadcastb (%rax), %xmm19 +vpbroadcastb %eax, %xmm19 vpbroadcastb %xmm16, %xmm19 {k1} vpbroadcastb (%rax), %xmm19 {k1} +vpbroadcastb %eax, %xmm19 {k1} vpbroadcastb %xmm16, %xmm19 {z}{k1} vpbroadcastb (%rax), %xmm19 {z}{k1} +vpbroadcastb %eax, %xmm19 {z}{k1} vpbroadcastb %xmm16, %ymm19 vpbroadcastb (%rax), %ymm19 +vpbroadcastb %eax, %ymm19 vpbroadcastb %xmm16, %ymm19 {k1} vpbroadcastb (%rax), %ymm19 {k1} +vpbroadcastb %eax, %ymm19 {k1} vpbroadcastb %xmm16, %ymm19 {z}{k1} vpbroadcastb (%rax), %ymm19 {z}{k1} +vpbroadcastb %eax, %ymm19 {z}{k1} vpbroadcastw %xmm16, %xmm19 vpbroadcastw (%rax), %xmm19 +vpbroadcastw %eax, %xmm19 vpbroadcastw %xmm16, %xmm19 {k1} vpbroadcastw (%rax), %xmm19 {k1} +vpbroadcastw %eax, %xmm19 {k1} vpbroadcastw %xmm16, %xmm19 {z}{k1} vpbroadcastw (%rax), %xmm19 {z}{k1} +vpbroadcastw %eax, %xmm19 {z}{k1} vpbroadcastw %xmm16, %ymm19 vpbroadcastw (%rax), %ymm19 +vpbroadcastw %eax, %ymm19 vpbroadcastw %xmm16, %ymm19 {k1} vpbroadcastw (%rax), %ymm19 {k1} +vpbroadcastw %eax, %ymm19 {k1} vpbroadcastw %xmm16, %ymm19 {z}{k1} vpbroadcastw (%rax), %ymm19 {z}{k1} +vpbroadcastw %eax, %ymm19 {z}{k1} vpcmpb $0, %xmm0, %xmm1, %k2 vpcmpb $0, (%rax), %xmm1, %k2 @@ -299,6 +423,186 @@ vpermw (%rax), %ymm17, %ymm19 {k1} vpermw %ymm16, %ymm17, %ymm19 {z}{k1} vpermw (%rax), %ymm17, %ymm19 {z}{k1} +vpermi2w %xmm16, %xmm17, %xmm19 +vpermi2w (%rax), %xmm17, %xmm19 +vpermi2w %xmm16, %xmm17, %xmm19 {k1} +vpermi2w (%rax), %xmm17, %xmm19 {k1} +vpermi2w %xmm16, %xmm17, %xmm19 {z}{k1} +vpermi2w (%rax), %xmm17, %xmm19 {z}{k1} + +vpermi2w %ymm16, %ymm17, %ymm19 +vpermi2w (%rax), %ymm17, %ymm19 +vpermi2w %ymm16, %ymm17, %ymm19 {k1} +vpermi2w (%rax), %ymm17, %ymm19 {k1} +vpermi2w %ymm16, %ymm17, %ymm19 {z}{k1} +vpermi2w (%rax), %ymm17, %ymm19 {z}{k1} + +vpermt2w %xmm16, %xmm17, %xmm19 +vpermt2w (%rax), %xmm17, %xmm19 +vpermt2w %xmm16, %xmm17, %xmm19 {k1} +vpermt2w (%rax), %xmm17, %xmm19 {k1} +vpermt2w %xmm16, %xmm17, %xmm19 {z}{k1} +vpermt2w (%rax), %xmm17, %xmm19 {z}{k1} + +vpermt2w %ymm16, %ymm17, %ymm19 +vpermt2w (%rax), %ymm17, %ymm19 +vpermt2w %ymm16, %ymm17, %ymm19 {k1} +vpermt2w (%rax), %ymm17, %ymm19 {k1} +vpermt2w %ymm16, %ymm17, %ymm19 {z}{k1} +vpermt2w (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaddubsw %xmm16, %xmm17, %xmm19 +vpmaddubsw (%rax), %xmm17, %xmm19 +vpmaddubsw %xmm16, %xmm17, %xmm19 {k1} +vpmaddubsw (%rax), %xmm17, %xmm19 {k1} +vpmaddubsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaddubsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaddubsw %ymm16, %ymm17, %ymm19 +vpmaddubsw (%rax), %ymm17, %ymm19 +vpmaddubsw %ymm16, %ymm17, %ymm19 {k1} +vpmaddubsw (%rax), %ymm17, %ymm19 {k1} +vpmaddubsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaddubsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaddwd %xmm16, %xmm17, %xmm19 +vpmaddwd (%rax), %xmm17, %xmm19 +vpmaddwd %xmm16, %xmm17, %xmm19 {k1} +vpmaddwd (%rax), %xmm17, %xmm19 {k1} +vpmaddwd %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaddwd (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaddwd %ymm16, %ymm17, %ymm19 +vpmaddwd (%rax), %ymm17, %ymm19 +vpmaddwd %ymm16, %ymm17, %ymm19 {k1} +vpmaddwd (%rax), %ymm17, %ymm19 {k1} +vpmaddwd %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaddwd (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaxsb %xmm16, %xmm17, %xmm19 +vpmaxsb (%rax), %xmm17, %xmm19 +vpmaxsb %xmm16, %xmm17, %xmm19 {k1} +vpmaxsb (%rax), %xmm17, %xmm19 {k1} +vpmaxsb %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaxsb (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaxsb %ymm16, %ymm17, %ymm19 +vpmaxsb (%rax), %ymm17, %ymm19 +vpmaxsb %ymm16, %ymm17, %ymm19 {k1} +vpmaxsb (%rax), %ymm17, %ymm19 {k1} +vpmaxsb %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaxsb (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaxsw %xmm16, %xmm17, %xmm19 +vpmaxsw (%rax), %xmm17, %xmm19 +vpmaxsw %xmm16, %xmm17, %xmm19 {k1} +vpmaxsw (%rax), %xmm17, %xmm19 {k1} +vpmaxsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaxsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaxsw %ymm16, %ymm17, %ymm19 +vpmaxsw (%rax), %ymm17, %ymm19 +vpmaxsw %ymm16, %ymm17, %ymm19 {k1} +vpmaxsw (%rax), %ymm17, %ymm19 {k1} +vpmaxsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaxsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaxub %xmm16, %xmm17, %xmm19 +vpmaxub (%rax), %xmm17, %xmm19 +vpmaxub %xmm16, %xmm17, %xmm19 {k1} +vpmaxub (%rax), %xmm17, %xmm19 {k1} +vpmaxub %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaxub (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaxub %ymm16, %ymm17, %ymm19 +vpmaxub (%rax), %ymm17, %ymm19 +vpmaxub %ymm16, %ymm17, %ymm19 {k1} +vpmaxub (%rax), %ymm17, %ymm19 {k1} +vpmaxub %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaxub (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaxuw %xmm16, %xmm17, %xmm19 +vpmaxuw (%rax), %xmm17, %xmm19 +vpmaxuw %xmm16, %xmm17, %xmm19 {k1} +vpmaxuw (%rax), %xmm17, %xmm19 {k1} +vpmaxuw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaxuw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaxuw %ymm16, %ymm17, %ymm19 +vpmaxuw (%rax), %ymm17, %ymm19 +vpmaxuw %ymm16, %ymm17, %ymm19 {k1} +vpmaxuw (%rax), %ymm17, %ymm19 {k1} +vpmaxuw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaxuw (%rax), %ymm17, %ymm19 {z}{k1} + +vpminsb %xmm16, %xmm17, %xmm19 +vpminsb (%rax), %xmm17, %xmm19 +vpminsb %xmm16, %xmm17, %xmm19 {k1} +vpminsb (%rax), %xmm17, %xmm19 {k1} +vpminsb %xmm16, %xmm17, %xmm19 {z}{k1} +vpminsb (%rax), %xmm17, %xmm19 {z}{k1} + +vpminsb %ymm16, %ymm17, %ymm19 +vpminsb (%rax), %ymm17, %ymm19 +vpminsb %ymm16, %ymm17, %ymm19 {k1} +vpminsb (%rax), %ymm17, %ymm19 {k1} +vpminsb %ymm16, %ymm17, %ymm19 {z}{k1} +vpminsb (%rax), %ymm17, %ymm19 {z}{k1} + +vpminsw %xmm16, %xmm17, %xmm19 +vpminsw (%rax), %xmm17, %xmm19 +vpminsw %xmm16, %xmm17, %xmm19 {k1} +vpminsw (%rax), %xmm17, %xmm19 {k1} +vpminsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpminsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpminsw %ymm16, %ymm17, %ymm19 +vpminsw (%rax), %ymm17, %ymm19 +vpminsw %ymm16, %ymm17, %ymm19 {k1} +vpminsw (%rax), %ymm17, %ymm19 {k1} +vpminsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpminsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpminub %xmm16, %xmm17, %xmm19 +vpminub (%rax), %xmm17, %xmm19 +vpminub %xmm16, %xmm17, %xmm19 {k1} +vpminub (%rax), %xmm17, %xmm19 {k1} +vpminub %xmm16, %xmm17, %xmm19 {z}{k1} +vpminub (%rax), %xmm17, %xmm19 {z}{k1} + +vpminub %ymm16, %ymm17, %ymm19 +vpminub (%rax), %ymm17, %ymm19 +vpminub %ymm16, %ymm17, %ymm19 {k1} +vpminub (%rax), %ymm17, %ymm19 {k1} +vpminub %ymm16, %ymm17, %ymm19 {z}{k1} +vpminub (%rax), %ymm17, %ymm19 {z}{k1} + +vpminuw %xmm16, %xmm17, %xmm19 +vpminuw (%rax), %xmm17, %xmm19 +vpminuw %xmm16, %xmm17, %xmm19 {k1} +vpminuw (%rax), %xmm17, %xmm19 {k1} +vpminuw %xmm16, %xmm17, %xmm19 {z}{k1} +vpminuw (%rax), %xmm17, %xmm19 {z}{k1} + +vpminuw %ymm16, %ymm17, %ymm19 +vpminuw (%rax), %ymm17, %ymm19 +vpminuw %ymm16, %ymm17, %ymm19 {k1} +vpminuw (%rax), %ymm17, %ymm19 {k1} +vpminuw %ymm16, %ymm17, %ymm19 {z}{k1} +vpminuw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmovb2m %xmm0, %k0 +vpmovw2m %xmm0, %k0 + +vpmovb2m %ymm0, %k0 +vpmovw2m %ymm0, %k0 + +vpmovm2b %k0, %xmm0 +vpmovm2w %k0, %xmm0 + +vpmovm2b %k0, %ymm0 +vpmovm2w %k0, %ymm0 + vpmovsxbw %xmm16, %xmm19 vpmovsxbw (%rax), %xmm19 vpmovsxbw %xmm16, %xmm19 {k1} @@ -313,6 +617,36 @@ vpmovsxbw (%rax), %ymm19 {k1} vpmovsxbw %xmm16, %ymm19 {z}{k1} vpmovsxbw (%rax), %ymm19 {z}{k1} +vpmovswb %xmm16, %xmm19 +vpmovswb %xmm16, (%rax) +vpmovswb %xmm16, %xmm19 {k1} +vpmovswb %xmm16, (%rax) {k1} + +vpmovswb %ymm16, %xmm19 +vpmovswb %ymm16, (%rax) +vpmovswb %ymm16, %xmm19 {k1} +vpmovswb %ymm16, (%rax) {k1} + +vpmovuswb %xmm16, %xmm19 +vpmovuswb %xmm16, (%rax) +vpmovuswb %xmm16, %xmm19 {k1} +vpmovuswb %xmm16, (%rax) {k1} + +vpmovuswb %ymm16, %xmm19 +vpmovuswb %ymm16, (%rax) +vpmovuswb %ymm16, %xmm19 {k1} +vpmovuswb %ymm16, (%rax) {k1} + +vpmovwb %xmm16, %xmm19 +vpmovwb %xmm16, (%rax) +vpmovwb %xmm16, %xmm19 {k1} +vpmovwb %xmm16, (%rax) {k1} + +vpmovwb %ymm16, %xmm19 +vpmovwb %ymm16, (%rax) +vpmovwb %ymm16, %xmm19 {k1} +vpmovwb %ymm16, (%rax) {k1} + vpmovzxbw %xmm16, %xmm19 vpmovzxbw (%rax), %xmm19 vpmovzxbw %xmm16, %xmm19 {k1} @@ -327,6 +661,68 @@ vpmovzxbw (%rax), %ymm19 {k1} vpmovzxbw %xmm16, %ymm19 {z}{k1} vpmovzxbw (%rax), %ymm19 {z}{k1} +vpmulhrsw %xmm16, %xmm17, %xmm19 +vpmulhrsw (%rax), %xmm17, %xmm19 +vpmulhrsw %xmm16, %xmm17, %xmm19 {k1} +vpmulhrsw (%rax), %xmm17, %xmm19 {k1} +vpmulhrsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmulhrsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmulhrsw %ymm16, %ymm17, %ymm19 +vpmulhrsw (%rax), %ymm17, %ymm19 +vpmulhrsw %ymm16, %ymm17, %ymm19 {k1} +vpmulhrsw (%rax), %ymm17, %ymm19 {k1} +vpmulhrsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmulhrsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmulhuw %xmm16, %xmm17, %xmm19 +vpmulhuw (%rax), %xmm17, %xmm19 +vpmulhuw %xmm16, %xmm17, %xmm19 {k1} +vpmulhuw (%rax), %xmm17, %xmm19 {k1} +vpmulhuw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmulhuw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmulhuw %ymm16, %ymm17, %ymm19 +vpmulhuw (%rax), %ymm17, %ymm19 +vpmulhuw %ymm16, %ymm17, %ymm19 {k1} +vpmulhuw (%rax), %ymm17, %ymm19 {k1} +vpmulhuw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmulhuw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmulhw %xmm16, %xmm17, %xmm19 +vpmulhw (%rax), %xmm17, %xmm19 +vpmulhw %xmm16, %xmm17, %xmm19 {k1} +vpmulhw (%rax), %xmm17, %xmm19 {k1} +vpmulhw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmulhw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmulhw %ymm16, %ymm17, %ymm19 +vpmulhw (%rax), %ymm17, %ymm19 +vpmulhw %ymm16, %ymm17, %ymm19 {k1} +vpmulhw (%rax), %ymm17, %ymm19 {k1} +vpmulhw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmulhw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmullw %xmm16, %xmm17, %xmm19 +vpmullw (%rax), %xmm17, %xmm19 +vpmullw %xmm16, %xmm17, %xmm19 {k1} +vpmullw (%rax), %xmm17, %xmm19 {k1} +vpmullw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmullw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmullw %ymm16, %ymm17, %ymm19 +vpmullw (%rax), %ymm17, %ymm19 +vpmullw %ymm16, %ymm17, %ymm19 {k1} +vpmullw (%rax), %ymm17, %ymm19 {k1} +vpmullw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmullw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsadbw %xmm16, %xmm17, %xmm19 +vpsadbw (%rax), %xmm17, %xmm19 + +vpsadbw %ymm16, %ymm17, %ymm19 +vpsadbw (%rax), %ymm17, %ymm19 + vpshufb %xmm16, %xmm17, %xmm19 vpshufb (%rax), %xmm17, %xmm19 vpshufb %xmm16, %xmm17, %xmm19 {k1} @@ -375,12 +771,138 @@ vpslldq $1, (%rax), %xmm19 vpslldq $1, %ymm16, %ymm19 vpslldq $1, (%rax), %ymm19 +vpsllvw %xmm16, %xmm17, %xmm19 +vpsllvw (%rax), %xmm17, %xmm19 +vpsllvw %xmm16, %xmm17, %xmm19 {k1} +vpsllvw (%rax), %xmm17, %xmm19 {k1} +vpsllvw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsllvw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsllvw %ymm16, %ymm17, %ymm19 +vpsllvw (%rax), %ymm17, %ymm19 +vpsllvw %ymm16, %ymm17, %ymm19 {k1} +vpsllvw (%rax), %ymm17, %ymm19 {k1} +vpsllvw %ymm16, %ymm17, %ymm19 {z}{k1} +vpsllvw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsllw $0, %xmm16, %xmm19 +vpsllw $0, (%rax), %xmm19 +vpsllw $0, %xmm16, %xmm19 {k1} +vpsllw $0, (%rax), %xmm19 {k1} +vpsllw $0, %xmm16, %xmm19 {z}{k1} +vpsllw $0, (%rax), %xmm19 {z}{k1} + +vpsllw $0, %ymm16, %ymm19 +vpsllw $0, (%rax), %ymm19 +vpsllw $0, %ymm16, %ymm19 {k1} +vpsllw $0, (%rax), %ymm19 {k1} +vpsllw $0, %ymm16, %ymm19 {z}{k1} +vpsllw $0, (%rax), %ymm19 {z}{k1} + +vpsllw %xmm16, %xmm17, %xmm19 +vpsllw (%rax), %xmm17, %xmm19 +vpsllw %xmm16, %xmm17, %xmm19 {k1} +vpsllw (%rax), %xmm17, %xmm19 {k1} +vpsllw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsllw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsllw %xmm16, %ymm17, %ymm19 +vpsllw (%rax), %ymm17, %ymm19 +vpsllw %xmm16, %ymm17, %ymm19 {k1} +vpsllw (%rax), %ymm17, %ymm19 {k1} +vpsllw %xmm16, %ymm17, %ymm19 {z}{k1} +vpsllw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsravw %xmm16, %xmm17, %xmm19 +vpsravw (%rax), %xmm17, %xmm19 +vpsravw %xmm16, %xmm17, %xmm19 {k1} +vpsravw (%rax), %xmm17, %xmm19 {k1} +vpsravw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsravw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsravw %ymm16, %ymm17, %ymm19 +vpsravw (%rax), %ymm17, %ymm19 +vpsravw %ymm16, %ymm17, %ymm19 {k1} +vpsravw (%rax), %ymm17, %ymm19 {k1} +vpsravw %ymm16, %ymm17, %ymm19 {z}{k1} +vpsravw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsraw $0, %xmm16, %xmm19 +vpsraw $0, (%rax), %xmm19 +vpsraw $0, %xmm16, %xmm19 {k1} +vpsraw $0, (%rax), %xmm19 {k1} +vpsraw $0, %xmm16, %xmm19 {z}{k1} +vpsraw $0, (%rax), %xmm19 {z}{k1} + +vpsraw $0, %ymm16, %ymm19 +vpsraw $0, (%rax), %ymm19 +vpsraw $0, %ymm16, %ymm19 {k1} +vpsraw $0, (%rax), %ymm19 {k1} +vpsraw $0, %ymm16, %ymm19 {z}{k1} +vpsraw $0, (%rax), %ymm19 {z}{k1} + +vpsraw %xmm16, %xmm17, %xmm19 +vpsraw (%rax), %xmm17, %xmm19 +vpsraw %xmm16, %xmm17, %xmm19 {k1} +vpsraw (%rax), %xmm17, %xmm19 {k1} +vpsraw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsraw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsraw %xmm16, %ymm17, %ymm19 +vpsraw (%rax), %ymm17, %ymm19 +vpsraw %xmm16, %ymm17, %ymm19 {k1} +vpsraw (%rax), %ymm17, %ymm19 {k1} +vpsraw %xmm16, %ymm17, %ymm19 {z}{k1} +vpsraw (%rax), %ymm17, %ymm19 {z}{k1} + vpsrldq $1, %xmm16, %xmm19 vpsrldq $1, (%rax), %xmm19 vpsrldq $1, %ymm16, %ymm19 vpsrldq $1, (%rax), %ymm19 +vpsrlvw %xmm16, %xmm17, %xmm19 +vpsrlvw (%rax), %xmm17, %xmm19 +vpsrlvw %xmm16, %xmm17, %xmm19 {k1} +vpsrlvw (%rax), %xmm17, %xmm19 {k1} +vpsrlvw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsrlvw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsrlvw %ymm16, %ymm17, %ymm19 +vpsrlvw (%rax), %ymm17, %ymm19 +vpsrlvw %ymm16, %ymm17, %ymm19 {k1} +vpsrlvw (%rax), %ymm17, %ymm19 {k1} +vpsrlvw %ymm16, %ymm17, %ymm19 {z}{k1} +vpsrlvw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsrlw $0, %xmm16, %xmm19 +vpsrlw $0, (%rax), %xmm19 +vpsrlw $0, %xmm16, %xmm19 {k1} +vpsrlw $0, (%rax), %xmm19 {k1} +vpsrlw $0, %xmm16, %xmm19 {z}{k1} +vpsrlw $0, (%rax), %xmm19 {z}{k1} + +vpsrlw $0, %ymm16, %ymm19 +vpsrlw $0, (%rax), %ymm19 +vpsrlw $0, %ymm16, %ymm19 {k1} +vpsrlw $0, (%rax), %ymm19 {k1} +vpsrlw $0, %ymm16, %ymm19 {z}{k1} +vpsrlw $0, (%rax), %ymm19 {z}{k1} + +vpsrlw %xmm16, %xmm17, %xmm19 +vpsrlw (%rax), %xmm17, %xmm19 +vpsrlw %xmm16, %xmm17, %xmm19 {k1} +vpsrlw (%rax), %xmm17, %xmm19 {k1} +vpsrlw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsrlw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsrlw %xmm16, %ymm17, %ymm19 +vpsrlw (%rax), %ymm17, %ymm19 +vpsrlw %xmm16, %ymm17, %ymm19 {k1} +vpsrlw (%rax), %ymm17, %ymm19 {k1} +vpsrlw %xmm16, %ymm17, %ymm19 {z}{k1} +vpsrlw (%rax), %ymm17, %ymm19 {z}{k1} + vpsubb %xmm16, %xmm17, %xmm19 vpsubb (%rax), %xmm17, %xmm19 vpsubb %xmm16, %xmm17, %xmm19 {k1} @@ -395,6 +917,62 @@ vpsubb (%rax), %ymm17, %ymm19 {k1} vpsubb %ymm16, %ymm17, %ymm19 {z}{k1} vpsubb (%rax), %ymm17, %ymm19 {z}{k1} +vpsubsb %xmm16, %xmm17, %xmm19 +vpsubsb (%rax), %xmm17, %xmm19 +vpsubsb %xmm16, %xmm17, %xmm19 {k1} +vpsubsb (%rax), %xmm17, %xmm19 {k1} +vpsubsb %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubsb (%rax), %xmm17, %xmm19 {z}{k1} + +vpsubsb %ymm16, %ymm17, %ymm19 +vpsubsb (%rax), %ymm17, %ymm19 +vpsubsb %ymm16, %ymm17, %ymm19 {k1} +vpsubsb (%rax), %ymm17, %ymm19 {k1} +vpsubsb %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubsb (%rax), %ymm17, %ymm19 {z}{k1} + +vpsubsw %xmm16, %xmm17, %xmm19 +vpsubsw (%rax), %xmm17, %xmm19 +vpsubsw %xmm16, %xmm17, %xmm19 {k1} +vpsubsw (%rax), %xmm17, %xmm19 {k1} +vpsubsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsubsw %ymm16, %ymm17, %ymm19 +vpsubsw (%rax), %ymm17, %ymm19 +vpsubsw %ymm16, %ymm17, %ymm19 {k1} +vpsubsw (%rax), %ymm17, %ymm19 {k1} +vpsubsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsubusb %xmm16, %xmm17, %xmm19 +vpsubusb (%rax), %xmm17, %xmm19 +vpsubusb %xmm16, %xmm17, %xmm19 {k1} +vpsubusb (%rax), %xmm17, %xmm19 {k1} +vpsubusb %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubusb (%rax), %xmm17, %xmm19 {z}{k1} + +vpsubusb %ymm16, %ymm17, %ymm19 +vpsubusb (%rax), %ymm17, %ymm19 +vpsubusb %ymm16, %ymm17, %ymm19 {k1} +vpsubusb (%rax), %ymm17, %ymm19 {k1} +vpsubusb %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubusb (%rax), %ymm17, %ymm19 {z}{k1} + +vpsubusw %xmm16, %xmm17, %xmm19 +vpsubusw (%rax), %xmm17, %xmm19 +vpsubusw %xmm16, %xmm17, %xmm19 {k1} +vpsubusw (%rax), %xmm17, %xmm19 {k1} +vpsubusw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubusw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsubusw %ymm16, %ymm17, %ymm19 +vpsubusw (%rax), %ymm17, %ymm19 +vpsubusw %ymm16, %ymm17, %ymm19 {k1} +vpsubusw (%rax), %ymm17, %ymm19 {k1} +vpsubusw %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubusw (%rax), %ymm17, %ymm19 {z}{k1} + vpsubw %xmm16, %xmm17, %xmm19 vpsubw (%rax), %xmm17, %xmm19 vpsubw %xmm16, %xmm17, %xmm19 {k1} @@ -505,18 +1083,6 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {k1} vpunpcklwd %ymm16, %ymm17, %ymm19 {z}{k1} vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1} -vpmovm2b %k0, %xmm0 -vpmovm2w %k0, %xmm0 - -vpmovm2b %k0, %ymm0 -vpmovm2w %k0, %ymm0 - -vpmovb2m %xmm0, %k0 -vpmovw2m %xmm0, %k0 - -vpmovb2m %ymm0, %k0 -vpmovw2m %ymm0, %k0 - # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -654,6 +1220,54 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: 2 8 0.50 * vpaddb (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: 1 1 0.33 vpaddb %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpaddb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpaddsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpaddsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpaddsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpaddsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddusb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddusb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpaddusb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddusb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddusb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddusb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddusb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddusb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpaddusb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddusb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddusb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddusb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddusw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddusw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpaddusw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddusw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddusw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddusw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddusw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddusw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpaddusw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddusw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddusw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddusw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 0.33 vpaddw %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 7 0.50 * vpaddw (%rax), %xmm17, %xmm19 # CHECK-NEXT: 1 1 0.33 vpaddw %xmm16, %xmm17, %xmm19 {%k1} @@ -678,30 +1292,90 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpalignr $1, %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpavgb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpavgb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpavgb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpavgb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpavgb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpavgb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpavgb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpavgb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpavgb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpavgb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpavgb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpavgb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpavgw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpavgw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpavgw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpavgw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpavgw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpavgw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpavgw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpavgw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpavgw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpavgw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpavgw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpavgw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpblendmb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpblendmb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.33 vpblendmb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpblendmb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpblendmb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpblendmb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpblendmb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpblendmb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.33 vpblendmb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpblendmb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpblendmb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpblendmb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpblendmw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpblendmw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.33 vpblendmw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpblendmw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpblendmw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpblendmw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpblendmw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpblendmw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.33 vpblendmw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpblendmw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpblendmw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpblendmw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19 # CHECK-NEXT: 2 7 1.00 * vpbroadcastb (%rax), %xmm19 +# CHECK-NEXT: 1 1 1.00 vpbroadcastb %eax, %xmm19 # CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 7 1.00 * vpbroadcastb (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpbroadcastb %eax, %xmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 7 1.00 * vpbroadcastb (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpbroadcastb %eax, %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19 +# CHECK-NEXT: 1 3 1.00 vpbroadcastb %eax, %ymm19 # CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vpbroadcastb %eax, %ymm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vpbroadcastb %eax, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19 # CHECK-NEXT: 2 7 1.00 * vpbroadcastw (%rax), %xmm19 +# CHECK-NEXT: 1 1 1.00 vpbroadcastw %eax, %xmm19 # CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 7 1.00 * vpbroadcastw (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpbroadcastw %eax, %xmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 7 1.00 * vpbroadcastw (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpbroadcastw %eax, %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19 +# CHECK-NEXT: 1 3 1.00 vpbroadcastw %eax, %ymm19 # CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vpbroadcastw %eax, %ymm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vpbroadcastw %eax, %ymm19 {%k1} {z} # CHECK-NEXT: 1 4 1.00 vpcmpeqb %xmm0, %xmm1, %k2 # CHECK-NEXT: 2 10 1.00 * vpcmpeqb (%rax), %xmm1, %k2 # CHECK-NEXT: 1 4 1.00 vpcmpeqb %xmm0, %xmm1, %k2 {%k3} @@ -778,6 +1452,158 @@ 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: 3 7 2.00 vpermi2w %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 4 13 2.00 * vpermi2w (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 3 7 2.00 vpermi2w %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 4 13 2.00 * vpermi2w (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 3 7 2.00 vpermi2w %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 4 13 2.00 * vpermi2w (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 7 2.00 vpermi2w %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 4 14 2.00 * vpermi2w (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 3 7 2.00 vpermi2w %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 4 14 2.00 * vpermi2w (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 3 7 2.00 vpermi2w %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 4 14 2.00 * vpermi2w (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 3 7 2.00 vpermt2w %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 4 13 2.00 * vpermt2w (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 3 7 2.00 vpermt2w %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 4 13 2.00 * vpermt2w (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 3 7 2.00 vpermt2w %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 4 13 2.00 * vpermt2w (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 7 2.00 vpermt2w %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 4 14 2.00 * vpermt2w (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 3 7 2.00 vpermt2w %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 4 14 2.00 * vpermt2w (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 3 7 2.00 vpermt2w %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 4 14 2.00 * vpermt2w (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 0.50 * vpmaddubsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vpmaddubsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vpmaddubsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 0.50 * vpmaddubsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmaddubsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmaddubsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmaddwd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 0.50 * vpmaddwd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 0.50 vpmaddwd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vpmaddwd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmaddwd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vpmaddwd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmaddwd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 0.50 * vpmaddwd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 0.50 vpmaddwd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmaddwd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmaddwd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmaddwd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmaxsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmaxsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmaxsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpmaxsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmaxsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmaxsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmaxsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpmaxsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxub %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmaxub (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxub %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmaxub (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxub %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmaxub (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxub %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxub (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpmaxub %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxub (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxub %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxub (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmaxuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmaxuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmaxuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpmaxuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpminsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpminsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpminsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpminsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpminsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpminsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpminsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpminsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpminsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpminsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpminsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpminsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminub %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpminub (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpminub %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpminub (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminub %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpminub (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminub %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpminub (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpminub %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminub (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminub %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminub (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpminuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpminuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpminuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpminuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpminuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpminuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovb2m %xmm0, %k0 +# CHECK-NEXT: 1 1 1.00 vpmovw2m %xmm0, %k0 +# CHECK-NEXT: 1 1 1.00 vpmovb2m %ymm0, %k0 +# CHECK-NEXT: 1 1 1.00 vpmovw2m %ymm0, %k0 +# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %xmm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %xmm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %ymm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %ymm0 # 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} @@ -790,6 +1616,30 @@ 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: 2 4 2.00 vpmovswb %xmm16, %xmm19 +# CHECK-NEXT: 4 5 2.00 * vpmovswb %xmm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovswb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovswb %xmm16, (%rax) {%k1} +# CHECK-NEXT: 2 4 2.00 vpmovswb %ymm16, %xmm19 +# CHECK-NEXT: 4 5 2.00 * vpmovswb %ymm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovswb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovswb %ymm16, (%rax) {%k1} +# CHECK-NEXT: 2 4 2.00 vpmovuswb %xmm16, %xmm19 +# CHECK-NEXT: 4 5 2.00 * vpmovuswb %xmm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovuswb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovuswb %xmm16, (%rax) {%k1} +# CHECK-NEXT: 2 4 2.00 vpmovuswb %ymm16, %xmm19 +# CHECK-NEXT: 4 5 2.00 * vpmovuswb %ymm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovuswb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovuswb %ymm16, (%rax) {%k1} +# CHECK-NEXT: 2 4 2.00 vpmovwb %xmm16, %xmm19 +# CHECK-NEXT: 4 5 2.00 * vpmovwb %xmm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovwb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovwb %xmm16, (%rax) {%k1} +# CHECK-NEXT: 2 4 2.00 vpmovwb %ymm16, %xmm19 +# CHECK-NEXT: 4 5 2.00 * vpmovwb %ymm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovwb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovwb %ymm16, (%rax) {%k1} # 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} @@ -802,6 +1652,58 @@ vpmovw2m %ymm0, %k0 # 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 5 0.50 vpmulhrsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 0.50 * vpmulhrsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vpmulhrsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vpmulhrsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 0.50 * vpmulhrsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmulhrsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmulhrsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 0.50 * vpmulhuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 0.50 vpmulhuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vpmulhuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vpmulhuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 0.50 * vpmulhuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 0.50 vpmulhuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmulhuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmulhuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 0.50 * vpmulhw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 0.50 vpmulhw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vpmulhw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vpmulhw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 0.50 * vpmulhw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 0.50 vpmulhw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmulhw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmulhw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmullw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 0.50 * vpmullw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 0.50 vpmullw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vpmullw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmullw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vpmullw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmullw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 0.50 * vpmullw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 0.50 vpmullw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmullw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmullw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmullw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vpsadbw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 9 1.00 * vpsadbw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 3 1.00 vpsadbw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 10 1.00 * vpsadbw (%rax), %ymm17, %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} @@ -842,10 +1744,118 @@ vpmovw2m %ymm0, %k0 # 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 vpsllvw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsllvw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsllvw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsllvw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsllvw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsllvw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsllvw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsllvw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsllvw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsllvw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsllvw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsllvw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsllw $0, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsllw $0, (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsllw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsllw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsllw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsllw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsllw $0, %ymm16, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsllw $0, (%rax), %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsllw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsllw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsllw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsllw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 2 1.00 vpsllw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsllw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 2 1.00 vpsllw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsllw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 2 1.00 vpsllw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsllw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsllw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsllw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsllw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsravw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsravw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsravw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsravw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsravw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsravw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsravw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsravw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsravw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsravw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsravw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsravw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsraw $0, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsraw $0, (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsraw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsraw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsraw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsraw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsraw $0, %ymm16, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsraw $0, (%rax), %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsraw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsraw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsraw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsraw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 2 1.00 vpsraw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsraw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 2 1.00 vpsraw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsraw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 2 1.00 vpsraw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsraw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsraw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsraw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsraw (%rax), %ymm17, %ymm19 {%k1} {z} # 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.50 vpsrlvw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsrlvw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsrlvw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsrlvw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsrlvw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsrlvw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsrlvw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsrlvw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsrlvw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsrlvw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsrlvw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsrlvw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsrlw $0, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsrlw $0, (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsrlw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsrlw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsrlw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsrlw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsrlw $0, %ymm16, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsrlw $0, (%rax), %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsrlw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsrlw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsrlw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsrlw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 2 1.00 vpsrlw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsrlw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 2 1.00 vpsrlw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsrlw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 2 1.00 vpsrlw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsrlw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsrlw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsrlw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsrlw (%rax), %ymm17, %ymm19 {%k1} {z} # 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} @@ -858,6 +1868,54 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: 1 1 0.33 vpsubb %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsubsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsubsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsubsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsubsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubusb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubusb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsubusb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubusb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubusb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubusb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubusb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubusb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsubusb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubusb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubusb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubusb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubusw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubusw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsubusw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubusw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubusw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubusw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubusw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubusw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsubusw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubusw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubusw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubusw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 0.33 vpsubw %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 7 0.50 * vpsubw (%rax), %xmm17, %xmm19 # CHECK-NEXT: 1 1 0.33 vpsubw %xmm16, %xmm17, %xmm19 {%k1} @@ -950,14 +2008,6 @@ vpmovw2m %ymm0, %k0 # 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.33 vpmovm2b %k0, %xmm0 -# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %xmm0 -# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %ymm0 -# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %ymm0 -# CHECK-NEXT: 1 1 1.00 vpmovb2m %xmm0, %k0 -# CHECK-NEXT: 1 1 1.00 vpmovw2m %xmm0, %k0 -# CHECK-NEXT: 1 1 1.00 vpmovb2m %ymm0, %k0 -# CHECK-NEXT: 1 1 1.00 vpmovw2m %ymm0, %k0 # CHECK: Resources: # CHECK-NEXT: [0] - ICXDivider @@ -975,7 +2025,7 @@ vpmovw2m %ymm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: - - 41.33 89.33 106.67 106.67 8.00 305.33 - 2.67 - - +# CHECK-NEXT: - - 255.33 303.33 222.67 222.67 20.00 451.33 - 6.67 - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -1107,6 +2157,54 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpaddb (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpaddb %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpaddb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddusb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddusb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddusb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddusb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddusb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddusb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddusb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddusb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddusb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddusb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddusb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddusb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddusw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddusw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddusw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddusw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddusw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddusw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddusw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddusw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddusw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddusw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpaddusw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpaddusw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpaddw %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpaddw (%rax), %xmm17, %xmm19 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpaddw %xmm16, %xmm17, %xmm19 {%k1} @@ -1131,30 +2229,90 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpalignr $1, %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpavgb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpavgb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpavgb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpavgb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpavgb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpavgb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpavgb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpavgb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpavgb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpavgb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpavgb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpavgb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpavgw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpavgw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpavgw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpavgw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpavgw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpavgw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpavgw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpavgw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpavgw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpavgw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpavgw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpavgw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpblendmb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpblendmb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpblendmb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpblendmb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpblendmb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpblendmb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpblendmw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpblendmw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpblendmw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpblendmw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpblendmw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpblendmw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpblendmw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %xmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %xmm19 +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %eax, %xmm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %xmm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %eax, %xmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %eax, %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %ymm19 +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %eax, %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %eax, %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastb (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastb %eax, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %xmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %xmm19 +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %eax, %xmm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %xmm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %eax, %xmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %eax, %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %ymm19 +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %eax, %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %eax, %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpbroadcastw (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpbroadcastw %eax, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpeqb %xmm0, %xmm1, %k2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpcmpeqb (%rax), %xmm1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - - - vpcmpeqb %xmm0, %xmm1, %k2 {%k3} @@ -1231,6 +2389,158 @@ vpmovw2m %ymm0, %k0 # 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: - - 0.33 0.33 - - - 2.33 - - - - vpermi2w %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermi2w (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermi2w %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermi2w (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermi2w %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermi2w (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermi2w %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermi2w (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermi2w %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermi2w (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermi2w %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermi2w (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermt2w %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermt2w (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermt2w %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermt2w (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermt2w %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermt2w (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermt2w %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermt2w (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermt2w %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermt2w (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - - - vpermt2w %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - - - vpermt2w (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddubsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaddubsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddubsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaddubsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddubsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaddubsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddubsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaddubsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddubsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaddubsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddubsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaddubsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddwd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaddwd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddwd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaddwd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddwd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaddwd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddwd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaddwd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddwd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaddwd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaddwd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaddwd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxub %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxub (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxub %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxub (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxub %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxub (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxub %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxub (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxub %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxub (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxub %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxub (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmaxuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmaxuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminub %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminub (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminub %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminub (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminub %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminub (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminub %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminub (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminub %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminub (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminub %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminub (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpminuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpminuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovb2m %xmm0, %k0 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovw2m %xmm0, %k0 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovb2m %ymm0, %k0 +# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovw2m %ymm0, %k0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpmovm2b %k0, %xmm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpmovm2w %k0, %xmm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpmovm2b %k0, %ymm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpmovm2w %k0, %ymm0 # 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} @@ -1243,6 +2553,30 @@ vpmovw2m %ymm0, %k0 # 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: - - - - - - - 2.00 - - - - vpmovswb %xmm16, %xmm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovswb %xmm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovswb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovswb %xmm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovswb %ymm16, %xmm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovswb %ymm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovswb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovswb %ymm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovuswb %xmm16, %xmm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovuswb %xmm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovuswb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovuswb %xmm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovuswb %ymm16, %xmm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovuswb %ymm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovuswb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovuswb %ymm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovwb %xmm16, %xmm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovwb %xmm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovwb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovwb %xmm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovwb %ymm16, %xmm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovwb %ymm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - - - vpmovwb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 - - vpmovwb %ymm16, (%rax) {%k1} # 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} @@ -1255,6 +2589,58 @@ vpmovw2m %ymm0, %k0 # 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: - - 0.50 0.50 - - - - - - - - vpmulhrsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhrsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhrsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhrsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhrsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhrsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhrsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhrsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhrsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhrsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhrsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhrsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmulhw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmulhw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmullw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmullw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmullw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmullw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmullw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmullw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmullw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmullw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmullw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmullw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpmullw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpmullw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsadbw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpsadbw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - - - - - 1.00 - - - - vpsadbw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpsadbw (%rax), %ymm17, %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} @@ -1295,10 +2681,118 @@ vpmovw2m %ymm0, %k0 # 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 - - - - - - - - vpsllvw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllvw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllvw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllvw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllvw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllvw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllvw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllvw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllvw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllvw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllvw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllvw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllw $0, %xmm16, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw $0, (%rax), %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllw $0, %ymm16, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw $0, (%rax), %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsllw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsllw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsllw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsravw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsravw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsravw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsravw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsravw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsravw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsravw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsravw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsravw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsravw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsravw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsravw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsraw $0, %xmm16, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw $0, (%rax), %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsraw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsraw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsraw $0, %ymm16, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw $0, (%rax), %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsraw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsraw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsraw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsraw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsraw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsraw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsraw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsraw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsraw (%rax), %ymm17, %ymm19 {%k1} {z} # 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.50 0.50 - - - - - - - - vpsrlvw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlvw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlvw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlvw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlvw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlvw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlvw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlvw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlvw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlvw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlvw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlvw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlw $0, %xmm16, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw $0, (%rax), %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlw $0, %ymm16, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw $0, (%rax), %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsrlw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - - - vpsrlw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsrlw (%rax), %ymm17, %ymm19 {%k1} {z} # 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} @@ -1311,6 +2805,54 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubb (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubb %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubusb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubusb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubusb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubusb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubusb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubusb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubusb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubusb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubusb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubusb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubusb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubusb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubusw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubusw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubusw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubusw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubusw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubusw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubusw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubusw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubusw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubusw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - - - vpsubusw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - - - vpsubusw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubw %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vpsubw (%rax), %xmm17, %xmm19 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpsubw %xmm16, %xmm17, %xmm19 {%k1} @@ -1403,11 +2945,3 @@ vpmovw2m %ymm0, %k0 # 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.33 0.33 - - - 0.33 - - - - vpmovm2b %k0, %xmm0 -# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpmovm2w %k0, %xmm0 -# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpmovm2b %k0, %ymm0 -# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vpmovm2w %k0, %ymm0 -# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovb2m %xmm0, %k0 -# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovw2m %xmm0, %k0 -# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovb2m %ymm0, %k0 -# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovw2m %ymm0, %k0 diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s index 84cbcef..ff22174 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bw.s @@ -3,23 +3,52 @@ kaddd %k0, %k1, %k2 kaddq %k0, %k1, %k2 + kandd %k0, %k1, %k2 kandq %k0, %k1, %k2 + kandnd %k0, %k1, %k2 kandnq %k0, %k1, %k2 + +kmovd %k0, %k2 +kmovd (%rax), %k2 +kmovd %k0, (%rax) +kmovd %eax, %k2 +kmovd %k0, %eax + +kmovq %k0, %k2 +kmovq (%rax), %k2 +kmovq %k0, (%rax) +kmovq %rax, %k2 +kmovq %k0, %rax + +knotd %k0, %k2 +knotq %k0, %k2 + kord %k0, %k1, %k2 korq %k0, %k1, %k2 -kxnord %k0, %k1, %k2 -kxnorq %k0, %k1, %k2 -kxord %k0, %k1, %k2 -kxorq %k0, %k1, %k2 + +kortestd %k0, %k2 +kortestq %k0, %k2 + kshiftld $2, %k1, %k2 kshiftlq $2, %k1, %k2 + kshiftrd $2, %k1, %k2 kshiftrq $2, %k1, %k2 + +ktestd %k0, %k2 +ktestq %k0, %k2 + kunpckdq %k0, %k1, %k2 kunpckwd %k0, %k1, %k2 +kxnord %k0, %k1, %k2 +kxnorq %k0, %k1, %k2 + +kxord %k0, %k1, %k2 +kxorq %k0, %k1, %k2 + vdbpsadbw $0, %zmm16, %zmm17, %zmm19 vdbpsadbw $0, (%rax), %zmm17, %zmm19 vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {k1} @@ -94,6 +123,34 @@ vpaddb (%rax), %zmm17, %zmm19 {k1} vpaddb %zmm16, %zmm17, %zmm19 {z}{k1} vpaddb (%rax), %zmm17, %zmm19 {z}{k1} +vpaddsb %zmm16, %zmm17, %zmm19 +vpaddsb (%rax), %zmm17, %zmm19 +vpaddsb %zmm16, %zmm17, %zmm19 {k1} +vpaddsb (%rax), %zmm17, %zmm19 {k1} +vpaddsb %zmm16, %zmm17, %zmm19 {z}{k1} +vpaddsb (%rax), %zmm17, %zmm19 {z}{k1} + +vpaddsw %zmm16, %zmm17, %zmm19 +vpaddsw (%rax), %zmm17, %zmm19 +vpaddsw %zmm16, %zmm17, %zmm19 {k1} +vpaddsw (%rax), %zmm17, %zmm19 {k1} +vpaddsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpaddsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpaddusb %zmm16, %zmm17, %zmm19 +vpaddusb (%rax), %zmm17, %zmm19 +vpaddusb %zmm16, %zmm17, %zmm19 {k1} +vpaddusb (%rax), %zmm17, %zmm19 {k1} +vpaddusb %zmm16, %zmm17, %zmm19 {z}{k1} +vpaddusb (%rax), %zmm17, %zmm19 {z}{k1} + +vpaddusw %zmm16, %zmm17, %zmm19 +vpaddusw (%rax), %zmm17, %zmm19 +vpaddusw %zmm16, %zmm17, %zmm19 {k1} +vpaddusw (%rax), %zmm17, %zmm19 {k1} +vpaddusw %zmm16, %zmm17, %zmm19 {z}{k1} +vpaddusw (%rax), %zmm17, %zmm19 {z}{k1} + vpaddw %zmm16, %zmm17, %zmm19 vpaddw (%rax), %zmm17, %zmm19 vpaddw %zmm16, %zmm17, %zmm19 {k1} @@ -108,19 +165,53 @@ vpalignr $1, (%rax), %zmm17, %zmm19 {k1} vpalignr $1, %zmm16, %zmm17, %zmm19 {z}{k1} vpalignr $1, (%rax), %zmm17, %zmm19 {z}{k1} +vpavgb %zmm16, %zmm17, %zmm19 +vpavgb (%rax), %zmm17, %zmm19 +vpavgb %zmm16, %zmm17, %zmm19 {k1} +vpavgb (%rax), %zmm17, %zmm19 {k1} +vpavgb %zmm16, %zmm17, %zmm19 {z}{k1} +vpavgb (%rax), %zmm17, %zmm19 {z}{k1} + +vpavgw %zmm16, %zmm17, %zmm19 +vpavgw (%rax), %zmm17, %zmm19 +vpavgw %zmm16, %zmm17, %zmm19 {k1} +vpavgw (%rax), %zmm17, %zmm19 {k1} +vpavgw %zmm16, %zmm17, %zmm19 {z}{k1} +vpavgw (%rax), %zmm17, %zmm19 {z}{k1} + +vpblendmb %zmm16, %zmm17, %zmm19 +vpblendmb (%rax), %zmm17, %zmm19 +vpblendmb %zmm16, %zmm17, %zmm19 {k1} +vpblendmb (%rax), %zmm17, %zmm19 {k1} +vpblendmb %zmm16, %zmm17, %zmm19 {z}{k1} +vpblendmb (%rax), %zmm17, %zmm19 {z}{k1} + +vpblendmw %zmm16, %zmm17, %zmm19 +vpblendmw (%rax), %zmm17, %zmm19 +vpblendmw %zmm16, %zmm17, %zmm19 {k1} +vpblendmw (%rax), %zmm17, %zmm19 {k1} +vpblendmw %zmm16, %zmm17, %zmm19 {z}{k1} +vpblendmw (%rax), %zmm17, %zmm19 {z}{k1} + vpbroadcastb %xmm16, %zmm19 vpbroadcastb (%rax), %zmm19 +vpbroadcastb %eax, %zmm19 vpbroadcastb %xmm16, %zmm19 {k1} vpbroadcastb (%rax), %zmm19 {k1} +vpbroadcastb %eax, %zmm19 {k1} vpbroadcastb %xmm16, %zmm19 {z}{k1} vpbroadcastb (%rax), %zmm19 {z}{k1} +vpbroadcastb %eax, %zmm19 {z}{k1} vpbroadcastw %xmm16, %zmm19 vpbroadcastw (%rax), %zmm19 +vpbroadcastw %eax, %zmm19 vpbroadcastw %xmm16, %zmm19 {k1} vpbroadcastw (%rax), %zmm19 {k1} +vpbroadcastw %eax, %zmm19 {k1} vpbroadcastw %xmm16, %zmm19 {z}{k1} vpbroadcastw (%rax), %zmm19 {z}{k1} +vpbroadcastw %eax, %zmm19 {z}{k1} vpcmpb $0, %zmm0, %zmm1, %k2 vpcmpb $0, (%rax), %zmm1, %k2 @@ -162,6 +253,18 @@ vpcmpw $0, (%rax), %zmm1, %k2 vpcmpw $0, %zmm0, %zmm1, %k2 {k3} vpcmpw $0, (%rax), %zmm1, %k2 {k3} +vpextrb $0, %xmm16, %rax +vpextrb $0, %xmm16, (%rax) + +vpextrw $0, %xmm16, %rax +vpextrw $0, %xmm16, (%rax) + +vpinsrb $0, %rax, %xmm16, %xmm19 +vpinsrb $0, (%rax), %xmm16, %xmm19 + +vpinsrw $0, %rax, %xmm16, %xmm19 +vpinsrw $0, (%rax), %xmm16, %xmm19 + vpermw %zmm16, %zmm17, %zmm19 vpermw (%rax), %zmm17, %zmm19 vpermw %zmm16, %zmm17, %zmm19 {k1} @@ -169,6 +272,96 @@ vpermw (%rax), %zmm17, %zmm19 {k1} vpermw %zmm16, %zmm17, %zmm19 {z}{k1} vpermw (%rax), %zmm17, %zmm19 {z}{k1} +vpermi2w %zmm16, %zmm17, %zmm19 +vpermi2w (%rax), %zmm17, %zmm19 +vpermi2w %zmm16, %zmm17, %zmm19 {k1} +vpermi2w (%rax), %zmm17, %zmm19 {k1} +vpermi2w %zmm16, %zmm17, %zmm19 {z}{k1} +vpermi2w (%rax), %zmm17, %zmm19 {z}{k1} + +vpermt2w %zmm16, %zmm17, %zmm19 +vpermt2w (%rax), %zmm17, %zmm19 +vpermt2w %zmm16, %zmm17, %zmm19 {k1} +vpermt2w (%rax), %zmm17, %zmm19 {k1} +vpermt2w %zmm16, %zmm17, %zmm19 {z}{k1} +vpermt2w (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaddubsw %zmm16, %zmm17, %zmm19 +vpmaddubsw (%rax), %zmm17, %zmm19 +vpmaddubsw %zmm16, %zmm17, %zmm19 {k1} +vpmaddubsw (%rax), %zmm17, %zmm19 {k1} +vpmaddubsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaddubsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaddwd %zmm16, %zmm17, %zmm19 +vpmaddwd (%rax), %zmm17, %zmm19 +vpmaddwd %zmm16, %zmm17, %zmm19 {k1} +vpmaddwd (%rax), %zmm17, %zmm19 {k1} +vpmaddwd %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaddwd (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaxsb %zmm16, %zmm17, %zmm19 +vpmaxsb (%rax), %zmm17, %zmm19 +vpmaxsb %zmm16, %zmm17, %zmm19 {k1} +vpmaxsb (%rax), %zmm17, %zmm19 {k1} +vpmaxsb %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaxsb (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaxsw %zmm16, %zmm17, %zmm19 +vpmaxsw (%rax), %zmm17, %zmm19 +vpmaxsw %zmm16, %zmm17, %zmm19 {k1} +vpmaxsw (%rax), %zmm17, %zmm19 {k1} +vpmaxsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaxsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaxub %zmm16, %zmm17, %zmm19 +vpmaxub (%rax), %zmm17, %zmm19 +vpmaxub %zmm16, %zmm17, %zmm19 {k1} +vpmaxub (%rax), %zmm17, %zmm19 {k1} +vpmaxub %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaxub (%rax), %zmm17, %zmm19 {z}{k1} + +vpmaxuw %zmm16, %zmm17, %zmm19 +vpmaxuw (%rax), %zmm17, %zmm19 +vpmaxuw %zmm16, %zmm17, %zmm19 {k1} +vpmaxuw (%rax), %zmm17, %zmm19 {k1} +vpmaxuw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmaxuw (%rax), %zmm17, %zmm19 {z}{k1} + +vpminsb %zmm16, %zmm17, %zmm19 +vpminsb (%rax), %zmm17, %zmm19 +vpminsb %zmm16, %zmm17, %zmm19 {k1} +vpminsb (%rax), %zmm17, %zmm19 {k1} +vpminsb %zmm16, %zmm17, %zmm19 {z}{k1} +vpminsb (%rax), %zmm17, %zmm19 {z}{k1} + +vpminsw %zmm16, %zmm17, %zmm19 +vpminsw (%rax), %zmm17, %zmm19 +vpminsw %zmm16, %zmm17, %zmm19 {k1} +vpminsw (%rax), %zmm17, %zmm19 {k1} +vpminsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpminsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpminub %zmm16, %zmm17, %zmm19 +vpminub (%rax), %zmm17, %zmm19 +vpminub %zmm16, %zmm17, %zmm19 {k1} +vpminub (%rax), %zmm17, %zmm19 {k1} +vpminub %zmm16, %zmm17, %zmm19 {z}{k1} +vpminub (%rax), %zmm17, %zmm19 {z}{k1} + +vpminuw %zmm16, %zmm17, %zmm19 +vpminuw (%rax), %zmm17, %zmm19 +vpminuw %zmm16, %zmm17, %zmm19 {k1} +vpminuw (%rax), %zmm17, %zmm19 {k1} +vpminuw %zmm16, %zmm17, %zmm19 {z}{k1} +vpminuw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmovb2m %zmm0, %k0 +vpmovw2m %zmm0, %k0 + +vpmovm2b %k0, %zmm0 +vpmovm2w %k0, %zmm0 + vpmovsxbw %ymm16, %zmm19 vpmovsxbw (%rax), %zmm19 vpmovsxbw %ymm16, %zmm19 {k1} @@ -176,6 +369,21 @@ vpmovsxbw (%rax), %zmm19 {k1} vpmovsxbw %ymm16, %zmm19 {z}{k1} vpmovsxbw (%rax), %zmm19 {z}{k1} +vpmovswb %zmm16, %ymm19 +vpmovswb %zmm16, (%rax) +vpmovswb %zmm16, %ymm19 {k1} +vpmovswb %zmm16, (%rax) {k1} + +vpmovuswb %zmm16, %ymm19 +vpmovuswb %zmm16, (%rax) +vpmovuswb %zmm16, %ymm19 {k1} +vpmovuswb %zmm16, (%rax) {k1} + +vpmovwb %zmm16, %ymm19 +vpmovwb %zmm16, (%rax) +vpmovwb %zmm16, %ymm19 {k1} +vpmovwb %zmm16, (%rax) {k1} + vpmovzxbw %ymm16, %zmm19 vpmovzxbw (%rax), %zmm19 vpmovzxbw %ymm16, %zmm19 {k1} @@ -183,6 +391,37 @@ vpmovzxbw (%rax), %zmm19 {k1} vpmovzxbw %ymm16, %zmm19 {z}{k1} vpmovzxbw (%rax), %zmm19 {z}{k1} +vpmulhrsw %zmm16, %zmm17, %zmm19 +vpmulhrsw (%rax), %zmm17, %zmm19 +vpmulhrsw %zmm16, %zmm17, %zmm19 {k1} +vpmulhrsw (%rax), %zmm17, %zmm19 {k1} +vpmulhrsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmulhrsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmulhuw %zmm16, %zmm17, %zmm19 +vpmulhuw (%rax), %zmm17, %zmm19 +vpmulhuw %zmm16, %zmm17, %zmm19 {k1} +vpmulhuw (%rax), %zmm17, %zmm19 {k1} +vpmulhuw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmulhuw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmulhw %zmm16, %zmm17, %zmm19 +vpmulhw (%rax), %zmm17, %zmm19 +vpmulhw %zmm16, %zmm17, %zmm19 {k1} +vpmulhw (%rax), %zmm17, %zmm19 {k1} +vpmulhw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmulhw (%rax), %zmm17, %zmm19 {z}{k1} + +vpmullw %zmm16, %zmm17, %zmm19 +vpmullw (%rax), %zmm17, %zmm19 +vpmullw %zmm16, %zmm17, %zmm19 {k1} +vpmullw (%rax), %zmm17, %zmm19 {k1} +vpmullw %zmm16, %zmm17, %zmm19 {z}{k1} +vpmullw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsadbw %zmm16, %zmm17, %zmm19 +vpsadbw (%rax), %zmm17, %zmm19 + vpshufb %zmm16, %zmm17, %zmm19 vpshufb (%rax), %zmm17, %zmm19 vpshufb %zmm16, %zmm17, %zmm19 {k1} @@ -207,9 +446,72 @@ vpshuflw $0, (%rax), %zmm19 {z}{k1} vpslldq $1, %zmm16, %zmm19 vpslldq $1, (%rax), %zmm19 +vpsllvw %zmm16, %zmm17, %zmm19 +vpsllvw (%rax), %zmm17, %zmm19 +vpsllvw %zmm16, %zmm17, %zmm19 {k1} +vpsllvw (%rax), %zmm17, %zmm19 {k1} +vpsllvw %zmm16, %zmm17, %zmm19 {z}{k1} +vpsllvw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsllw $0, %zmm16, %zmm19 +vpsllw $0, (%rax), %zmm19 +vpsllw $0, %zmm16, %zmm19 {k1} +vpsllw $0, (%rax), %zmm19 {k1} +vpsllw $0, %zmm16, %zmm19 {z}{k1} +vpsllw $0, (%rax), %zmm19 {z}{k1} + +vpsllw %xmm16, %zmm17, %zmm19 +vpsllw (%rax), %zmm17, %zmm19 +vpsllw %xmm16, %zmm17, %zmm19 {k1} +vpsllw (%rax), %zmm17, %zmm19 {k1} +vpsllw %xmm16, %zmm17, %zmm19 {z}{k1} +vpsllw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsravw %zmm16, %zmm17, %zmm19 +vpsravw (%rax), %zmm17, %zmm19 +vpsravw %zmm16, %zmm17, %zmm19 {k1} +vpsravw (%rax), %zmm17, %zmm19 {k1} +vpsravw %zmm16, %zmm17, %zmm19 {z}{k1} +vpsravw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsraw $0, %zmm16, %zmm19 +vpsraw $0, (%rax), %zmm19 +vpsraw $0, %zmm16, %zmm19 {k1} +vpsraw $0, (%rax), %zmm19 {k1} +vpsraw $0, %zmm16, %zmm19 {z}{k1} +vpsraw $0, (%rax), %zmm19 {z}{k1} + +vpsraw %xmm16, %zmm17, %zmm19 +vpsraw (%rax), %zmm17, %zmm19 +vpsraw %xmm16, %zmm17, %zmm19 {k1} +vpsraw (%rax), %zmm17, %zmm19 {k1} +vpsraw %xmm16, %zmm17, %zmm19 {z}{k1} +vpsraw (%rax), %zmm17, %zmm19 {z}{k1} + vpsrldq $1, %zmm16, %zmm19 vpsrldq $1, (%rax), %zmm19 +vpsrlvw %zmm16, %zmm17, %zmm19 +vpsrlvw (%rax), %zmm17, %zmm19 +vpsrlvw %zmm16, %zmm17, %zmm19 {k1} +vpsrlvw (%rax), %zmm17, %zmm19 {k1} +vpsrlvw %zmm16, %zmm17, %zmm19 {z}{k1} +vpsrlvw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsrlw $0, %zmm16, %zmm19 +vpsrlw $0, (%rax), %zmm19 +vpsrlw $0, %zmm16, %zmm19 {k1} +vpsrlw $0, (%rax), %zmm19 {k1} +vpsrlw $0, %zmm16, %zmm19 {z}{k1} +vpsrlw $0, (%rax), %zmm19 {z}{k1} + +vpsrlw %xmm16, %zmm17, %zmm19 +vpsrlw (%rax), %zmm17, %zmm19 +vpsrlw %xmm16, %zmm17, %zmm19 {k1} +vpsrlw (%rax), %zmm17, %zmm19 {k1} +vpsrlw %xmm16, %zmm17, %zmm19 {z}{k1} +vpsrlw (%rax), %zmm17, %zmm19 {z}{k1} + vpsubb %zmm16, %zmm17, %zmm19 vpsubb (%rax), %zmm17, %zmm19 vpsubb %zmm16, %zmm17, %zmm19 {k1} @@ -217,6 +519,34 @@ vpsubb (%rax), %zmm17, %zmm19 {k1} vpsubb %zmm16, %zmm17, %zmm19 {z}{k1} vpsubb (%rax), %zmm17, %zmm19 {z}{k1} +vpsubsb %zmm16, %zmm17, %zmm19 +vpsubsb (%rax), %zmm17, %zmm19 +vpsubsb %zmm16, %zmm17, %zmm19 {k1} +vpsubsb (%rax), %zmm17, %zmm19 {k1} +vpsubsb %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubsb (%rax), %zmm17, %zmm19 {z}{k1} + +vpsubsw %zmm16, %zmm17, %zmm19 +vpsubsw (%rax), %zmm17, %zmm19 +vpsubsw %zmm16, %zmm17, %zmm19 {k1} +vpsubsw (%rax), %zmm17, %zmm19 {k1} +vpsubsw %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubsw (%rax), %zmm17, %zmm19 {z}{k1} + +vpsubusb %zmm16, %zmm17, %zmm19 +vpsubusb (%rax), %zmm17, %zmm19 +vpsubusb %zmm16, %zmm17, %zmm19 {k1} +vpsubusb (%rax), %zmm17, %zmm19 {k1} +vpsubusb %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubusb (%rax), %zmm17, %zmm19 {z}{k1} + +vpsubusw %zmm16, %zmm17, %zmm19 +vpsubusw (%rax), %zmm17, %zmm19 +vpsubusw %zmm16, %zmm17, %zmm19 {k1} +vpsubusw (%rax), %zmm17, %zmm19 {k1} +vpsubusw %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubusw (%rax), %zmm17, %zmm19 {z}{k1} + vpsubw %zmm16, %zmm17, %zmm19 vpsubw (%rax), %zmm17, %zmm19 vpsubw %zmm16, %zmm17, %zmm19 {k1} @@ -272,12 +602,6 @@ vpunpcklwd (%rax), %zmm17, %zmm19 {k1} vpunpcklwd %zmm16, %zmm17, %zmm19 {z}{k1} vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1} -vpmovm2b %k0, %zmm0 -vpmovm2w %k0, %zmm0 - -vpmovb2m %zmm0, %k0 -vpmovw2m %zmm0, %k0 - # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -293,18 +617,34 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 1 1 1.00 kandq %k0, %k1, %k2 # CHECK-NEXT: 1 1 1.00 kandnd %k0, %k1, %k2 # CHECK-NEXT: 1 1 1.00 kandnq %k0, %k1, %k2 +# CHECK-NEXT: 1 1 1.00 kmovd %k0, %k2 +# CHECK-NEXT: 3 7 1.00 * kmovd (%rax), %k2 +# CHECK-NEXT: 2 1 1.00 * kmovd %k0, (%rax) +# CHECK-NEXT: 1 1 1.00 kmovd %eax, %k2 +# CHECK-NEXT: 1 3 1.00 kmovd %k0, %eax +# CHECK-NEXT: 1 1 1.00 kmovq %k0, %k2 +# CHECK-NEXT: 3 7 1.00 * kmovq (%rax), %k2 +# CHECK-NEXT: 2 1 1.00 * kmovq %k0, (%rax) +# CHECK-NEXT: 1 1 1.00 kmovq %rax, %k2 +# CHECK-NEXT: 1 3 1.00 kmovq %k0, %rax +# CHECK-NEXT: 1 1 1.00 knotd %k0, %k2 +# CHECK-NEXT: 1 1 1.00 knotq %k0, %k2 # CHECK-NEXT: 1 1 1.00 kord %k0, %k1, %k2 # CHECK-NEXT: 1 1 1.00 korq %k0, %k1, %k2 -# CHECK-NEXT: 1 1 1.00 kxnord %k0, %k1, %k2 -# CHECK-NEXT: 1 1 1.00 kxnorq %k0, %k1, %k2 -# CHECK-NEXT: 1 1 1.00 kxord %k0, %k1, %k2 -# CHECK-NEXT: 1 1 1.00 kxorq %k0, %k1, %k2 +# CHECK-NEXT: 1 3 1.00 kortestd %k0, %k2 +# CHECK-NEXT: 1 3 1.00 kortestq %k0, %k2 # CHECK-NEXT: 1 4 1.00 kshiftld $2, %k1, %k2 # CHECK-NEXT: 1 4 1.00 kshiftlq $2, %k1, %k2 # CHECK-NEXT: 1 4 1.00 kshiftrd $2, %k1, %k2 # CHECK-NEXT: 1 4 1.00 kshiftrq $2, %k1, %k2 +# CHECK-NEXT: 1 3 1.00 ktestd %k0, %k2 +# CHECK-NEXT: 1 3 1.00 ktestq %k0, %k2 # CHECK-NEXT: 1 4 1.00 kunpckdq %k0, %k1, %k2 # CHECK-NEXT: 1 4 1.00 kunpckwd %k0, %k1, %k2 +# CHECK-NEXT: 1 1 1.00 kxnord %k0, %k1, %k2 +# CHECK-NEXT: 1 1 1.00 kxnorq %k0, %k1, %k2 +# CHECK-NEXT: 1 1 1.00 kxord %k0, %k1, %k2 +# CHECK-NEXT: 1 1 1.00 kxorq %k0, %k1, %k2 # CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 10 1.00 * vdbpsadbw $0, (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1} @@ -369,6 +709,30 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 0.50 * vpaddb (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 0.33 vpaddb %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpaddb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpaddsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpaddsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpaddsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpaddsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpaddsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpaddsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpaddsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpaddsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpaddsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpaddsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpaddsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpaddsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpaddusb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpaddusb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpaddusb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpaddusb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpaddusb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpaddusb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpaddusw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpaddusw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpaddusw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpaddusw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpaddusw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpaddusw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 0.33 vpaddw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 0.50 * vpaddw (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 0.33 vpaddw %zmm16, %zmm17, %zmm19 {%k1} @@ -381,18 +745,48 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpalignr $1, %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpavgb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpavgb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpavgb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpavgb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpavgb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpavgb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpavgw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpavgw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpavgw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpavgw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpavgw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpavgw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 2 0.50 vpblendmb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpblendmb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 2 0.50 vpblendmb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpblendmb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 2 0.50 vpblendmb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpblendmb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 2 0.50 vpblendmw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpblendmw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 2 0.50 vpblendmw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpblendmw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 2 0.50 vpblendmw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpblendmw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19 +# CHECK-NEXT: 1 3 1.00 vpbroadcastb %eax, %zmm19 # CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %zmm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vpbroadcastb %eax, %zmm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vpbroadcastb %eax, %zmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19 +# CHECK-NEXT: 1 3 1.00 vpbroadcastw %eax, %zmm19 # CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %zmm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vpbroadcastw %eax, %zmm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vpbroadcastw %eax, %zmm19 {%k1} {z} # CHECK-NEXT: 1 4 1.00 vpcmpeqb %zmm0, %zmm1, %k2 # CHECK-NEXT: 2 11 1.00 * vpcmpeqb (%rax), %zmm1, %k2 # CHECK-NEXT: 1 4 1.00 vpcmpeqb %zmm0, %zmm1, %k2 {%k3} @@ -425,24 +819,146 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 11 1.00 * vpcmpeqw (%rax), %zmm1, %k2 # CHECK-NEXT: 1 4 1.00 vpcmpeqw %zmm0, %zmm1, %k2 {%k3} # CHECK-NEXT: 2 11 1.00 * vpcmpeqw (%rax), %zmm1, %k2 {%k3} +# CHECK-NEXT: 2 3 1.00 vpextrb $0, %xmm16, %eax +# CHECK-NEXT: 3 2 1.00 * vpextrb $0, %xmm16, (%rax) +# CHECK-NEXT: 2 3 1.00 vpextrw $0, %xmm16, %eax +# CHECK-NEXT: 3 2 1.00 * vpextrw $0, %xmm16, (%rax) +# CHECK-NEXT: 2 2 2.00 vpinsrb $0, %eax, %xmm16, %xmm19 +# CHECK-NEXT: 2 6 1.00 * vpinsrb $0, (%rax), %xmm16, %xmm19 +# CHECK-NEXT: 2 2 2.00 vpinsrw $0, %eax, %xmm16, %xmm19 +# CHECK-NEXT: 2 6 1.00 * vpinsrw $0, (%rax), %xmm16, %xmm19 # CHECK-NEXT: 2 6 2.00 vpermw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %zmm17, %zmm19 # CHECK-NEXT: 2 6 2.00 vpermw %zmm16, %zmm17, %zmm19 {%k1} # CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 2 6 2.00 vpermw %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 3 13 2.00 * vpermw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 7 2.00 vpermi2w %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 4 14 2.00 * vpermi2w (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 3 7 2.00 vpermi2w %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 4 14 2.00 * vpermi2w (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 3 7 2.00 vpermi2w %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 4 14 2.00 * vpermi2w (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 7 2.00 vpermt2w %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 4 14 2.00 * vpermt2w (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 3 7 2.00 vpermt2w %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 4 14 2.00 * vpermt2w (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 3 7 2.00 vpermt2w %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 4 14 2.00 * vpermt2w (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 0.50 * vpmaddubsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmaddubsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmaddubsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmaddwd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 0.50 * vpmaddwd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 0.50 vpmaddwd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmaddwd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmaddwd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmaddwd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmaxsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpmaxsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpmaxsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmaxsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmaxsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpmaxsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmaxsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpmaxsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpmaxsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmaxsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmaxsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpmaxsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmaxub %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpmaxub (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpmaxub %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmaxub (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmaxub %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpmaxub (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmaxuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpmaxuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpmaxuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpmaxuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpmaxuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpmaxuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpminsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpminsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpminsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpminsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpminsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpminsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpminsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpminsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpminsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpminsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpminsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpminsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpminub %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpminub (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpminub %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpminub (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpminub %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpminub (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpminuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpminuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpminuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpminuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpminuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpminuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovb2m %zmm0, %k0 +# CHECK-NEXT: 1 1 1.00 vpmovw2m %zmm0, %k0 +# CHECK-NEXT: 1 1 0.50 vpmovm2b %k0, %zmm0 +# CHECK-NEXT: 1 1 0.50 vpmovm2w %k0, %zmm0 # CHECK-NEXT: 1 3 1.00 vpmovsxbw %ymm16, %zmm19 # CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %zmm19 # CHECK-NEXT: 1 3 1.00 vpmovsxbw %ymm16, %zmm19 {%k1} # CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %zmm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpmovsxbw %ymm16, %zmm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpmovsxbw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 4 2.00 vpmovswb %zmm16, %ymm19 +# CHECK-NEXT: 4 5 2.00 * vpmovswb %zmm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovswb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovswb %zmm16, (%rax) {%k1} +# CHECK-NEXT: 2 4 2.00 vpmovuswb %zmm16, %ymm19 +# CHECK-NEXT: 4 5 2.00 * vpmovuswb %zmm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovuswb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovuswb %zmm16, (%rax) {%k1} +# CHECK-NEXT: 2 4 2.00 vpmovwb %zmm16, %ymm19 +# CHECK-NEXT: 4 5 2.00 * vpmovwb %zmm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovwb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovwb %zmm16, (%rax) {%k1} # CHECK-NEXT: 1 3 1.00 vpmovzxbw %ymm16, %zmm19 # CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %zmm19 # CHECK-NEXT: 1 3 1.00 vpmovzxbw %ymm16, %zmm19 {%k1} # CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %zmm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpmovzxbw %ymm16, %zmm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpmovzxbw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 0.50 * vpmulhrsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmulhrsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmulhrsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 0.50 * vpmulhuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 0.50 vpmulhuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmulhuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmulhuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 0.50 * vpmulhw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 0.50 vpmulhw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmulhw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmulhw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmullw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 0.50 * vpmullw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 0.50 vpmullw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmullw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmullw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmullw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vpsadbw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 10 1.00 * vpsadbw (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 1.00 vpshufb %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 1.00 vpshufb %zmm16, %zmm17, %zmm19 {%k1} @@ -463,14 +979,92 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpshuflw $0, (%rax), %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpslldq $1, %zmm16, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpslldq $1, (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsllvw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsllvw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsllvw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsllvw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsllvw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsllvw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsllw $0, %zmm16, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsllw $0, (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsllw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsllw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsllw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsllw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsllw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsllw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsllw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsravw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsravw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsravw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsravw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsravw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsravw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsraw $0, %zmm16, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsraw $0, (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsraw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsraw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsraw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsraw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsraw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsraw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsraw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpsrldq $1, %zmm16, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpsrldq $1, (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsrlvw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsrlvw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsrlvw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsrlvw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsrlvw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsrlvw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsrlw $0, %zmm16, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsrlw $0, (%rax), %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsrlw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsrlw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsrlw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsrlw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsrlw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsrlw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsrlw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 0.33 vpsubb %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 0.33 vpsubb %zmm16, %zmm17, %zmm19 {%k1} # CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 0.33 vpsubb %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsubsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsubsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsubsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsubsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsubsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsubsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsubsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsubsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsubsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsubsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsubsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsubsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsubusb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsubusb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsubusb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsubusb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsubusb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsubusb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpsubusw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vpsubusw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vpsubusw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vpsubusw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpsubusw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vpsubusw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 0.33 vpsubw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 0.50 * vpsubw (%rax), %zmm17, %zmm19 # CHECK-NEXT: 1 1 0.33 vpsubw %zmm16, %zmm17, %zmm19 {%k1} @@ -517,10 +1111,6 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: 1 1 0.50 vpmovm2b %k0, %zmm0 -# CHECK-NEXT: 1 1 0.50 vpmovm2w %k0, %zmm0 -# CHECK-NEXT: 1 1 1.00 vpmovb2m %zmm0, %k0 -# CHECK-NEXT: 1 1 1.00 vpmovw2m %zmm0, %k0 # CHECK: Resources: # CHECK-NEXT: [0] - SKXDivider @@ -536,7 +1126,7 @@ vpmovw2m %zmm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 38.00 11.00 54.00 54.00 6.00 189.00 - 2.00 +# CHECK-NEXT: - - 239.50 17.50 115.33 115.33 16.00 295.50 0.50 5.33 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -546,18 +1136,34 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - 1.00 - - - - - - - kandq %k0, %k1, %k2 # CHECK-NEXT: - - 1.00 - - - - - - - kandnd %k0, %k1, %k2 # CHECK-NEXT: - - 1.00 - - - - - - - kandnq %k0, %k1, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - kmovd %k0, %k2 +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 1.25 0.25 - kmovd (%rax), %k2 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 kmovd %k0, (%rax) +# CHECK-NEXT: - - - - - - - 1.00 - - kmovd %eax, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - kmovd %k0, %eax +# CHECK-NEXT: - - 1.00 - - - - - - - kmovq %k0, %k2 +# CHECK-NEXT: - - 0.25 0.25 0.50 0.50 - 1.25 0.25 - kmovq (%rax), %k2 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 kmovq %k0, (%rax) +# CHECK-NEXT: - - - - - - - 1.00 - - kmovq %rax, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - kmovq %k0, %rax +# CHECK-NEXT: - - 1.00 - - - - - - - knotd %k0, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - knotq %k0, %k2 # CHECK-NEXT: - - 1.00 - - - - - - - kord %k0, %k1, %k2 # CHECK-NEXT: - - 1.00 - - - - - - - korq %k0, %k1, %k2 -# CHECK-NEXT: - - 1.00 - - - - - - - kxnord %k0, %k1, %k2 -# CHECK-NEXT: - - 1.00 - - - - - - - kxnorq %k0, %k1, %k2 -# CHECK-NEXT: - - 1.00 - - - - - - - kxord %k0, %k1, %k2 -# CHECK-NEXT: - - 1.00 - - - - - - - kxorq %k0, %k1, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - kortestd %k0, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - kortestq %k0, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - kshiftld $2, %k1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - kshiftlq $2, %k1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - kshiftrd $2, %k1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - kshiftrq $2, %k1, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - ktestd %k0, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - ktestq %k0, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - kunpckdq %k0, %k1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - kunpckwd %k0, %k1, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - kxnord %k0, %k1, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - kxnorq %k0, %k1, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - kxord %k0, %k1, %k2 +# CHECK-NEXT: - - 1.00 - - - - - - - kxorq %k0, %k1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - vdbpsadbw $0, %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vdbpsadbw $0, (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - - - - - 1.00 - - vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1} @@ -622,6 +1228,30 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddb (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddb %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpaddsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpaddsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpaddsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpaddsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpaddsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpaddsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpaddsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpaddsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpaddsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpaddsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpaddsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpaddsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpaddusb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpaddusb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpaddusb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpaddusb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpaddusb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpaddusb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpaddusw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpaddusw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpaddusw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpaddusw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpaddusw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpaddusw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddw (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddw %zmm16, %zmm17, %zmm19 {%k1} @@ -634,18 +1264,48 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpalignr $1, %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpalignr $1, (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpavgb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpavgb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpavgb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpavgb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpavgb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpavgb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpavgw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpavgw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpavgw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpavgw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpavgw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpavgw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpblendmb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpblendmb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpblendmb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpblendmw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpblendmw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpblendmw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %zmm19 +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %eax, %zmm19 # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %zmm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %eax, %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %eax, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %zmm19 +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %eax, %zmm19 # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %zmm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %eax, %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %eax, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - vpcmpeqb %zmm0, %zmm1, %k2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpcmpeqb (%rax), %zmm1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - vpcmpeqb %zmm0, %zmm1, %k2 {%k3} @@ -678,24 +1338,146 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpcmpeqw (%rax), %zmm1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - vpcmpeqw %zmm0, %zmm1, %k2 {%k3} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpcmpeqw (%rax), %zmm1, %k2 {%k3} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpextrb $0, %xmm16, %eax +# CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 vpextrb $0, %xmm16, (%rax) +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpextrw $0, %xmm16, %eax +# CHECK-NEXT: - - - - 0.33 0.33 1.00 1.00 - 0.33 vpextrw $0, %xmm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - vpinsrb $0, %eax, %xmm16, %xmm19 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpinsrb $0, (%rax), %xmm16, %xmm19 +# CHECK-NEXT: - - - - - - - 2.00 - - vpinsrw $0, %eax, %xmm16, %xmm19 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpinsrw $0, (%rax), %xmm16, %xmm19 # CHECK-NEXT: - - - - - - - 2.00 - - vpermw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - - - - - 2.00 - - vpermw %zmm16, %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 2.00 - - vpermw %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 2.00 - - vpermw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermi2w %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermi2w (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermi2w %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermi2w (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermi2w %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermi2w (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermt2w %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermt2w (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermt2w %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermt2w (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermt2w %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermt2w (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmaddubsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmaddubsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmaddubsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmaddubsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmaddubsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmaddubsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmaddwd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmaddwd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmaddwd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmaddwd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmaddwd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmaddwd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpmaxsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpmaxsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpmaxsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpmaxsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpmaxsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpmaxsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpmaxsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpmaxsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpmaxsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpmaxsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpmaxsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpmaxsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpmaxub %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpmaxub (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpmaxub %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpmaxub (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpmaxub %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpmaxub (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpmaxuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpmaxuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpmaxuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpmaxuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpmaxuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpmaxuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpminsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpminsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpminsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpminsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpminsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpminsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpminsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpminsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpminsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpminsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpminsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpminsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpminub %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpminub (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpminub %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpminub (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpminub %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpminub (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpminuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpminuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpminuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpminuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpminuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpminuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpmovb2m %zmm0, %k0 +# CHECK-NEXT: - - 1.00 - - - - - - - vpmovw2m %zmm0, %k0 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmovm2b %k0, %zmm0 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmovm2w %k0, %zmm0 # CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbw %ymm16, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbw (%rax), %zmm19 # CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbw %ymm16, %zmm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbw (%rax), %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpmovsxbw %ymm16, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovsxbw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovswb %zmm16, %ymm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovswb %zmm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovswb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovswb %zmm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovuswb %zmm16, %ymm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovuswb %zmm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovuswb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovuswb %zmm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovwb %zmm16, %ymm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovwb %zmm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovwb %zmm16, %ymm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovwb %zmm16, (%rax) {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbw %ymm16, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbw (%rax), %zmm19 # CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbw %ymm16, %zmm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbw (%rax), %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpmovzxbw %ymm16, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpmovzxbw (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmulhrsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmulhrsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmulhrsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmulhrsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmulhrsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmulhrsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmulhuw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmulhuw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmulhuw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmulhuw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmulhuw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmulhuw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmulhw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmulhw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmulhw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmulhw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmulhw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmulhw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmullw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmullw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmullw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmullw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmullw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vpmullw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - vpsadbw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpsadbw (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - - - - - 1.00 - - vpshufb %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufb (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - - - - - 1.00 - - vpshufb %zmm16, %zmm17, %zmm19 {%k1} @@ -716,14 +1498,92 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshuflw $0, (%rax), %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - vpslldq $1, %zmm16, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpslldq $1, (%rax), %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpsllvw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsllvw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpsllvw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsllvw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsllvw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsllvw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsllw $0, %zmm16, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsllw $0, (%rax), %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpsllw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsllw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsllw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsllw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsllw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsllw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsllw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsllw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsllw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsllw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsravw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsravw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpsravw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsravw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsravw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsravw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsraw $0, %zmm16, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsraw $0, (%rax), %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpsraw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsraw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsraw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsraw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsraw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsraw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsraw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsraw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsraw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsraw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - vpsrldq $1, %zmm16, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpsrldq $1, (%rax), %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpsrlvw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrlvw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpsrlvw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrlvw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsrlvw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrlvw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsrlw $0, %zmm16, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrlw $0, (%rax), %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpsrlw $0, %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrlw $0, (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsrlw $0, %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrlw $0, (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsrlw %xmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrlw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsrlw %xmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrlw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpsrlw %xmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsrlw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubb %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubb (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubb %zmm16, %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubb (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubb %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsubsb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsubsb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpsubsb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsubsb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsubsb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsubsb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsubsw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsubsw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpsubsw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsubsw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsubsw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsubsw (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsubusb %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsubusb (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpsubusb %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsubusb (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsubusb %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsubusb (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsubusw %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsubusw (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - - - vpsubusw %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsubusw (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - - - vpsubusw %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - vpsubusw (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubw %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubw (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubw %zmm16, %zmm17, %zmm19 {%k1} @@ -770,7 +1630,3 @@ vpmovw2m %zmm0, %k0 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z} -# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmovm2b %k0, %zmm0 -# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vpmovm2w %k0, %zmm0 -# CHECK-NEXT: - - 1.00 - - - - - - - vpmovb2m %zmm0, %k0 -# CHECK-NEXT: - - 1.00 - - - - - - - vpmovw2m %zmm0, %k0 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 c4fda58..c861bc2 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512bwvl.s @@ -149,6 +149,62 @@ vpaddb (%rax), %ymm17, %ymm19 {k1} vpaddb %ymm16, %ymm17, %ymm19 {z}{k1} vpaddb (%rax), %ymm17, %ymm19 {z}{k1} +vpaddsb %xmm16, %xmm17, %xmm19 +vpaddsb (%rax), %xmm17, %xmm19 +vpaddsb %xmm16, %xmm17, %xmm19 {k1} +vpaddsb (%rax), %xmm17, %xmm19 {k1} +vpaddsb %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddsb (%rax), %xmm17, %xmm19 {z}{k1} + +vpaddsb %ymm16, %ymm17, %ymm19 +vpaddsb (%rax), %ymm17, %ymm19 +vpaddsb %ymm16, %ymm17, %ymm19 {k1} +vpaddsb (%rax), %ymm17, %ymm19 {k1} +vpaddsb %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddsb (%rax), %ymm17, %ymm19 {z}{k1} + +vpaddsw %xmm16, %xmm17, %xmm19 +vpaddsw (%rax), %xmm17, %xmm19 +vpaddsw %xmm16, %xmm17, %xmm19 {k1} +vpaddsw (%rax), %xmm17, %xmm19 {k1} +vpaddsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpaddsw %ymm16, %ymm17, %ymm19 +vpaddsw (%rax), %ymm17, %ymm19 +vpaddsw %ymm16, %ymm17, %ymm19 {k1} +vpaddsw (%rax), %ymm17, %ymm19 {k1} +vpaddsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpaddusb %xmm16, %xmm17, %xmm19 +vpaddusb (%rax), %xmm17, %xmm19 +vpaddusb %xmm16, %xmm17, %xmm19 {k1} +vpaddusb (%rax), %xmm17, %xmm19 {k1} +vpaddusb %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddusb (%rax), %xmm17, %xmm19 {z}{k1} + +vpaddusb %ymm16, %ymm17, %ymm19 +vpaddusb (%rax), %ymm17, %ymm19 +vpaddusb %ymm16, %ymm17, %ymm19 {k1} +vpaddusb (%rax), %ymm17, %ymm19 {k1} +vpaddusb %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddusb (%rax), %ymm17, %ymm19 {z}{k1} + +vpaddusw %xmm16, %xmm17, %xmm19 +vpaddusw (%rax), %xmm17, %xmm19 +vpaddusw %xmm16, %xmm17, %xmm19 {k1} +vpaddusw (%rax), %xmm17, %xmm19 {k1} +vpaddusw %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddusw (%rax), %xmm17, %xmm19 {z}{k1} + +vpaddusw %ymm16, %ymm17, %ymm19 +vpaddusw (%rax), %ymm17, %ymm19 +vpaddusw %ymm16, %ymm17, %ymm19 {k1} +vpaddusw (%rax), %ymm17, %ymm19 {k1} +vpaddusw %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddusw (%rax), %ymm17, %ymm19 {z}{k1} + vpaddw %xmm16, %xmm17, %xmm19 vpaddw (%rax), %xmm17, %xmm19 vpaddw %xmm16, %xmm17, %xmm19 {k1} @@ -177,33 +233,101 @@ vpalignr $1, (%rax), %ymm17, %ymm19 {k1} vpalignr $1, %ymm16, %ymm17, %ymm19 {z}{k1} vpalignr $1, (%rax), %ymm17, %ymm19 {z}{k1} +vpavgb %xmm16, %xmm17, %xmm19 +vpavgb (%rax), %xmm17, %xmm19 +vpavgb %xmm16, %xmm17, %xmm19 {k1} +vpavgb (%rax), %xmm17, %xmm19 {k1} +vpavgb %xmm16, %xmm17, %xmm19 {z}{k1} +vpavgb (%rax), %xmm17, %xmm19 {z}{k1} + +vpavgb %ymm16, %ymm17, %ymm19 +vpavgb (%rax), %ymm17, %ymm19 +vpavgb %ymm16, %ymm17, %ymm19 {k1} +vpavgb (%rax), %ymm17, %ymm19 {k1} +vpavgb %ymm16, %ymm17, %ymm19 {z}{k1} +vpavgb (%rax), %ymm17, %ymm19 {z}{k1} + +vpavgw %xmm16, %xmm17, %xmm19 +vpavgw (%rax), %xmm17, %xmm19 +vpavgw %xmm16, %xmm17, %xmm19 {k1} +vpavgw (%rax), %xmm17, %xmm19 {k1} +vpavgw %xmm16, %xmm17, %xmm19 {z}{k1} +vpavgw (%rax), %xmm17, %xmm19 {z}{k1} + +vpavgw %ymm16, %ymm17, %ymm19 +vpavgw (%rax), %ymm17, %ymm19 +vpavgw %ymm16, %ymm17, %ymm19 {k1} +vpavgw (%rax), %ymm17, %ymm19 {k1} +vpavgw %ymm16, %ymm17, %ymm19 {z}{k1} +vpavgw (%rax), %ymm17, %ymm19 {z}{k1} + +vpblendmb %xmm16, %xmm17, %xmm19 +vpblendmb (%rax), %xmm17, %xmm19 +vpblendmb %xmm16, %xmm17, %xmm19 {k1} +vpblendmb (%rax), %xmm17, %xmm19 {k1} +vpblendmb %xmm16, %xmm17, %xmm19 {z}{k1} +vpblendmb (%rax), %xmm17, %xmm19 {z}{k1} + +vpblendmb %ymm16, %ymm17, %ymm19 +vpblendmb (%rax), %ymm17, %ymm19 +vpblendmb %ymm16, %ymm17, %ymm19 {k1} +vpblendmb (%rax), %ymm17, %ymm19 {k1} +vpblendmb %ymm16, %ymm17, %ymm19 {z}{k1} +vpblendmb (%rax), %ymm17, %ymm19 {z}{k1} + +vpblendmw %xmm16, %xmm17, %xmm19 +vpblendmw (%rax), %xmm17, %xmm19 +vpblendmw %xmm16, %xmm17, %xmm19 {k1} +vpblendmw (%rax), %xmm17, %xmm19 {k1} +vpblendmw %xmm16, %xmm17, %xmm19 {z}{k1} +vpblendmw (%rax), %xmm17, %xmm19 {z}{k1} + +vpblendmw %ymm16, %ymm17, %ymm19 +vpblendmw (%rax), %ymm17, %ymm19 +vpblendmw %ymm16, %ymm17, %ymm19 {k1} +vpblendmw (%rax), %ymm17, %ymm19 {k1} +vpblendmw %ymm16, %ymm17, %ymm19 {z}{k1} +vpblendmw (%rax), %ymm17, %ymm19 {z}{k1} + vpbroadcastb %xmm16, %xmm19 vpbroadcastb (%rax), %xmm19 +vpbroadcastb %eax, %xmm19 vpbroadcastb %xmm16, %xmm19 {k1} vpbroadcastb (%rax), %xmm19 {k1} +vpbroadcastb %eax, %xmm19 {k1} vpbroadcastb %xmm16, %xmm19 {z}{k1} vpbroadcastb (%rax), %xmm19 {z}{k1} +vpbroadcastb %eax, %xmm19 {z}{k1} vpbroadcastb %xmm16, %ymm19 vpbroadcastb (%rax), %ymm19 +vpbroadcastb %eax, %ymm19 vpbroadcastb %xmm16, %ymm19 {k1} vpbroadcastb (%rax), %ymm19 {k1} +vpbroadcastb %eax, %ymm19 {k1} vpbroadcastb %xmm16, %ymm19 {z}{k1} vpbroadcastb (%rax), %ymm19 {z}{k1} +vpbroadcastb %eax, %ymm19 {z}{k1} vpbroadcastw %xmm16, %xmm19 vpbroadcastw (%rax), %xmm19 +vpbroadcastw %eax, %xmm19 vpbroadcastw %xmm16, %xmm19 {k1} vpbroadcastw (%rax), %xmm19 {k1} +vpbroadcastw %eax, %xmm19 {k1} vpbroadcastw %xmm16, %xmm19 {z}{k1} vpbroadcastw (%rax), %xmm19 {z}{k1} +vpbroadcastw %eax, %xmm19 {z}{k1} vpbroadcastw %xmm16, %ymm19 vpbroadcastw (%rax), %ymm19 +vpbroadcastw %eax, %ymm19 vpbroadcastw %xmm16, %ymm19 {k1} vpbroadcastw (%rax), %ymm19 {k1} +vpbroadcastw %eax, %ymm19 {k1} vpbroadcastw %xmm16, %ymm19 {z}{k1} vpbroadcastw (%rax), %ymm19 {z}{k1} +vpbroadcastw %eax, %ymm19 {z}{k1} vpcmpb $0, %xmm0, %xmm1, %k2 vpcmpb $0, (%rax), %xmm1, %k2 @@ -299,6 +423,186 @@ vpermw (%rax), %ymm17, %ymm19 {k1} vpermw %ymm16, %ymm17, %ymm19 {z}{k1} vpermw (%rax), %ymm17, %ymm19 {z}{k1} +vpermi2w %xmm16, %xmm17, %xmm19 +vpermi2w (%rax), %xmm17, %xmm19 +vpermi2w %xmm16, %xmm17, %xmm19 {k1} +vpermi2w (%rax), %xmm17, %xmm19 {k1} +vpermi2w %xmm16, %xmm17, %xmm19 {z}{k1} +vpermi2w (%rax), %xmm17, %xmm19 {z}{k1} + +vpermi2w %ymm16, %ymm17, %ymm19 +vpermi2w (%rax), %ymm17, %ymm19 +vpermi2w %ymm16, %ymm17, %ymm19 {k1} +vpermi2w (%rax), %ymm17, %ymm19 {k1} +vpermi2w %ymm16, %ymm17, %ymm19 {z}{k1} +vpermi2w (%rax), %ymm17, %ymm19 {z}{k1} + +vpermt2w %xmm16, %xmm17, %xmm19 +vpermt2w (%rax), %xmm17, %xmm19 +vpermt2w %xmm16, %xmm17, %xmm19 {k1} +vpermt2w (%rax), %xmm17, %xmm19 {k1} +vpermt2w %xmm16, %xmm17, %xmm19 {z}{k1} +vpermt2w (%rax), %xmm17, %xmm19 {z}{k1} + +vpermt2w %ymm16, %ymm17, %ymm19 +vpermt2w (%rax), %ymm17, %ymm19 +vpermt2w %ymm16, %ymm17, %ymm19 {k1} +vpermt2w (%rax), %ymm17, %ymm19 {k1} +vpermt2w %ymm16, %ymm17, %ymm19 {z}{k1} +vpermt2w (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaddubsw %xmm16, %xmm17, %xmm19 +vpmaddubsw (%rax), %xmm17, %xmm19 +vpmaddubsw %xmm16, %xmm17, %xmm19 {k1} +vpmaddubsw (%rax), %xmm17, %xmm19 {k1} +vpmaddubsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaddubsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaddubsw %ymm16, %ymm17, %ymm19 +vpmaddubsw (%rax), %ymm17, %ymm19 +vpmaddubsw %ymm16, %ymm17, %ymm19 {k1} +vpmaddubsw (%rax), %ymm17, %ymm19 {k1} +vpmaddubsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaddubsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaddwd %xmm16, %xmm17, %xmm19 +vpmaddwd (%rax), %xmm17, %xmm19 +vpmaddwd %xmm16, %xmm17, %xmm19 {k1} +vpmaddwd (%rax), %xmm17, %xmm19 {k1} +vpmaddwd %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaddwd (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaddwd %ymm16, %ymm17, %ymm19 +vpmaddwd (%rax), %ymm17, %ymm19 +vpmaddwd %ymm16, %ymm17, %ymm19 {k1} +vpmaddwd (%rax), %ymm17, %ymm19 {k1} +vpmaddwd %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaddwd (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaxsb %xmm16, %xmm17, %xmm19 +vpmaxsb (%rax), %xmm17, %xmm19 +vpmaxsb %xmm16, %xmm17, %xmm19 {k1} +vpmaxsb (%rax), %xmm17, %xmm19 {k1} +vpmaxsb %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaxsb (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaxsb %ymm16, %ymm17, %ymm19 +vpmaxsb (%rax), %ymm17, %ymm19 +vpmaxsb %ymm16, %ymm17, %ymm19 {k1} +vpmaxsb (%rax), %ymm17, %ymm19 {k1} +vpmaxsb %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaxsb (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaxsw %xmm16, %xmm17, %xmm19 +vpmaxsw (%rax), %xmm17, %xmm19 +vpmaxsw %xmm16, %xmm17, %xmm19 {k1} +vpmaxsw (%rax), %xmm17, %xmm19 {k1} +vpmaxsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaxsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaxsw %ymm16, %ymm17, %ymm19 +vpmaxsw (%rax), %ymm17, %ymm19 +vpmaxsw %ymm16, %ymm17, %ymm19 {k1} +vpmaxsw (%rax), %ymm17, %ymm19 {k1} +vpmaxsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaxsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaxub %xmm16, %xmm17, %xmm19 +vpmaxub (%rax), %xmm17, %xmm19 +vpmaxub %xmm16, %xmm17, %xmm19 {k1} +vpmaxub (%rax), %xmm17, %xmm19 {k1} +vpmaxub %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaxub (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaxub %ymm16, %ymm17, %ymm19 +vpmaxub (%rax), %ymm17, %ymm19 +vpmaxub %ymm16, %ymm17, %ymm19 {k1} +vpmaxub (%rax), %ymm17, %ymm19 {k1} +vpmaxub %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaxub (%rax), %ymm17, %ymm19 {z}{k1} + +vpmaxuw %xmm16, %xmm17, %xmm19 +vpmaxuw (%rax), %xmm17, %xmm19 +vpmaxuw %xmm16, %xmm17, %xmm19 {k1} +vpmaxuw (%rax), %xmm17, %xmm19 {k1} +vpmaxuw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmaxuw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmaxuw %ymm16, %ymm17, %ymm19 +vpmaxuw (%rax), %ymm17, %ymm19 +vpmaxuw %ymm16, %ymm17, %ymm19 {k1} +vpmaxuw (%rax), %ymm17, %ymm19 {k1} +vpmaxuw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmaxuw (%rax), %ymm17, %ymm19 {z}{k1} + +vpminsb %xmm16, %xmm17, %xmm19 +vpminsb (%rax), %xmm17, %xmm19 +vpminsb %xmm16, %xmm17, %xmm19 {k1} +vpminsb (%rax), %xmm17, %xmm19 {k1} +vpminsb %xmm16, %xmm17, %xmm19 {z}{k1} +vpminsb (%rax), %xmm17, %xmm19 {z}{k1} + +vpminsb %ymm16, %ymm17, %ymm19 +vpminsb (%rax), %ymm17, %ymm19 +vpminsb %ymm16, %ymm17, %ymm19 {k1} +vpminsb (%rax), %ymm17, %ymm19 {k1} +vpminsb %ymm16, %ymm17, %ymm19 {z}{k1} +vpminsb (%rax), %ymm17, %ymm19 {z}{k1} + +vpminsw %xmm16, %xmm17, %xmm19 +vpminsw (%rax), %xmm17, %xmm19 +vpminsw %xmm16, %xmm17, %xmm19 {k1} +vpminsw (%rax), %xmm17, %xmm19 {k1} +vpminsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpminsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpminsw %ymm16, %ymm17, %ymm19 +vpminsw (%rax), %ymm17, %ymm19 +vpminsw %ymm16, %ymm17, %ymm19 {k1} +vpminsw (%rax), %ymm17, %ymm19 {k1} +vpminsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpminsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpminub %xmm16, %xmm17, %xmm19 +vpminub (%rax), %xmm17, %xmm19 +vpminub %xmm16, %xmm17, %xmm19 {k1} +vpminub (%rax), %xmm17, %xmm19 {k1} +vpminub %xmm16, %xmm17, %xmm19 {z}{k1} +vpminub (%rax), %xmm17, %xmm19 {z}{k1} + +vpminub %ymm16, %ymm17, %ymm19 +vpminub (%rax), %ymm17, %ymm19 +vpminub %ymm16, %ymm17, %ymm19 {k1} +vpminub (%rax), %ymm17, %ymm19 {k1} +vpminub %ymm16, %ymm17, %ymm19 {z}{k1} +vpminub (%rax), %ymm17, %ymm19 {z}{k1} + +vpminuw %xmm16, %xmm17, %xmm19 +vpminuw (%rax), %xmm17, %xmm19 +vpminuw %xmm16, %xmm17, %xmm19 {k1} +vpminuw (%rax), %xmm17, %xmm19 {k1} +vpminuw %xmm16, %xmm17, %xmm19 {z}{k1} +vpminuw (%rax), %xmm17, %xmm19 {z}{k1} + +vpminuw %ymm16, %ymm17, %ymm19 +vpminuw (%rax), %ymm17, %ymm19 +vpminuw %ymm16, %ymm17, %ymm19 {k1} +vpminuw (%rax), %ymm17, %ymm19 {k1} +vpminuw %ymm16, %ymm17, %ymm19 {z}{k1} +vpminuw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmovb2m %xmm0, %k0 +vpmovw2m %xmm0, %k0 + +vpmovb2m %ymm0, %k0 +vpmovw2m %ymm0, %k0 + +vpmovm2b %k0, %xmm0 +vpmovm2w %k0, %xmm0 + +vpmovm2b %k0, %ymm0 +vpmovm2w %k0, %ymm0 + vpmovsxbw %xmm16, %xmm19 vpmovsxbw (%rax), %xmm19 vpmovsxbw %xmm16, %xmm19 {k1} @@ -313,6 +617,36 @@ vpmovsxbw (%rax), %ymm19 {k1} vpmovsxbw %xmm16, %ymm19 {z}{k1} vpmovsxbw (%rax), %ymm19 {z}{k1} +vpmovswb %xmm16, %xmm19 +vpmovswb %xmm16, (%rax) +vpmovswb %xmm16, %xmm19 {k1} +vpmovswb %xmm16, (%rax) {k1} + +vpmovswb %ymm16, %xmm19 +vpmovswb %ymm16, (%rax) +vpmovswb %ymm16, %xmm19 {k1} +vpmovswb %ymm16, (%rax) {k1} + +vpmovuswb %xmm16, %xmm19 +vpmovuswb %xmm16, (%rax) +vpmovuswb %xmm16, %xmm19 {k1} +vpmovuswb %xmm16, (%rax) {k1} + +vpmovuswb %ymm16, %xmm19 +vpmovuswb %ymm16, (%rax) +vpmovuswb %ymm16, %xmm19 {k1} +vpmovuswb %ymm16, (%rax) {k1} + +vpmovwb %xmm16, %xmm19 +vpmovwb %xmm16, (%rax) +vpmovwb %xmm16, %xmm19 {k1} +vpmovwb %xmm16, (%rax) {k1} + +vpmovwb %ymm16, %xmm19 +vpmovwb %ymm16, (%rax) +vpmovwb %ymm16, %xmm19 {k1} +vpmovwb %ymm16, (%rax) {k1} + vpmovzxbw %xmm16, %xmm19 vpmovzxbw (%rax), %xmm19 vpmovzxbw %xmm16, %xmm19 {k1} @@ -327,6 +661,68 @@ vpmovzxbw (%rax), %ymm19 {k1} vpmovzxbw %xmm16, %ymm19 {z}{k1} vpmovzxbw (%rax), %ymm19 {z}{k1} +vpmulhrsw %xmm16, %xmm17, %xmm19 +vpmulhrsw (%rax), %xmm17, %xmm19 +vpmulhrsw %xmm16, %xmm17, %xmm19 {k1} +vpmulhrsw (%rax), %xmm17, %xmm19 {k1} +vpmulhrsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmulhrsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmulhrsw %ymm16, %ymm17, %ymm19 +vpmulhrsw (%rax), %ymm17, %ymm19 +vpmulhrsw %ymm16, %ymm17, %ymm19 {k1} +vpmulhrsw (%rax), %ymm17, %ymm19 {k1} +vpmulhrsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmulhrsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmulhuw %xmm16, %xmm17, %xmm19 +vpmulhuw (%rax), %xmm17, %xmm19 +vpmulhuw %xmm16, %xmm17, %xmm19 {k1} +vpmulhuw (%rax), %xmm17, %xmm19 {k1} +vpmulhuw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmulhuw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmulhuw %ymm16, %ymm17, %ymm19 +vpmulhuw (%rax), %ymm17, %ymm19 +vpmulhuw %ymm16, %ymm17, %ymm19 {k1} +vpmulhuw (%rax), %ymm17, %ymm19 {k1} +vpmulhuw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmulhuw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmulhw %xmm16, %xmm17, %xmm19 +vpmulhw (%rax), %xmm17, %xmm19 +vpmulhw %xmm16, %xmm17, %xmm19 {k1} +vpmulhw (%rax), %xmm17, %xmm19 {k1} +vpmulhw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmulhw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmulhw %ymm16, %ymm17, %ymm19 +vpmulhw (%rax), %ymm17, %ymm19 +vpmulhw %ymm16, %ymm17, %ymm19 {k1} +vpmulhw (%rax), %ymm17, %ymm19 {k1} +vpmulhw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmulhw (%rax), %ymm17, %ymm19 {z}{k1} + +vpmullw %xmm16, %xmm17, %xmm19 +vpmullw (%rax), %xmm17, %xmm19 +vpmullw %xmm16, %xmm17, %xmm19 {k1} +vpmullw (%rax), %xmm17, %xmm19 {k1} +vpmullw %xmm16, %xmm17, %xmm19 {z}{k1} +vpmullw (%rax), %xmm17, %xmm19 {z}{k1} + +vpmullw %ymm16, %ymm17, %ymm19 +vpmullw (%rax), %ymm17, %ymm19 +vpmullw %ymm16, %ymm17, %ymm19 {k1} +vpmullw (%rax), %ymm17, %ymm19 {k1} +vpmullw %ymm16, %ymm17, %ymm19 {z}{k1} +vpmullw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsadbw %xmm16, %xmm17, %xmm19 +vpsadbw (%rax), %xmm17, %xmm19 + +vpsadbw %ymm16, %ymm17, %ymm19 +vpsadbw (%rax), %ymm17, %ymm19 + vpshufb %xmm16, %xmm17, %xmm19 vpshufb (%rax), %xmm17, %xmm19 vpshufb %xmm16, %xmm17, %xmm19 {k1} @@ -375,12 +771,138 @@ vpslldq $1, (%rax), %xmm19 vpslldq $1, %ymm16, %ymm19 vpslldq $1, (%rax), %ymm19 +vpsllvw %xmm16, %xmm17, %xmm19 +vpsllvw (%rax), %xmm17, %xmm19 +vpsllvw %xmm16, %xmm17, %xmm19 {k1} +vpsllvw (%rax), %xmm17, %xmm19 {k1} +vpsllvw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsllvw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsllvw %ymm16, %ymm17, %ymm19 +vpsllvw (%rax), %ymm17, %ymm19 +vpsllvw %ymm16, %ymm17, %ymm19 {k1} +vpsllvw (%rax), %ymm17, %ymm19 {k1} +vpsllvw %ymm16, %ymm17, %ymm19 {z}{k1} +vpsllvw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsllw $0, %xmm16, %xmm19 +vpsllw $0, (%rax), %xmm19 +vpsllw $0, %xmm16, %xmm19 {k1} +vpsllw $0, (%rax), %xmm19 {k1} +vpsllw $0, %xmm16, %xmm19 {z}{k1} +vpsllw $0, (%rax), %xmm19 {z}{k1} + +vpsllw $0, %ymm16, %ymm19 +vpsllw $0, (%rax), %ymm19 +vpsllw $0, %ymm16, %ymm19 {k1} +vpsllw $0, (%rax), %ymm19 {k1} +vpsllw $0, %ymm16, %ymm19 {z}{k1} +vpsllw $0, (%rax), %ymm19 {z}{k1} + +vpsllw %xmm16, %xmm17, %xmm19 +vpsllw (%rax), %xmm17, %xmm19 +vpsllw %xmm16, %xmm17, %xmm19 {k1} +vpsllw (%rax), %xmm17, %xmm19 {k1} +vpsllw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsllw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsllw %xmm16, %ymm17, %ymm19 +vpsllw (%rax), %ymm17, %ymm19 +vpsllw %xmm16, %ymm17, %ymm19 {k1} +vpsllw (%rax), %ymm17, %ymm19 {k1} +vpsllw %xmm16, %ymm17, %ymm19 {z}{k1} +vpsllw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsravw %xmm16, %xmm17, %xmm19 +vpsravw (%rax), %xmm17, %xmm19 +vpsravw %xmm16, %xmm17, %xmm19 {k1} +vpsravw (%rax), %xmm17, %xmm19 {k1} +vpsravw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsravw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsravw %ymm16, %ymm17, %ymm19 +vpsravw (%rax), %ymm17, %ymm19 +vpsravw %ymm16, %ymm17, %ymm19 {k1} +vpsravw (%rax), %ymm17, %ymm19 {k1} +vpsravw %ymm16, %ymm17, %ymm19 {z}{k1} +vpsravw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsraw $0, %xmm16, %xmm19 +vpsraw $0, (%rax), %xmm19 +vpsraw $0, %xmm16, %xmm19 {k1} +vpsraw $0, (%rax), %xmm19 {k1} +vpsraw $0, %xmm16, %xmm19 {z}{k1} +vpsraw $0, (%rax), %xmm19 {z}{k1} + +vpsraw $0, %ymm16, %ymm19 +vpsraw $0, (%rax), %ymm19 +vpsraw $0, %ymm16, %ymm19 {k1} +vpsraw $0, (%rax), %ymm19 {k1} +vpsraw $0, %ymm16, %ymm19 {z}{k1} +vpsraw $0, (%rax), %ymm19 {z}{k1} + +vpsraw %xmm16, %xmm17, %xmm19 +vpsraw (%rax), %xmm17, %xmm19 +vpsraw %xmm16, %xmm17, %xmm19 {k1} +vpsraw (%rax), %xmm17, %xmm19 {k1} +vpsraw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsraw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsraw %xmm16, %ymm17, %ymm19 +vpsraw (%rax), %ymm17, %ymm19 +vpsraw %xmm16, %ymm17, %ymm19 {k1} +vpsraw (%rax), %ymm17, %ymm19 {k1} +vpsraw %xmm16, %ymm17, %ymm19 {z}{k1} +vpsraw (%rax), %ymm17, %ymm19 {z}{k1} + vpsrldq $1, %xmm16, %xmm19 vpsrldq $1, (%rax), %xmm19 vpsrldq $1, %ymm16, %ymm19 vpsrldq $1, (%rax), %ymm19 +vpsrlvw %xmm16, %xmm17, %xmm19 +vpsrlvw (%rax), %xmm17, %xmm19 +vpsrlvw %xmm16, %xmm17, %xmm19 {k1} +vpsrlvw (%rax), %xmm17, %xmm19 {k1} +vpsrlvw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsrlvw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsrlvw %ymm16, %ymm17, %ymm19 +vpsrlvw (%rax), %ymm17, %ymm19 +vpsrlvw %ymm16, %ymm17, %ymm19 {k1} +vpsrlvw (%rax), %ymm17, %ymm19 {k1} +vpsrlvw %ymm16, %ymm17, %ymm19 {z}{k1} +vpsrlvw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsrlw $0, %xmm16, %xmm19 +vpsrlw $0, (%rax), %xmm19 +vpsrlw $0, %xmm16, %xmm19 {k1} +vpsrlw $0, (%rax), %xmm19 {k1} +vpsrlw $0, %xmm16, %xmm19 {z}{k1} +vpsrlw $0, (%rax), %xmm19 {z}{k1} + +vpsrlw $0, %ymm16, %ymm19 +vpsrlw $0, (%rax), %ymm19 +vpsrlw $0, %ymm16, %ymm19 {k1} +vpsrlw $0, (%rax), %ymm19 {k1} +vpsrlw $0, %ymm16, %ymm19 {z}{k1} +vpsrlw $0, (%rax), %ymm19 {z}{k1} + +vpsrlw %xmm16, %xmm17, %xmm19 +vpsrlw (%rax), %xmm17, %xmm19 +vpsrlw %xmm16, %xmm17, %xmm19 {k1} +vpsrlw (%rax), %xmm17, %xmm19 {k1} +vpsrlw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsrlw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsrlw %xmm16, %ymm17, %ymm19 +vpsrlw (%rax), %ymm17, %ymm19 +vpsrlw %xmm16, %ymm17, %ymm19 {k1} +vpsrlw (%rax), %ymm17, %ymm19 {k1} +vpsrlw %xmm16, %ymm17, %ymm19 {z}{k1} +vpsrlw (%rax), %ymm17, %ymm19 {z}{k1} + vpsubb %xmm16, %xmm17, %xmm19 vpsubb (%rax), %xmm17, %xmm19 vpsubb %xmm16, %xmm17, %xmm19 {k1} @@ -395,6 +917,62 @@ vpsubb (%rax), %ymm17, %ymm19 {k1} vpsubb %ymm16, %ymm17, %ymm19 {z}{k1} vpsubb (%rax), %ymm17, %ymm19 {z}{k1} +vpsubsb %xmm16, %xmm17, %xmm19 +vpsubsb (%rax), %xmm17, %xmm19 +vpsubsb %xmm16, %xmm17, %xmm19 {k1} +vpsubsb (%rax), %xmm17, %xmm19 {k1} +vpsubsb %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubsb (%rax), %xmm17, %xmm19 {z}{k1} + +vpsubsb %ymm16, %ymm17, %ymm19 +vpsubsb (%rax), %ymm17, %ymm19 +vpsubsb %ymm16, %ymm17, %ymm19 {k1} +vpsubsb (%rax), %ymm17, %ymm19 {k1} +vpsubsb %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubsb (%rax), %ymm17, %ymm19 {z}{k1} + +vpsubsw %xmm16, %xmm17, %xmm19 +vpsubsw (%rax), %xmm17, %xmm19 +vpsubsw %xmm16, %xmm17, %xmm19 {k1} +vpsubsw (%rax), %xmm17, %xmm19 {k1} +vpsubsw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubsw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsubsw %ymm16, %ymm17, %ymm19 +vpsubsw (%rax), %ymm17, %ymm19 +vpsubsw %ymm16, %ymm17, %ymm19 {k1} +vpsubsw (%rax), %ymm17, %ymm19 {k1} +vpsubsw %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubsw (%rax), %ymm17, %ymm19 {z}{k1} + +vpsubusb %xmm16, %xmm17, %xmm19 +vpsubusb (%rax), %xmm17, %xmm19 +vpsubusb %xmm16, %xmm17, %xmm19 {k1} +vpsubusb (%rax), %xmm17, %xmm19 {k1} +vpsubusb %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubusb (%rax), %xmm17, %xmm19 {z}{k1} + +vpsubusb %ymm16, %ymm17, %ymm19 +vpsubusb (%rax), %ymm17, %ymm19 +vpsubusb %ymm16, %ymm17, %ymm19 {k1} +vpsubusb (%rax), %ymm17, %ymm19 {k1} +vpsubusb %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubusb (%rax), %ymm17, %ymm19 {z}{k1} + +vpsubusw %xmm16, %xmm17, %xmm19 +vpsubusw (%rax), %xmm17, %xmm19 +vpsubusw %xmm16, %xmm17, %xmm19 {k1} +vpsubusw (%rax), %xmm17, %xmm19 {k1} +vpsubusw %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubusw (%rax), %xmm17, %xmm19 {z}{k1} + +vpsubusw %ymm16, %ymm17, %ymm19 +vpsubusw (%rax), %ymm17, %ymm19 +vpsubusw %ymm16, %ymm17, %ymm19 {k1} +vpsubusw (%rax), %ymm17, %ymm19 {k1} +vpsubusw %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubusw (%rax), %ymm17, %ymm19 {z}{k1} + vpsubw %xmm16, %xmm17, %xmm19 vpsubw (%rax), %xmm17, %xmm19 vpsubw %xmm16, %xmm17, %xmm19 {k1} @@ -505,18 +1083,6 @@ vpunpcklwd (%rax), %ymm17, %ymm19 {k1} vpunpcklwd %ymm16, %ymm17, %ymm19 {z}{k1} vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1} -vpmovm2b %k0, %xmm0 -vpmovm2w %k0, %xmm0 - -vpmovm2b %k0, %ymm0 -vpmovm2w %k0, %ymm0 - -vpmovb2m %xmm0, %k0 -vpmovw2m %xmm0, %k0 - -vpmovb2m %ymm0, %k0 -vpmovw2m %ymm0, %k0 - # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -654,6 +1220,54 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: 2 8 0.50 * vpaddb (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: 1 1 0.33 vpaddb %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpaddb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpaddsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpaddsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpaddsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpaddsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddusb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddusb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpaddusb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddusb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddusb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddusb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddusb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddusb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpaddusb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddusb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddusb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddusb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddusw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddusw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpaddusw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddusw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddusw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddusw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddusw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddusw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpaddusw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddusw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddusw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddusw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 0.33 vpaddw %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 7 0.50 * vpaddw (%rax), %xmm17, %xmm19 # CHECK-NEXT: 1 1 0.33 vpaddw %xmm16, %xmm17, %xmm19 {%k1} @@ -678,30 +1292,90 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpalignr $1, %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpavgb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpavgb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpavgb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpavgb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpavgb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpavgb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpavgb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpavgb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpavgb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpavgb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpavgb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpavgb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpavgw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpavgw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpavgw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpavgw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpavgw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpavgw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpavgw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpavgw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpavgw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpavgw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpavgw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpavgw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpblendmb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpblendmb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.33 vpblendmb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpblendmb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpblendmb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpblendmb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpblendmb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpblendmb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.33 vpblendmb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpblendmb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpblendmb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpblendmb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpblendmw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpblendmw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.33 vpblendmw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpblendmw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpblendmw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpblendmw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpblendmw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpblendmw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.33 vpblendmw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpblendmw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpblendmw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpblendmw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19 # CHECK-NEXT: 2 7 1.00 * vpbroadcastb (%rax), %xmm19 +# CHECK-NEXT: 1 1 1.00 vpbroadcastb %eax, %xmm19 # CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 7 1.00 * vpbroadcastb (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpbroadcastb %eax, %xmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpbroadcastb %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 7 1.00 * vpbroadcastb (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpbroadcastb %eax, %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19 +# CHECK-NEXT: 1 3 1.00 vpbroadcastb %eax, %ymm19 # CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vpbroadcastb %eax, %ymm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpbroadcastb %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vpbroadcastb %eax, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19 # CHECK-NEXT: 2 7 1.00 * vpbroadcastw (%rax), %xmm19 +# CHECK-NEXT: 1 1 1.00 vpbroadcastw %eax, %xmm19 # CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19 {%k1} # CHECK-NEXT: 2 7 1.00 * vpbroadcastw (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vpbroadcastw %eax, %xmm19 {%k1} # CHECK-NEXT: 1 1 1.00 vpbroadcastw %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: 2 7 1.00 * vpbroadcastw (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpbroadcastw %eax, %xmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19 +# CHECK-NEXT: 1 3 1.00 vpbroadcastw %eax, %ymm19 # CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %ymm19 {%k1} # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vpbroadcastw %eax, %ymm19 {%k1} # CHECK-NEXT: 1 3 1.00 vpbroadcastw %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vpbroadcastw %eax, %ymm19 {%k1} {z} # CHECK-NEXT: 1 4 1.00 vpcmpeqb %xmm0, %xmm1, %k2 # CHECK-NEXT: 2 10 1.00 * vpcmpeqb (%rax), %xmm1, %k2 # CHECK-NEXT: 1 4 1.00 vpcmpeqb %xmm0, %xmm1, %k2 {%k3} @@ -778,6 +1452,158 @@ 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: 3 7 2.00 vpermi2w %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 4 13 2.00 * vpermi2w (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 3 7 2.00 vpermi2w %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 4 13 2.00 * vpermi2w (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 3 7 2.00 vpermi2w %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 4 13 2.00 * vpermi2w (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 7 2.00 vpermi2w %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 4 14 2.00 * vpermi2w (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 3 7 2.00 vpermi2w %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 4 14 2.00 * vpermi2w (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 3 7 2.00 vpermi2w %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 4 14 2.00 * vpermi2w (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 3 7 2.00 vpermt2w %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 4 13 2.00 * vpermt2w (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 3 7 2.00 vpermt2w %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 4 13 2.00 * vpermt2w (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 3 7 2.00 vpermt2w %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 4 13 2.00 * vpermt2w (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 7 2.00 vpermt2w %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 4 14 2.00 * vpermt2w (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 3 7 2.00 vpermt2w %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 4 14 2.00 * vpermt2w (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 3 7 2.00 vpermt2w %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 4 14 2.00 * vpermt2w (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 0.50 * vpmaddubsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vpmaddubsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vpmaddubsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 0.50 * vpmaddubsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmaddubsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmaddubsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmaddubsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmaddwd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 0.50 * vpmaddwd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 0.50 vpmaddwd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vpmaddwd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmaddwd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vpmaddwd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmaddwd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 0.50 * vpmaddwd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 0.50 vpmaddwd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmaddwd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmaddwd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmaddwd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmaxsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmaxsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmaxsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpmaxsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmaxsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmaxsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmaxsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpmaxsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxub %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmaxub (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxub %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmaxub (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxub %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmaxub (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxub %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxub (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpmaxub %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxub (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxub %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxub (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpmaxuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpmaxuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpmaxuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpmaxuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpmaxuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpmaxuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpmaxuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpmaxuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpmaxuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpmaxuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpminsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpminsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpminsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpminsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpminsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpminsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpminsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpminsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpminsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpminsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpminsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpminsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminub %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpminub (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpminub %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpminub (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminub %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpminub (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminub %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpminub (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpminub %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminub (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminub %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminub (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpminuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpminuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpminuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpminuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpminuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpminuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpminuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpminuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpminuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpminuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vpmovb2m %xmm0, %k0 +# CHECK-NEXT: 1 1 1.00 vpmovw2m %xmm0, %k0 +# CHECK-NEXT: 1 1 1.00 vpmovb2m %ymm0, %k0 +# CHECK-NEXT: 1 1 1.00 vpmovw2m %ymm0, %k0 +# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %xmm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %xmm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %ymm0 +# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %ymm0 # 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} @@ -790,6 +1616,30 @@ 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: 2 4 2.00 vpmovswb %xmm16, %xmm19 +# CHECK-NEXT: 4 5 2.00 * vpmovswb %xmm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovswb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovswb %xmm16, (%rax) {%k1} +# CHECK-NEXT: 2 4 2.00 vpmovswb %ymm16, %xmm19 +# CHECK-NEXT: 4 5 2.00 * vpmovswb %ymm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovswb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovswb %ymm16, (%rax) {%k1} +# CHECK-NEXT: 2 4 2.00 vpmovuswb %xmm16, %xmm19 +# CHECK-NEXT: 4 5 2.00 * vpmovuswb %xmm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovuswb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovuswb %xmm16, (%rax) {%k1} +# CHECK-NEXT: 2 4 2.00 vpmovuswb %ymm16, %xmm19 +# CHECK-NEXT: 4 5 2.00 * vpmovuswb %ymm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovuswb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovuswb %ymm16, (%rax) {%k1} +# CHECK-NEXT: 2 4 2.00 vpmovwb %xmm16, %xmm19 +# CHECK-NEXT: 4 5 2.00 * vpmovwb %xmm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovwb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovwb %xmm16, (%rax) {%k1} +# CHECK-NEXT: 2 4 2.00 vpmovwb %ymm16, %xmm19 +# CHECK-NEXT: 4 5 2.00 * vpmovwb %ymm16, (%rax) +# CHECK-NEXT: 2 4 2.00 vpmovwb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: 4 5 2.00 * vpmovwb %ymm16, (%rax) {%k1} # 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} @@ -802,6 +1652,58 @@ vpmovw2m %ymm0, %k0 # 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 5 0.50 vpmulhrsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 0.50 * vpmulhrsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vpmulhrsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vpmulhrsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 0.50 * vpmulhrsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmulhrsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhrsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmulhrsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 0.50 * vpmulhuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 0.50 vpmulhuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vpmulhuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vpmulhuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 0.50 * vpmulhuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 0.50 vpmulhuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmulhuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmulhuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 0.50 * vpmulhw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 0.50 vpmulhw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vpmulhw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vpmulhw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmulhw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 0.50 * vpmulhw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 0.50 vpmulhw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmulhw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmulhw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmulhw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmullw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 0.50 * vpmullw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 0.50 vpmullw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vpmullw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmullw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vpmullw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 0.50 vpmullw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 0.50 * vpmullw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 0.50 vpmullw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 0.50 * vpmullw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 0.50 vpmullw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 0.50 * vpmullw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vpsadbw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 9 1.00 * vpsadbw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 3 1.00 vpsadbw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 10 1.00 * vpsadbw (%rax), %ymm17, %ymm19 # 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} @@ -842,10 +1744,118 @@ vpmovw2m %ymm0, %k0 # 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 0.50 vpsllvw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsllvw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsllvw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsllvw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsllvw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsllvw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsllvw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsllvw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsllvw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsllvw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsllvw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsllvw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsllw $0, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsllw $0, (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsllw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsllw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsllw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsllw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsllw $0, %ymm16, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsllw $0, (%rax), %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsllw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsllw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsllw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsllw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 2 1.00 vpsllw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsllw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 2 1.00 vpsllw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsllw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 2 1.00 vpsllw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsllw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsllw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsllw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsllw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsllw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsravw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsravw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsravw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsravw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsravw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsravw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsravw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsravw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsravw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsravw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsravw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsravw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsraw $0, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsraw $0, (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsraw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsraw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsraw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsraw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsraw $0, %ymm16, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsraw $0, (%rax), %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsraw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsraw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsraw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsraw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 2 1.00 vpsraw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsraw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 2 1.00 vpsraw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsraw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 2 1.00 vpsraw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsraw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsraw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsraw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsraw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsraw (%rax), %ymm17, %ymm19 {%k1} {z} # 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 vpsrlvw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsrlvw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsrlvw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsrlvw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsrlvw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsrlvw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsrlvw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsrlvw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsrlvw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsrlvw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsrlvw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsrlvw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsrlw $0, %xmm16, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsrlw $0, (%rax), %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsrlw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsrlw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsrlw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsrlw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsrlw $0, %ymm16, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsrlw $0, (%rax), %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsrlw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsrlw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsrlw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsrlw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 2 1.00 vpsrlw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsrlw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 2 1.00 vpsrlw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsrlw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 2 1.00 vpsrlw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsrlw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsrlw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsrlw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vpsrlw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsrlw (%rax), %ymm17, %ymm19 {%k1} {z} # 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} @@ -858,6 +1868,54 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: 1 1 0.33 vpsubb %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpsubb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsubsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsubsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsubsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsubsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubusb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubusb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsubusb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubusb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubusb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubusb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubusb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubusb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsubusb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubusb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubusb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubusb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubusw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubusw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsubusw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubusw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubusw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubusw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubusw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubusw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsubusw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubusw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubusw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubusw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 0.33 vpsubw %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 7 0.50 * vpsubw (%rax), %xmm17, %xmm19 # CHECK-NEXT: 1 1 0.33 vpsubw %xmm16, %xmm17, %xmm19 {%k1} @@ -950,14 +2008,6 @@ vpmovw2m %ymm0, %k0 # 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.33 vpmovm2b %k0, %xmm0 -# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %xmm0 -# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %ymm0 -# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %ymm0 -# CHECK-NEXT: 1 1 1.00 vpmovb2m %xmm0, %k0 -# CHECK-NEXT: 1 1 1.00 vpmovw2m %xmm0, %k0 -# CHECK-NEXT: 1 1 1.00 vpmovb2m %ymm0, %k0 -# CHECK-NEXT: 1 1 1.00 vpmovw2m %ymm0, %k0 # CHECK: Resources: # CHECK-NEXT: [0] - SKXDivider @@ -973,7 +2023,7 @@ vpmovw2m %ymm0, %k0 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 41.33 37.33 106.67 106.67 8.00 357.33 - 2.67 +# CHECK-NEXT: - - 255.33 251.33 222.67 222.67 20.00 503.33 - 6.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -1105,6 +2155,54 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddb (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddb %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddusb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddusb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddusb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddusb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddusb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddusb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddusb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddusb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddusb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddusb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddusb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddusb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddusw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddusw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddusw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddusw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddusw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddusw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddusw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddusw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddusw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddusw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpaddusw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpaddusw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddw %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddw (%rax), %xmm17, %xmm19 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddw %xmm16, %xmm17, %xmm19 {%k1} @@ -1129,30 +2227,90 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpalignr $1, %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpalignr $1, (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpavgb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpavgb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpavgb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpavgb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpavgb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpavgb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpavgb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpavgb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpavgb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpavgb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpavgb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpavgb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpavgw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpavgw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpavgw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpavgw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpavgw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpavgw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpavgw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpavgw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpavgw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpavgw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpavgw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpavgw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpblendmb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpblendmb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpblendmb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpblendmb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpblendmb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpblendmb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpblendmw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpblendmw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpblendmw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpblendmw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpblendmw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpblendmw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpblendmw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %xmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %xmm19 +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %eax, %xmm19 # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %xmm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %eax, %xmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %eax, %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %ymm19 +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %eax, %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %eax, %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastb (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastb %eax, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %xmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %xmm19 +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %eax, %xmm19 # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %xmm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %eax, %xmm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %xmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %eax, %xmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %ymm19 +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %eax, %ymm19 # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %ymm19 {%k1} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %eax, %ymm19 {%k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %xmm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpbroadcastw (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - vpbroadcastw %eax, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - vpcmpeqb %xmm0, %xmm1, %k2 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpcmpeqb (%rax), %xmm1, %k2 # CHECK-NEXT: - - - - - - - 1.00 - - vpcmpeqb %xmm0, %xmm1, %k2 {%k3} @@ -1229,6 +2387,158 @@ vpmovw2m %ymm0, %k0 # 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: - - 0.33 0.33 - - - 2.33 - - vpermi2w %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermi2w (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermi2w %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermi2w (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermi2w %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermi2w (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermi2w %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermi2w (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermi2w %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermi2w (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermi2w %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermi2w (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermt2w %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermt2w (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermt2w %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermt2w (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermt2w %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermt2w (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermt2w %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermt2w (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermt2w %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermt2w (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - vpermt2w %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - vpermt2w (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaddubsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaddubsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaddubsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaddubsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaddubsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaddubsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaddubsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaddubsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaddubsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaddubsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaddubsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaddubsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaddwd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaddwd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaddwd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaddwd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaddwd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaddwd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaddwd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaddwd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaddwd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaddwd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaddwd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaddwd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxub %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxub (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxub %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxub (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxub %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxub (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxub %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxub (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxub %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxub (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxub %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxub (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmaxuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmaxuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminub %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminub (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminub %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminub (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminub %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminub (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminub %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminub (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminub %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminub (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminub %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminub (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpminuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpminuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - - - vpmovb2m %xmm0, %k0 +# CHECK-NEXT: - - 1.00 - - - - - - - vpmovw2m %xmm0, %k0 +# CHECK-NEXT: - - 1.00 - - - - - - - vpmovb2m %ymm0, %k0 +# CHECK-NEXT: - - 1.00 - - - - - - - vpmovw2m %ymm0, %k0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpmovm2b %k0, %xmm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpmovm2w %k0, %xmm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpmovm2b %k0, %ymm0 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpmovm2w %k0, %ymm0 # 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} @@ -1241,6 +2551,30 @@ vpmovw2m %ymm0, %k0 # 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: - - - - - - - 2.00 - - vpmovswb %xmm16, %xmm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovswb %xmm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovswb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovswb %xmm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovswb %ymm16, %xmm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovswb %ymm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovswb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovswb %ymm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovuswb %xmm16, %xmm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovuswb %xmm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovuswb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovuswb %xmm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovuswb %ymm16, %xmm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovuswb %ymm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovuswb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovuswb %ymm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovwb %xmm16, %xmm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovwb %xmm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovwb %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovwb %xmm16, (%rax) {%k1} +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovwb %ymm16, %xmm19 +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovwb %ymm16, (%rax) +# CHECK-NEXT: - - - - - - - 2.00 - - vpmovwb %ymm16, %xmm19 {%k1} +# CHECK-NEXT: - - - - 0.33 0.33 1.00 2.00 - 0.33 vpmovwb %ymm16, (%rax) {%k1} # 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} @@ -1253,6 +2587,58 @@ vpmovw2m %ymm0, %k0 # 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: - - 0.50 0.50 - - - - - - vpmulhrsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhrsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhrsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhrsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhrsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhrsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhrsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhrsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhrsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhrsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhrsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhrsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhuw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhuw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhuw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhuw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhuw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhuw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhuw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhuw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhuw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhuw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhuw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhuw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmulhw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmulhw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmullw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmullw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmullw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmullw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmullw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmullw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmullw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmullw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmullw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmullw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpmullw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpmullw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - - - 1.00 - - vpsadbw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpsadbw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - - - - - 1.00 - - vpsadbw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpsadbw (%rax), %ymm17, %ymm19 # 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} @@ -1293,10 +2679,118 @@ vpmovw2m %ymm0, %k0 # 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: - - 0.50 0.50 - - - - - - vpsllvw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllvw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsllvw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllvw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsllvw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllvw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsllvw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllvw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsllvw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllvw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsllvw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllvw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsllw $0, %xmm16, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllw $0, (%rax), %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsllw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsllw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsllw $0, %ymm16, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllw $0, (%rax), %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsllw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsllw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsllw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsllw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsllw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsllw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsllw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsllw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsllw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsravw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsravw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsravw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsravw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsravw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsravw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsravw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsravw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsravw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsravw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsravw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsravw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsraw $0, %xmm16, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsraw $0, (%rax), %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsraw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsraw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsraw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsraw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsraw $0, %ymm16, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsraw $0, (%rax), %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsraw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsraw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsraw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsraw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsraw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsraw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsraw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsraw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsraw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsraw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsraw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsraw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsraw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsraw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsraw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsraw (%rax), %ymm17, %ymm19 {%k1} {z} # 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 - - - - - - vpsrlvw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlvw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsrlvw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlvw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsrlvw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlvw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsrlvw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlvw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsrlvw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlvw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsrlvw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlvw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsrlw $0, %xmm16, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlw $0, (%rax), %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsrlw $0, %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlw $0, (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsrlw $0, %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlw $0, (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsrlw $0, %ymm16, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlw $0, (%rax), %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsrlw $0, %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlw $0, (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsrlw $0, %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlw $0, (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsrlw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsrlw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsrlw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsrlw %xmm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsrlw %xmm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - vpsrlw %xmm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsrlw (%rax), %ymm17, %ymm19 {%k1} {z} # 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} @@ -1309,6 +2803,54 @@ vpmovw2m %ymm0, %k0 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubb (%rax), %ymm17, %ymm19 {%k1} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubb %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubsb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubsb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubsb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubsb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubsb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubsb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubsb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubsb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubsb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubsb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubsb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubsb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubsw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubsw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubsw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubsw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubsw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubsw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubsw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubsw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubsw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubsw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubsw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubsw (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubusb %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubusb (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubusb %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubusb (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubusb %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubusb (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubusb %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubusb (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubusb %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubusb (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubusb %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubusb (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubusw %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubusw (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubusw %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubusw (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubusw %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubusw (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubusw %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubusw (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubusw %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubusw (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpsubusw %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpsubusw (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubw %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubw (%rax), %xmm17, %xmm19 # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubw %xmm16, %xmm17, %xmm19 {%k1} @@ -1401,11 +2943,3 @@ vpmovw2m %ymm0, %k0 # 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.33 0.33 - - - 0.33 - - vpmovm2b %k0, %xmm0 -# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpmovm2w %k0, %xmm0 -# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpmovm2b %k0, %ymm0 -# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpmovm2w %k0, %ymm0 -# CHECK-NEXT: - - 1.00 - - - - - - - vpmovb2m %xmm0, %k0 -# CHECK-NEXT: - - 1.00 - - - - - - - vpmovw2m %xmm0, %k0 -# CHECK-NEXT: - - 1.00 - - - - - - - vpmovb2m %ymm0, %k0 -# CHECK-NEXT: - - 1.00 - - - - - - - vpmovw2m %ymm0, %k0