| # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py |
| # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver1 -instruction-tables < %s | FileCheck %s |
| |
| vbroadcasti128 (%rax), %ymm0 |
| |
| vbroadcastsd %xmm0, %ymm0 |
| vbroadcastss %xmm0, %ymm0 |
| |
| vextracti128 $1, %ymm0, %xmm2 |
| vextracti128 $1, %ymm0, (%rax) |
| |
| vgatherdpd %xmm0, (%rax,%xmm1,2), %xmm2 |
| vgatherdpd %ymm0, (%rax,%xmm1,2), %ymm2 |
| |
| vgatherdps %xmm0, (%rax,%xmm1,2), %xmm2 |
| vgatherdps %ymm0, (%rax,%ymm1,2), %ymm2 |
| |
| vgatherqpd %xmm0, (%rax,%xmm1,2), %xmm2 |
| vgatherqpd %ymm0, (%rax,%ymm1,2), %ymm2 |
| |
| vgatherqps %xmm0, (%rax,%xmm1,2), %xmm2 |
| vgatherqps %xmm0, (%rax,%ymm1,2), %xmm2 |
| |
| vinserti128 $1, %xmm0, %ymm1, %ymm2 |
| vinserti128 $1, (%rax), %ymm1, %ymm2 |
| |
| vmovntdqa (%rax), %ymm0 |
| |
| vmpsadbw $1, %ymm0, %ymm1, %ymm2 |
| vmpsadbw $1, (%rax), %ymm1, %ymm2 |
| |
| vpabsb %ymm0, %ymm2 |
| vpabsb (%rax), %ymm2 |
| |
| vpabsd %ymm0, %ymm2 |
| vpabsd (%rax), %ymm2 |
| |
| vpabsw %ymm0, %ymm2 |
| vpabsw (%rax), %ymm2 |
| |
| vpackssdw %ymm0, %ymm1, %ymm2 |
| vpackssdw (%rax), %ymm1, %ymm2 |
| |
| vpacksswb %ymm0, %ymm1, %ymm2 |
| vpacksswb (%rax), %ymm1, %ymm2 |
| |
| vpackusdw %ymm0, %ymm1, %ymm2 |
| vpackusdw (%rax), %ymm1, %ymm2 |
| |
| vpackuswb %ymm0, %ymm1, %ymm2 |
| vpackuswb (%rax), %ymm1, %ymm2 |
| |
| vpaddb %ymm0, %ymm1, %ymm2 |
| vpaddb (%rax), %ymm1, %ymm2 |
| |
| vpaddd %ymm0, %ymm1, %ymm2 |
| vpaddd (%rax), %ymm1, %ymm2 |
| |
| vpaddq %ymm0, %ymm1, %ymm2 |
| vpaddq (%rax), %ymm1, %ymm2 |
| |
| vpaddsb %ymm0, %ymm1, %ymm2 |
| vpaddsb (%rax), %ymm1, %ymm2 |
| |
| vpaddsw %ymm0, %ymm1, %ymm2 |
| vpaddsw (%rax), %ymm1, %ymm2 |
| |
| vpaddusb %ymm0, %ymm1, %ymm2 |
| vpaddusb (%rax), %ymm1, %ymm2 |
| |
| vpaddusw %ymm0, %ymm1, %ymm2 |
| vpaddusw (%rax), %ymm1, %ymm2 |
| |
| vpaddw %ymm0, %ymm1, %ymm2 |
| vpaddw (%rax), %ymm1, %ymm2 |
| |
| vpalignr $1, %ymm0, %ymm1, %ymm2 |
| vpalignr $1, (%rax), %ymm1, %ymm2 |
| |
| vpand %ymm0, %ymm1, %ymm2 |
| vpand (%rax), %ymm1, %ymm2 |
| |
| vpandn %ymm0, %ymm1, %ymm2 |
| vpandn (%rax), %ymm1, %ymm2 |
| |
| vpavgb %ymm0, %ymm1, %ymm2 |
| vpavgb (%rax), %ymm1, %ymm2 |
| |
| vpavgw %ymm0, %ymm1, %ymm2 |
| vpavgw (%rax), %ymm1, %ymm2 |
| |
| vpblendd $11, %xmm0, %xmm1, %xmm2 |
| vpblendd $11, (%rax), %xmm1, %xmm2 |
| |
| vpblendd $11, %ymm0, %ymm1, %ymm2 |
| vpblendd $11, (%rax), %ymm1, %ymm2 |
| |
| vpblendvb %ymm3, %ymm0, %ymm1, %ymm2 |
| vpblendvb %ymm3, (%rax), %ymm1, %ymm2 |
| |
| vpblendw $11, %ymm0, %ymm1, %ymm2 |
| vpblendw $11, (%rax), %ymm1, %ymm2 |
| |
| vpbroadcastb %xmm0, %xmm0 |
| vpbroadcastb (%rax), %xmm0 |
| |
| vpbroadcastb %xmm0, %ymm0 |
| vpbroadcastb (%rax), %ymm0 |
| |
| vpbroadcastd %xmm0, %xmm0 |
| vpbroadcastd (%rax), %xmm0 |
| |
| vpbroadcastd %xmm0, %ymm0 |
| vpbroadcastd (%rax), %ymm0 |
| |
| vpbroadcastq %xmm0, %xmm0 |
| vpbroadcastq (%rax), %xmm0 |
| |
| vpbroadcastq %xmm0, %ymm0 |
| vpbroadcastq (%rax), %ymm0 |
| |
| vpbroadcastw %xmm0, %xmm0 |
| vpbroadcastw (%rax), %xmm0 |
| |
| vpbroadcastw %xmm0, %ymm0 |
| vpbroadcastw (%rax), %ymm0 |
| |
| vpcmpeqb %ymm0, %ymm1, %ymm2 |
| vpcmpeqb (%rax), %ymm1, %ymm2 |
| |
| vpcmpeqd %ymm0, %ymm1, %ymm2 |
| vpcmpeqd (%rax), %ymm1, %ymm2 |
| |
| vpcmpeqq %ymm0, %ymm1, %ymm2 |
| vpcmpeqq (%rax), %ymm1, %ymm2 |
| |
| vpcmpeqw %ymm0, %ymm1, %ymm2 |
| vpcmpeqw (%rax), %ymm1, %ymm2 |
| |
| vpcmpgtb %ymm0, %ymm1, %ymm2 |
| vpcmpgtb (%rax), %ymm1, %ymm2 |
| |
| vpcmpgtd %ymm0, %ymm1, %ymm2 |
| vpcmpgtd (%rax), %ymm1, %ymm2 |
| |
| vpcmpgtq %ymm0, %ymm1, %ymm2 |
| vpcmpgtq (%rax), %ymm1, %ymm2 |
| |
| vpcmpgtw %ymm0, %ymm1, %ymm2 |
| vpcmpgtw (%rax), %ymm1, %ymm2 |
| |
| vperm2i128 $1, %ymm0, %ymm1, %ymm2 |
| vperm2i128 $1, (%rax), %ymm1, %ymm2 |
| |
| vpermd %ymm0, %ymm1, %ymm2 |
| vpermd (%rax), %ymm1, %ymm2 |
| |
| vpermpd $1, %ymm0, %ymm2 |
| vpermpd $1, (%rax), %ymm2 |
| |
| vpermps %ymm0, %ymm1, %ymm2 |
| vpermps (%rax), %ymm1, %ymm2 |
| |
| vpermq $1, %ymm0, %ymm2 |
| vpermq $1, (%rax), %ymm2 |
| |
| vpgatherdd %xmm0, (%rax,%xmm1,2), %xmm2 |
| vpgatherdd %ymm0, (%rax,%ymm1,2), %ymm2 |
| |
| vpgatherdq %xmm0, (%rax,%xmm1,2), %xmm2 |
| vpgatherdq %ymm0, (%rax,%xmm1,2), %ymm2 |
| |
| vpgatherqd %xmm0, (%rax,%xmm1,2), %xmm2 |
| vpgatherqd %xmm0, (%rax,%ymm1,2), %xmm2 |
| |
| vpgatherqq %xmm0, (%rax,%xmm1,2), %xmm2 |
| vpgatherqq %ymm0, (%rax,%ymm1,2), %ymm2 |
| |
| vphaddd %ymm0, %ymm1, %ymm2 |
| vphaddd (%rax), %ymm1, %ymm2 |
| |
| vphaddsw %ymm0, %ymm1, %ymm2 |
| vphaddsw (%rax), %ymm1, %ymm2 |
| |
| vphaddw %ymm0, %ymm1, %ymm2 |
| vphaddw (%rax), %ymm1, %ymm2 |
| |
| vphsubd %ymm0, %ymm1, %ymm2 |
| vphsubd (%rax), %ymm1, %ymm2 |
| |
| vphsubsw %ymm0, %ymm1, %ymm2 |
| vphsubsw (%rax), %ymm1, %ymm2 |
| |
| vphsubw %ymm0, %ymm1, %ymm2 |
| vphsubw (%rax), %ymm1, %ymm2 |
| |
| vpmaddubsw %ymm0, %ymm1, %ymm2 |
| vpmaddubsw (%rax), %ymm1, %ymm2 |
| |
| vpmaddwd %ymm0, %ymm1, %ymm2 |
| vpmaddwd (%rax), %ymm1, %ymm2 |
| |
| vpmaskmovd (%rax), %xmm0, %xmm2 |
| vpmaskmovd (%rax), %ymm0, %ymm2 |
| |
| vpmaskmovd %xmm0, %xmm1, (%rax) |
| vpmaskmovd %ymm0, %ymm1, (%rax) |
| |
| vpmaskmovq (%rax), %xmm0, %xmm2 |
| vpmaskmovq (%rax), %ymm0, %ymm2 |
| |
| vpmaskmovq %xmm0, %xmm1, (%rax) |
| vpmaskmovq %ymm0, %ymm1, (%rax) |
| |
| vpmaxsb %ymm0, %ymm1, %ymm2 |
| vpmaxsb (%rax), %ymm1, %ymm2 |
| |
| vpmaxsd %ymm0, %ymm1, %ymm2 |
| vpmaxsd (%rax), %ymm1, %ymm2 |
| |
| vpmaxsw %ymm0, %ymm1, %ymm2 |
| vpmaxsw (%rax), %ymm1, %ymm2 |
| |
| vpmaxub %ymm0, %ymm1, %ymm2 |
| vpmaxub (%rax), %ymm1, %ymm2 |
| |
| vpmaxud %ymm0, %ymm1, %ymm2 |
| vpmaxud (%rax), %ymm1, %ymm2 |
| |
| vpmaxuw %ymm0, %ymm1, %ymm2 |
| vpmaxuw (%rax), %ymm1, %ymm2 |
| |
| vpminsb %ymm0, %ymm1, %ymm2 |
| vpminsb (%rax), %ymm1, %ymm2 |
| |
| vpminsd %ymm0, %ymm1, %ymm2 |
| vpminsd (%rax), %ymm1, %ymm2 |
| |
| vpminsw %ymm0, %ymm1, %ymm2 |
| vpminsw (%rax), %ymm1, %ymm2 |
| |
| vpminub %ymm0, %ymm1, %ymm2 |
| vpminub (%rax), %ymm1, %ymm2 |
| |
| vpminud %ymm0, %ymm1, %ymm2 |
| vpminud (%rax), %ymm1, %ymm2 |
| |
| vpminuw %ymm0, %ymm1, %ymm2 |
| vpminuw (%rax), %ymm1, %ymm2 |
| |
| vpmovmskb %ymm0, %rcx |
| |
| vpmovsxbd %xmm0, %ymm2 |
| vpmovsxbd (%rax), %ymm2 |
| |
| vpmovsxbq %xmm0, %ymm2 |
| vpmovsxbq (%rax), %ymm2 |
| |
| vpmovsxbw %xmm0, %ymm2 |
| vpmovsxbw (%rax), %ymm2 |
| |
| vpmovsxdq %xmm0, %ymm2 |
| vpmovsxdq (%rax), %ymm2 |
| |
| vpmovsxwd %xmm0, %ymm2 |
| vpmovsxwd (%rax), %ymm2 |
| |
| vpmovsxwq %xmm0, %ymm2 |
| vpmovsxwq (%rax), %ymm2 |
| |
| vpmovzxbd %xmm0, %ymm2 |
| vpmovzxbd (%rax), %ymm2 |
| |
| vpmovzxbq %xmm0, %ymm2 |
| vpmovzxbq (%rax), %ymm2 |
| |
| vpmovzxbw %xmm0, %ymm2 |
| vpmovzxbw (%rax), %ymm2 |
| |
| vpmovzxdq %xmm0, %ymm2 |
| vpmovzxdq (%rax), %ymm2 |
| |
| vpmovzxwd %xmm0, %ymm2 |
| vpmovzxwd (%rax), %ymm2 |
| |
| vpmovzxwq %xmm0, %ymm2 |
| vpmovzxwq (%rax), %ymm2 |
| |
| vpmuldq %ymm0, %ymm1, %ymm2 |
| vpmuldq (%rax), %ymm1, %ymm2 |
| |
| vpmulhrsw %ymm0, %ymm1, %ymm2 |
| vpmulhrsw (%rax), %ymm1, %ymm2 |
| |
| vpmulhuw %ymm0, %ymm1, %ymm2 |
| vpmulhuw (%rax), %ymm1, %ymm2 |
| |
| vpmulhw %ymm0, %ymm1, %ymm2 |
| vpmulhw (%rax), %ymm1, %ymm2 |
| |
| vpmulld %ymm0, %ymm1, %ymm2 |
| vpmulld (%rax), %ymm1, %ymm2 |
| |
| vpmullw %ymm0, %ymm1, %ymm2 |
| vpmullw (%rax), %ymm1, %ymm2 |
| |
| vpmuludq %ymm0, %ymm1, %ymm2 |
| vpmuludq (%rax), %ymm1, %ymm2 |
| |
| vpor %ymm0, %ymm1, %ymm2 |
| vpor (%rax), %ymm1, %ymm2 |
| |
| vpsadbw %ymm0, %ymm1, %ymm2 |
| vpsadbw (%rax), %ymm1, %ymm2 |
| |
| vpshufb %ymm0, %ymm1, %ymm2 |
| vpshufb (%rax), %ymm1, %ymm2 |
| |
| vpshufd $1, %ymm0, %ymm2 |
| vpshufd $1, (%rax), %ymm2 |
| |
| vpshufhw $1, %ymm0, %ymm2 |
| vpshufhw $1, (%rax), %ymm2 |
| |
| vpshuflw $1, %ymm0, %ymm2 |
| vpshuflw $1, (%rax), %ymm2 |
| |
| vpsignb %ymm0, %ymm1, %ymm2 |
| vpsignb (%rax), %ymm1, %ymm2 |
| |
| vpsignd %ymm0, %ymm1, %ymm2 |
| vpsignd (%rax), %ymm1, %ymm2 |
| |
| vpsignw %ymm0, %ymm1, %ymm2 |
| vpsignw (%rax), %ymm1, %ymm2 |
| |
| vpslld $1, %ymm0, %ymm2 |
| vpslld %xmm0, %ymm1, %ymm2 |
| vpslld (%rax), %ymm1, %ymm2 |
| |
| vpslldq $1, %ymm1, %ymm2 |
| |
| vpsllq $1, %ymm0, %ymm2 |
| vpsllq %xmm0, %ymm1, %ymm2 |
| vpsllq (%rax), %ymm1, %ymm2 |
| |
| vpsllvd %xmm0, %xmm1, %xmm2 |
| vpsllvd (%rax), %xmm1, %xmm2 |
| |
| vpsllvd %ymm0, %ymm1, %ymm2 |
| vpsllvd (%rax), %ymm1, %ymm2 |
| |
| vpsllvq %xmm0, %xmm1, %xmm2 |
| vpsllvq (%rax), %xmm1, %xmm2 |
| |
| vpsllvq %ymm0, %ymm1, %ymm2 |
| vpsllvq (%rax), %ymm1, %ymm2 |
| |
| vpsllw $1, %ymm0, %ymm2 |
| vpsllw %xmm0, %ymm1, %ymm2 |
| vpsllw (%rax), %ymm1, %ymm2 |
| |
| vpsrad $1, %ymm0, %ymm2 |
| vpsrad %xmm0, %ymm1, %ymm2 |
| vpsrad (%rax), %ymm1, %ymm2 |
| |
| vpsravd %xmm0, %xmm1, %xmm2 |
| vpsravd (%rax), %xmm1, %xmm2 |
| |
| vpsravd %ymm0, %ymm1, %ymm2 |
| vpsravd (%rax), %ymm1, %ymm2 |
| |
| vpsraw $1, %ymm0, %ymm2 |
| vpsraw %xmm0, %ymm1, %ymm2 |
| vpsraw (%rax), %ymm1, %ymm2 |
| |
| vpsrld $1, %ymm0, %ymm2 |
| vpsrld %xmm0, %ymm1, %ymm2 |
| vpsrld (%rax), %ymm1, %ymm2 |
| |
| vpsrldq $1, %ymm1, %ymm2 |
| |
| vpsrlq $1, %ymm0, %ymm2 |
| vpsrlq %xmm0, %ymm1, %ymm2 |
| vpsrlq (%rax), %ymm1, %ymm2 |
| |
| vpsrlvd %xmm0, %xmm1, %xmm2 |
| vpsrlvd (%rax), %xmm1, %xmm2 |
| |
| vpsrlvd %ymm0, %ymm1, %ymm2 |
| vpsrlvd (%rax), %ymm1, %ymm2 |
| |
| vpsrlvq %xmm0, %xmm1, %xmm2 |
| vpsrlvq (%rax), %xmm1, %xmm2 |
| |
| vpsrlvq %ymm0, %ymm1, %ymm2 |
| vpsrlvq (%rax), %ymm1, %ymm2 |
| |
| vpsrlw $1, %ymm0, %ymm2 |
| vpsrlw %xmm0, %ymm1, %ymm2 |
| vpsrlw (%rax), %ymm1, %ymm2 |
| |
| vpsubb %ymm0, %ymm1, %ymm2 |
| vpsubb (%rax), %ymm1, %ymm2 |
| |
| vpsubd %ymm0, %ymm1, %ymm2 |
| vpsubd (%rax), %ymm1, %ymm2 |
| |
| vpsubq %ymm0, %ymm1, %ymm2 |
| vpsubq (%rax), %ymm1, %ymm2 |
| |
| vpsubsb %ymm0, %ymm1, %ymm2 |
| vpsubsb (%rax), %ymm1, %ymm2 |
| |
| vpsubsw %ymm0, %ymm1, %ymm2 |
| vpsubsw (%rax), %ymm1, %ymm2 |
| |
| vpsubusb %ymm0, %ymm1, %ymm2 |
| vpsubusb (%rax), %ymm1, %ymm2 |
| |
| vpsubusw %ymm0, %ymm1, %ymm2 |
| vpsubusw (%rax), %ymm1, %ymm2 |
| |
| vpsubw %ymm0, %ymm1, %ymm2 |
| vpsubw (%rax), %ymm1, %ymm2 |
| |
| vpunpckhbw %ymm0, %ymm1, %ymm2 |
| vpunpckhbw (%rax), %ymm1, %ymm2 |
| |
| vpunpckhdq %ymm0, %ymm1, %ymm2 |
| vpunpckhdq (%rax), %ymm1, %ymm2 |
| |
| vpunpckhqdq %ymm0, %ymm1, %ymm2 |
| vpunpckhqdq (%rax), %ymm1, %ymm2 |
| |
| vpunpckhwd %ymm0, %ymm1, %ymm2 |
| vpunpckhwd (%rax), %ymm1, %ymm2 |
| |
| vpunpcklbw %ymm0, %ymm1, %ymm2 |
| vpunpcklbw (%rax), %ymm1, %ymm2 |
| |
| vpunpckldq %ymm0, %ymm1, %ymm2 |
| vpunpckldq (%rax), %ymm1, %ymm2 |
| |
| vpunpcklqdq %ymm0, %ymm1, %ymm2 |
| vpunpcklqdq (%rax), %ymm1, %ymm2 |
| |
| vpunpcklwd %ymm0, %ymm1, %ymm2 |
| vpunpcklwd (%rax), %ymm1, %ymm2 |
| |
| vpxor %ymm0, %ymm1, %ymm2 |
| vpxor (%rax), %ymm1, %ymm2 |
| |
| # CHECK: Instruction Info: |
| # CHECK-NEXT: [1]: #uOps |
| # CHECK-NEXT: [2]: Latency |
| # CHECK-NEXT: [3]: RThroughput |
| # CHECK-NEXT: [4]: MayLoad |
| # CHECK-NEXT: [5]: MayStore |
| # CHECK-NEXT: [6]: HasSideEffects (U) |
| |
| # CHECK: [1] [2] [3] [4] [5] [6] Instructions: |
| # CHECK-NEXT: 2 8 0.50 * vbroadcasti128 (%rax), %ymm0 |
| # CHECK-NEXT: 2 2 1.00 vbroadcastsd %xmm0, %ymm0 |
| # CHECK-NEXT: 2 2 1.00 vbroadcastss %xmm0, %ymm0 |
| # CHECK-NEXT: 1 1 0.33 vextracti128 $1, %ymm0, %xmm2 |
| # CHECK-NEXT: 2 8 0.50 * vextracti128 $1, %ymm0, (%rax) |
| # CHECK-NEXT: 1 100 0.25 * vgatherdpd %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: 1 100 0.25 * vgatherdpd %ymm0, (%rax,%xmm1,2), %ymm2 |
| # CHECK-NEXT: 1 100 0.25 * vgatherdps %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: 1 100 0.25 * vgatherdps %ymm0, (%rax,%ymm1,2), %ymm2 |
| # CHECK-NEXT: 1 100 0.25 * vgatherqpd %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: 1 100 0.25 * vgatherqpd %ymm0, (%rax,%ymm1,2), %ymm2 |
| # CHECK-NEXT: 1 100 0.25 * vgatherqps %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: 1 100 0.25 * vgatherqps %xmm0, (%rax,%ymm1,2), %xmm2 |
| # CHECK-NEXT: 1 2 0.67 vinserti128 $1, %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 9 0.67 * vinserti128 $1, (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 1 8 0.50 * vmovntdqa (%rax), %ymm0 |
| # CHECK-NEXT: 1 100 0.25 vmpsadbw $1, %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 1 100 0.25 * vmpsadbw $1, (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpabsb %ymm0, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpabsb (%rax), %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpabsd %ymm0, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpabsd (%rax), %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpabsw %ymm0, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpabsw (%rax), %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpackssdw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpackssdw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpacksswb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpacksswb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpackusdw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpackusdw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpackuswb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpackuswb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpaddb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpaddb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpaddd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpaddd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpaddq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpaddq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpaddsb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpaddsb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpaddsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpaddsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpaddusb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpaddusb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpaddusw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpaddusw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpaddw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpaddw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpalignr $1, %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpalignr $1, (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.50 vpand %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.50 * vpand (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.50 vpandn %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.50 * vpandn (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpavgb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpavgb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpavgw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpavgw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 1 1 0.50 vpblendd $11, %xmm0, %xmm1, %xmm2 |
| # CHECK-NEXT: 2 8 1.00 * vpblendd $11, (%rax), %xmm1, %xmm2 |
| # CHECK-NEXT: 2 1 0.50 vpblendd $11, %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 9 1.50 * vpblendd $11, (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpblendvb %ymm3, %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 2.00 * vpblendvb %ymm3, (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpblendw $11, %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpblendw $11, (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 1 1 0.50 vpbroadcastb %xmm0, %xmm0 |
| # CHECK-NEXT: 2 8 1.00 * vpbroadcastb (%rax), %xmm0 |
| # CHECK-NEXT: 2 2 1.00 vpbroadcastb %xmm0, %ymm0 |
| # CHECK-NEXT: 2 8 2.00 * vpbroadcastb (%rax), %ymm0 |
| # CHECK-NEXT: 1 1 0.50 vpbroadcastd %xmm0, %xmm0 |
| # CHECK-NEXT: 1 8 0.50 * vpbroadcastd (%rax), %xmm0 |
| # CHECK-NEXT: 2 2 1.00 vpbroadcastd %xmm0, %ymm0 |
| # CHECK-NEXT: 1 8 0.50 * vpbroadcastd (%rax), %ymm0 |
| # CHECK-NEXT: 1 1 0.50 vpbroadcastq %xmm0, %xmm0 |
| # CHECK-NEXT: 1 8 0.50 * vpbroadcastq (%rax), %xmm0 |
| # CHECK-NEXT: 2 2 1.00 vpbroadcastq %xmm0, %ymm0 |
| # CHECK-NEXT: 1 8 0.50 * vpbroadcastq (%rax), %ymm0 |
| # CHECK-NEXT: 1 1 0.50 vpbroadcastw %xmm0, %xmm0 |
| # CHECK-NEXT: 2 8 1.00 * vpbroadcastw (%rax), %xmm0 |
| # CHECK-NEXT: 2 2 1.00 vpbroadcastw %xmm0, %ymm0 |
| # CHECK-NEXT: 2 8 2.00 * vpbroadcastw (%rax), %ymm0 |
| # CHECK-NEXT: 2 1 0.67 vpcmpeqb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpcmpeqb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpcmpeqd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpcmpeqd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpcmpeqq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpcmpeqq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpcmpeqw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpcmpeqw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpcmpgtb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpcmpgtb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpcmpgtd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpcmpgtd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 1 1 0.50 vpcmpgtq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpcmpgtq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpcmpgtw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpcmpgtw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 8 3 3.00 vperm2i128 $1, %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 12 8 3.00 * vperm2i128 $1, (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 2 1.00 vpermd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 9 1.00 * vpermd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 2 1.00 vpermpd $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 2 9 1.00 * vpermpd $1, (%rax), %ymm2 |
| # CHECK-NEXT: 2 2 1.00 vpermps %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 9 1.00 * vpermps (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 2 1.00 vpermq $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 2 9 1.00 * vpermq $1, (%rax), %ymm2 |
| # CHECK-NEXT: 1 100 0.25 * vpgatherdd %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: 1 100 0.25 * vpgatherdd %ymm0, (%rax,%ymm1,2), %ymm2 |
| # CHECK-NEXT: 1 100 0.25 * vpgatherdq %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: 1 100 0.25 * vpgatherdq %ymm0, (%rax,%xmm1,2), %ymm2 |
| # CHECK-NEXT: 1 100 0.25 * vpgatherqd %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: 1 100 0.25 * vpgatherqd %xmm0, (%rax,%ymm1,2), %xmm2 |
| # CHECK-NEXT: 1 100 0.25 * vpgatherqq %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: 1 100 0.25 * vpgatherqq %ymm0, (%rax,%ymm1,2), %ymm2 |
| # CHECK-NEXT: 1 3 0.25 vphaddd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 1 10 0.50 * vphaddd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 1 3 0.25 vphaddsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 1 10 0.50 * vphaddsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 1 3 0.25 vphaddw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 1 10 0.50 * vphaddw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 1 3 0.25 vphsubd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 1 10 0.50 * vphsubd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 1 3 0.25 vphsubsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 1 10 0.50 * vphsubsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 1 3 0.25 vphsubw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 1 10 0.50 * vphsubw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 4 2.00 vpmaddubsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 11 2.00 * vpmaddubsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 4 2.00 vpmaddwd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 11 2.00 * vpmaddwd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 1 100 0.25 * vpmaskmovd (%rax), %xmm0, %xmm2 |
| # CHECK-NEXT: 1 100 0.25 * vpmaskmovd (%rax), %ymm0, %ymm2 |
| # CHECK-NEXT: 1 100 0.25 * * vpmaskmovd %xmm0, %xmm1, (%rax) |
| # CHECK-NEXT: 1 100 0.25 * * vpmaskmovd %ymm0, %ymm1, (%rax) |
| # CHECK-NEXT: 2 8 1.00 * vpmaskmovq (%rax), %xmm0, %xmm2 |
| # CHECK-NEXT: 2 9 1.50 * vpmaskmovq (%rax), %ymm0, %ymm2 |
| # CHECK-NEXT: 1 100 0.25 * * vpmaskmovq %xmm0, %xmm1, (%rax) |
| # CHECK-NEXT: 1 100 0.25 * * vpmaskmovq %ymm0, %ymm1, (%rax) |
| # CHECK-NEXT: 2 1 0.67 vpmaxsb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpmaxsb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpmaxsd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpmaxsd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpmaxsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpmaxsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpmaxub %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpmaxub (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpmaxud %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpmaxud (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpmaxuw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpmaxuw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpminsb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpminsb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpminsd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpminsd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpminsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpminsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpminub %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpminub (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpminud %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpminud (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpminuw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpminuw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 2 2.00 vpmovmskb %ymm0, %ecx |
| # CHECK-NEXT: 3 1 2.00 vpmovsxbd %xmm0, %ymm2 |
| # CHECK-NEXT: 3 8 2.00 * vpmovsxbd (%rax), %ymm2 |
| # CHECK-NEXT: 3 1 2.00 vpmovsxbq %xmm0, %ymm2 |
| # CHECK-NEXT: 3 8 2.00 * vpmovsxbq (%rax), %ymm2 |
| # CHECK-NEXT: 3 1 2.00 vpmovsxbw %xmm0, %ymm2 |
| # CHECK-NEXT: 3 8 2.00 * vpmovsxbw (%rax), %ymm2 |
| # CHECK-NEXT: 3 1 2.00 vpmovsxdq %xmm0, %ymm2 |
| # CHECK-NEXT: 3 8 2.00 * vpmovsxdq (%rax), %ymm2 |
| # CHECK-NEXT: 3 1 2.00 vpmovsxwd %xmm0, %ymm2 |
| # CHECK-NEXT: 3 8 2.00 * vpmovsxwd (%rax), %ymm2 |
| # CHECK-NEXT: 3 1 2.00 vpmovsxwq %xmm0, %ymm2 |
| # CHECK-NEXT: 3 8 2.00 * vpmovsxwq (%rax), %ymm2 |
| # CHECK-NEXT: 3 1 2.00 vpmovzxbd %xmm0, %ymm2 |
| # CHECK-NEXT: 3 8 2.00 * vpmovzxbd (%rax), %ymm2 |
| # CHECK-NEXT: 3 1 2.00 vpmovzxbq %xmm0, %ymm2 |
| # CHECK-NEXT: 3 8 2.00 * vpmovzxbq (%rax), %ymm2 |
| # CHECK-NEXT: 3 1 2.00 vpmovzxbw %xmm0, %ymm2 |
| # CHECK-NEXT: 3 8 2.00 * vpmovzxbw (%rax), %ymm2 |
| # CHECK-NEXT: 3 1 2.00 vpmovzxdq %xmm0, %ymm2 |
| # CHECK-NEXT: 3 8 2.00 * vpmovzxdq (%rax), %ymm2 |
| # CHECK-NEXT: 3 1 2.00 vpmovzxwd %xmm0, %ymm2 |
| # CHECK-NEXT: 3 8 2.00 * vpmovzxwd (%rax), %ymm2 |
| # CHECK-NEXT: 3 1 2.00 vpmovzxwq %xmm0, %ymm2 |
| # CHECK-NEXT: 3 8 2.00 * vpmovzxwq (%rax), %ymm2 |
| # CHECK-NEXT: 2 4 2.00 vpmuldq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 11 2.00 * vpmuldq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 4 2.00 vpmulhrsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 11 2.00 * vpmulhrsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 4 2.00 vpmulhuw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 11 2.00 * vpmulhuw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 4 2.00 vpmulhw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 11 2.00 * vpmulhw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 4 4.00 vpmulld %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 11 4.00 * vpmulld (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 4 2.00 vpmullw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 11 2.00 * vpmullw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 4 2.00 vpmuludq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 11 2.00 * vpmuludq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.50 vpor %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.50 * vpor (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 3 2.00 vpsadbw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 10 2.00 * vpsadbw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpshufb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpshufb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpshufd $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpshufd $1, (%rax), %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpshufhw $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpshufhw $1, (%rax), %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpshuflw $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpshuflw $1, (%rax), %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpsignb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpsignb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpsignd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpsignd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpsignw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpsignw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpslld $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpslld %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 2.00 * vpslld (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpslldq $1, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpsllq $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpsllq %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 2.00 * vpsllq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 1 3 2.00 vpsllvd %xmm0, %xmm1, %xmm2 |
| # CHECK-NEXT: 1 10 2.00 * vpsllvd (%rax), %xmm1, %xmm2 |
| # CHECK-NEXT: 2 3 4.00 vpsllvd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 10 4.00 * vpsllvd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 1 3 2.00 vpsllvq %xmm0, %xmm1, %xmm2 |
| # CHECK-NEXT: 1 10 2.00 * vpsllvq (%rax), %xmm1, %xmm2 |
| # CHECK-NEXT: 2 3 4.00 vpsllvq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 10 4.00 * vpsllvq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpsllw $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpsllw %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 2.00 * vpsllw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpsrad $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpsrad %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 2.00 * vpsrad (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 1 3 2.00 vpsravd %xmm0, %xmm1, %xmm2 |
| # CHECK-NEXT: 1 10 2.00 * vpsravd (%rax), %xmm1, %xmm2 |
| # CHECK-NEXT: 2 3 4.00 vpsravd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 10 4.00 * vpsravd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpsraw $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpsraw %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 2.00 * vpsraw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpsrld $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpsrld %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 2.00 * vpsrld (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpsrldq $1, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpsrlq $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpsrlq %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 2.00 * vpsrlq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 1 3 2.00 vpsrlvd %xmm0, %xmm1, %xmm2 |
| # CHECK-NEXT: 1 10 2.00 * vpsrlvd (%rax), %xmm1, %xmm2 |
| # CHECK-NEXT: 2 3 4.00 vpsrlvd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 10 4.00 * vpsrlvd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 1 3 2.00 vpsrlvq %xmm0, %xmm1, %xmm2 |
| # CHECK-NEXT: 1 10 2.00 * vpsrlvq (%rax), %xmm1, %xmm2 |
| # CHECK-NEXT: 2 3 4.00 vpsrlvq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 10 4.00 * vpsrlvq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpsrlw $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 2 1 2.00 vpsrlw %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 2.00 * vpsrlw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpsubb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpsubb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpsubd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpsubd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpsubq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpsubq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpsubsb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpsubsb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpsubsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpsubsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpsubusb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpsubusb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpsubusw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpsubusw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.67 vpsubw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.67 * vpsubw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpunpckhbw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpunpckhbw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpunpckhdq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpunpckhqdq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpunpckhqdq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpunpckhwd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpunpckhwd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpunpcklbw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpunpcklbw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpunpckldq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpunpckldq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpunpcklqdq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpunpcklqdq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 1.00 vpunpcklwd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 2 1 0.50 vpxor %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 2 8 0.50 * vpxor (%rax), %ymm1, %ymm2 |
| |
| # CHECK: Resources: |
| # CHECK-NEXT: [0] - ZnAGU0 |
| # CHECK-NEXT: [1] - ZnAGU1 |
| # CHECK-NEXT: [2] - ZnALU0 |
| # CHECK-NEXT: [3] - ZnALU1 |
| # CHECK-NEXT: [4] - ZnALU2 |
| # CHECK-NEXT: [5] - ZnALU3 |
| # CHECK-NEXT: [6] - ZnDivider |
| # CHECK-NEXT: [7] - ZnFPU0 |
| # CHECK-NEXT: [8] - ZnFPU1 |
| # CHECK-NEXT: [9] - ZnFPU2 |
| # CHECK-NEXT: [10] - ZnFPU3 |
| # CHECK-NEXT: [11] - ZnMultiplier |
| |
| # CHECK: Resource pressure per iteration: |
| # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] |
| # CHECK-NEXT: 67.00 67.00 - - - - - 126.17 242.17 161.00 66.67 - |
| |
| # CHECK: Resource pressure by instruction: |
| # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 - 0.50 - vbroadcasti128 (%rax), %ymm0 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vbroadcastsd %xmm0, %ymm0 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vbroadcastss %xmm0, %ymm0 |
| # CHECK-NEXT: - - - - - - - 0.33 0.33 - 0.33 - vextracti128 $1, %ymm0, %xmm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.33 0.33 - 0.33 - vextracti128 $1, %ymm0, (%rax) |
| # CHECK-NEXT: - - - - - - - - - - - - vgatherdpd %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vgatherdpd %ymm0, (%rax,%xmm1,2), %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vgatherdps %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vgatherdps %ymm0, (%rax,%ymm1,2), %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vgatherqpd %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vgatherqpd %ymm0, (%rax,%ymm1,2), %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vgatherqps %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vgatherqps %xmm0, (%rax,%ymm1,2), %xmm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vinserti128 $1, %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vinserti128 $1, (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - vmovntdqa (%rax), %ymm0 |
| # CHECK-NEXT: - - - - - - - - - - - - vmpsadbw $1, %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vmpsadbw $1, (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpabsb %ymm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpabsb (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpabsd %ymm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpabsd (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpabsw %ymm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpabsw (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpackssdw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpackssdw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpacksswb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpacksswb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpackusdw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpackusdw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpackuswb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpackuswb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpaddb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpaddb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpaddd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpaddd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpaddq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpaddq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpaddsb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpaddsb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpaddsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpaddsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpaddusb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpaddusb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpaddusw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpaddusw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpaddw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpaddw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpalignr $1, %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpalignr $1, (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpand %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpand (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpandn %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpandn (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpavgb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpavgb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpavgw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpavgw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vpblendd $11, %xmm0, %xmm1, %xmm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vpblendd $11, (%rax), %xmm1, %xmm2 |
| # CHECK-NEXT: - - - - - - - 0.50 0.50 - - - vpblendd $11, %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 1.50 1.50 - - - vpblendd $11, (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 2.00 - - - - vpblendvb %ymm3, %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 2.00 - - - - vpblendvb %ymm3, (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpblendw $11, %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpblendw $11, (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vpbroadcastb %xmm0, %xmm0 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpbroadcastb (%rax), %xmm0 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpbroadcastb %xmm0, %ymm0 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 - - - vpbroadcastb (%rax), %ymm0 |
| # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vpbroadcastd %xmm0, %xmm0 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vpbroadcastd (%rax), %xmm0 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpbroadcastd %xmm0, %ymm0 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vpbroadcastd (%rax), %ymm0 |
| # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vpbroadcastq %xmm0, %xmm0 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vpbroadcastq (%rax), %xmm0 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpbroadcastq %xmm0, %ymm0 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - vpbroadcastq (%rax), %ymm0 |
| # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - vpbroadcastw %xmm0, %xmm0 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpbroadcastw (%rax), %xmm0 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpbroadcastw %xmm0, %ymm0 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 - - - vpbroadcastw (%rax), %ymm0 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpcmpeqb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpcmpeqb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpcmpeqd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpcmpeqd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpcmpeqq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpcmpeqq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpcmpeqw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpcmpeqw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpcmpgtb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpcmpgtb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpcmpgtd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpcmpgtd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.50 - - 0.50 - vpcmpgtq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - 1.00 - vpcmpgtq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpcmpgtw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpcmpgtw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 3.00 1.50 1.50 - - vperm2i128 $1, %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 3.00 1.50 1.50 - - vperm2i128 $1, (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpermd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpermd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpermpd $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpermpd $1, (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpermps %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpermps (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpermq $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpermq $1, (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vpgatherdd %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vpgatherdd %ymm0, (%rax,%ymm1,2), %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vpgatherdq %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vpgatherdq %ymm0, (%rax,%xmm1,2), %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vpgatherqd %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vpgatherqd %xmm0, (%rax,%ymm1,2), %xmm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vpgatherqq %xmm0, (%rax,%xmm1,2), %xmm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vpgatherqq %ymm0, (%rax,%ymm1,2), %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vphaddd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - vphaddd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vphaddsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - vphaddsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vphaddw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - vphaddw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vphsubd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - vphsubd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vphsubsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - vphsubsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vphsubw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - vphsubw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 2.00 - - - - vpmaddubsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 2.00 - - - - vpmaddubsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 2.00 - - - - vpmaddwd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 2.00 - - - - vpmaddwd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vpmaskmovd (%rax), %xmm0, %xmm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vpmaskmovd (%rax), %ymm0, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vpmaskmovd %xmm0, %xmm1, (%rax) |
| # CHECK-NEXT: - - - - - - - - - - - - vpmaskmovd %ymm0, %ymm1, (%rax) |
| # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 1.00 - - - vpmaskmovq (%rax), %xmm0, %xmm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 1.50 1.50 - - - vpmaskmovq (%rax), %ymm0, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - - - - vpmaskmovq %xmm0, %xmm1, (%rax) |
| # CHECK-NEXT: - - - - - - - - - - - - vpmaskmovq %ymm0, %ymm1, (%rax) |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpmaxsb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpmaxsb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpmaxsd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpmaxsd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpmaxsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpmaxsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpmaxub %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpmaxub (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpmaxud %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpmaxud (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpmaxuw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpmaxuw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpminsb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpminsb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpminsd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpminsd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpminsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpminsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpminub %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpminub (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpminud %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpminud (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpminuw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpminuw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpmovmskb %ymm0, %ecx |
| # CHECK-NEXT: - - - - - - - - 2.00 2.00 - - vpmovsxbd %xmm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - vpmovsxbd (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 2.00 - - vpmovsxbq %xmm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - vpmovsxbq (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 2.00 - - vpmovsxbw %xmm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - vpmovsxbw (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 2.00 - - vpmovsxdq %xmm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - vpmovsxdq (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 2.00 - - vpmovsxwd %xmm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - vpmovsxwd (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 2.00 - - vpmovsxwq %xmm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - vpmovsxwq (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 2.00 - - vpmovzxbd %xmm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - vpmovzxbd (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 2.00 - - vpmovzxbq %xmm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - vpmovzxbq (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 2.00 - - vpmovzxbw %xmm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - vpmovzxbw (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 2.00 - - vpmovzxdq %xmm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - vpmovzxdq (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 2.00 - - vpmovzxwd %xmm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - vpmovzxwd (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 2.00 - - vpmovzxwq %xmm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 2.00 - - vpmovzxwq (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - 2.00 - - - - vpmuldq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 2.00 - - - - vpmuldq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 2.00 - - - - vpmulhrsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 2.00 - - - - vpmulhrsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 2.00 - - - - vpmulhuw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 2.00 - - - - vpmulhuw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 2.00 - - - - vpmulhw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 2.00 - - - - vpmulhw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 4.00 - - - - vpmulld %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 4.00 - - - - vpmulld (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 2.00 - - - - vpmullw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 2.00 - - - - vpmullw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 2.00 - - - - vpmuludq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 2.00 - - - - vpmuludq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpor %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpor (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 2.00 - - - - vpsadbw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 2.00 - - - - vpsadbw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpshufb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpshufb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpshufd $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpshufd $1, (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpshufhw $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpshufhw $1, (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpshuflw $1, %ymm0, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpshuflw $1, (%rax), %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpsignb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpsignb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpsignd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpsignd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpsignw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpsignw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpslld $1, %ymm0, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpslld %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpslld (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpslldq $1, %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpsllq $1, %ymm0, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpsllq %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsllq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 - - - vpsllvd %xmm0, %xmm1, %xmm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 - - - vpsllvd (%rax), %xmm1, %xmm2 |
| # CHECK-NEXT: - - - - - - - - 4.00 - - - vpsllvd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 4.00 - - - vpsllvd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 - - - vpsllvq %xmm0, %xmm1, %xmm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 - - - vpsllvq (%rax), %xmm1, %xmm2 |
| # CHECK-NEXT: - - - - - - - - 4.00 - - - vpsllvq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 4.00 - - - vpsllvq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpsllw $1, %ymm0, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpsllw %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsllw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrad $1, %ymm0, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrad %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsrad (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 - - - vpsravd %xmm0, %xmm1, %xmm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 - - - vpsravd (%rax), %xmm1, %xmm2 |
| # CHECK-NEXT: - - - - - - - - 4.00 - - - vpsravd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 4.00 - - - vpsravd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpsraw $1, %ymm0, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpsraw %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsraw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrld $1, %ymm0, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrld %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsrld (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpsrldq $1, %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrlq $1, %ymm0, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrlq %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsrlq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 - - - vpsrlvd %xmm0, %xmm1, %xmm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 - - - vpsrlvd (%rax), %xmm1, %xmm2 |
| # CHECK-NEXT: - - - - - - - - 4.00 - - - vpsrlvd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 4.00 - - - vpsrlvd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 2.00 - - - vpsrlvq %xmm0, %xmm1, %xmm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 2.00 - - - vpsrlvq (%rax), %xmm1, %xmm2 |
| # CHECK-NEXT: - - - - - - - - 4.00 - - - vpsrlvq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 4.00 - - - vpsrlvq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrlw $1, %ymm0, %ymm2 |
| # CHECK-NEXT: - - - - - - - - - 2.00 - - vpsrlw %xmm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - - 2.00 - - vpsrlw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpsubb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpsubb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpsubd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpsubd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpsubq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpsubq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpsubsb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpsubsb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpsubsw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpsubsw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpsubusb %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpsubusb (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpsubusw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpsubusw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.67 0.67 - 0.67 - vpsubw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.67 0.67 - 0.67 - vpsubw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpunpckhbw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpunpckhbw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpunpckhdq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpunpckhdq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpunpckhqdq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpunpckhqdq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpunpckhwd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpunpckhwd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpunpcklbw %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpunpcklbw (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpunpckldq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpunpckldq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpunpcklqdq %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpunpcklqdq (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - - 1.00 1.00 - - vpunpcklwd %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 1.00 - - vpunpcklwd (%rax), %ymm1, %ymm2 |
| # CHECK-NEXT: - - - - - - - 0.50 0.50 0.50 0.50 - vpxor %ymm0, %ymm1, %ymm2 |
| # CHECK-NEXT: 0.50 0.50 - - - - - 0.50 0.50 0.50 0.50 - vpxor (%rax), %ymm1, %ymm2 |