Index: test/tools/llvm-mca/X86/Generic/resources-xop.s =================================================================== --- /dev/null +++ test/tools/llvm-mca/X86/Generic/resources-xop.s @@ -0,0 +1,1088 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s + +vfrczpd %xmm0, %xmm3 +vfrczpd (%rax), %xmm3 + +vfrczpd %ymm0, %ymm3 +vfrczpd (%rax), %ymm3 + +vfrczps %xmm0, %xmm3 +vfrczps (%rax), %xmm3 + +vfrczps %ymm0, %ymm3 +vfrczps (%rax), %ymm3 + +vfrczsd %xmm0, %xmm3 +vfrczsd (%rax), %xmm3 + +vfrczss %xmm0, %xmm3 +vfrczss (%rax), %xmm3 + +vpcmov %xmm0, %xmm1, %xmm2, %xmm3 +vpcmov (%rax), %xmm0, %xmm1, %xmm3 +vpcmov %xmm0, (%rax), %xmm1, %xmm3 + +vpcmov %ymm0, %ymm1, %ymm2, %ymm3 +vpcmov (%rax), %ymm0, %ymm1, %ymm3 +vpcmov %ymm0, (%rax), %ymm1, %ymm3 + +vpcomb $0, %xmm0, %xmm1, %xmm3 +vpcomb $0, (%rax), %xmm0, %xmm3 + +vpcomb $1, %xmm0, %xmm1, %xmm3 +vpcomb $1, (%rax), %xmm0, %xmm3 + +vpcomb $2, %xmm0, %xmm1, %xmm3 +vpcomb $2, (%rax), %xmm0, %xmm3 + +vpcomb $3, %xmm0, %xmm1, %xmm3 +vpcomb $3, (%rax), %xmm0, %xmm3 + +vpcomb $4, %xmm0, %xmm1, %xmm3 +vpcomb $4, (%rax), %xmm0, %xmm3 + +vpcomb $5, %xmm0, %xmm1, %xmm3 +vpcomb $5, (%rax), %xmm0, %xmm3 + +vpcomb $6, %xmm0, %xmm1, %xmm3 +vpcomb $6, (%rax), %xmm0, %xmm3 + +vpcomb $7, %xmm0, %xmm1, %xmm3 +vpcomb $7, (%rax), %xmm0, %xmm3 + +vpcomd $0, %xmm0, %xmm1, %xmm3 +vpcomd $0, (%rax), %xmm0, %xmm3 + +vpcomd $1, %xmm0, %xmm1, %xmm3 +vpcomd $1, (%rax), %xmm0, %xmm3 + +vpcomd $2, %xmm0, %xmm1, %xmm3 +vpcomd $2, (%rax), %xmm0, %xmm3 + +vpcomd $3, %xmm0, %xmm1, %xmm3 +vpcomd $3, (%rax), %xmm0, %xmm3 + +vpcomd $4, %xmm0, %xmm1, %xmm3 +vpcomd $4, (%rax), %xmm0, %xmm3 + +vpcomd $5, %xmm0, %xmm1, %xmm3 +vpcomd $5, (%rax), %xmm0, %xmm3 + +vpcomd $6, %xmm0, %xmm1, %xmm3 +vpcomd $6, (%rax), %xmm0, %xmm3 + +vpcomd $7, %xmm0, %xmm1, %xmm3 +vpcomd $7, (%rax), %xmm0, %xmm3 + +vpcomq $0, %xmm0, %xmm1, %xmm3 +vpcomq $0, (%rax), %xmm0, %xmm3 + +vpcomq $1, %xmm0, %xmm1, %xmm3 +vpcomq $1, (%rax), %xmm0, %xmm3 + +vpcomq $2, %xmm0, %xmm1, %xmm3 +vpcomq $2, (%rax), %xmm0, %xmm3 + +vpcomq $3, %xmm0, %xmm1, %xmm3 +vpcomq $3, (%rax), %xmm0, %xmm3 + +vpcomq $4, %xmm0, %xmm1, %xmm3 +vpcomq $4, (%rax), %xmm0, %xmm3 + +vpcomq $5, %xmm0, %xmm1, %xmm3 +vpcomq $5, (%rax), %xmm0, %xmm3 + +vpcomq $6, %xmm0, %xmm1, %xmm3 +vpcomq $6, (%rax), %xmm0, %xmm3 + +vpcomq $7, %xmm0, %xmm1, %xmm3 +vpcomq $7, (%rax), %xmm0, %xmm3 + +vpcomub $0, %xmm0, %xmm1, %xmm3 +vpcomub $0, (%rax), %xmm0, %xmm3 + +vpcomub $1, %xmm0, %xmm1, %xmm3 +vpcomub $1, (%rax), %xmm0, %xmm3 + +vpcomub $2, %xmm0, %xmm1, %xmm3 +vpcomub $2, (%rax), %xmm0, %xmm3 + +vpcomub $3, %xmm0, %xmm1, %xmm3 +vpcomub $3, (%rax), %xmm0, %xmm3 + +vpcomub $4, %xmm0, %xmm1, %xmm3 +vpcomub $4, (%rax), %xmm0, %xmm3 + +vpcomub $5, %xmm0, %xmm1, %xmm3 +vpcomub $5, (%rax), %xmm0, %xmm3 + +vpcomub $6, %xmm0, %xmm1, %xmm3 +vpcomub $6, (%rax), %xmm0, %xmm3 + +vpcomub $7, %xmm0, %xmm1, %xmm3 +vpcomub $7, (%rax), %xmm0, %xmm3 + +vpcomud $0, %xmm0, %xmm1, %xmm3 +vpcomud $0, (%rax), %xmm0, %xmm3 + +vpcomud $1, %xmm0, %xmm1, %xmm3 +vpcomud $1, (%rax), %xmm0, %xmm3 + +vpcomud $2, %xmm0, %xmm1, %xmm3 +vpcomud $2, (%rax), %xmm0, %xmm3 + +vpcomud $3, %xmm0, %xmm1, %xmm3 +vpcomud $3, (%rax), %xmm0, %xmm3 + +vpcomud $4, %xmm0, %xmm1, %xmm3 +vpcomud $4, (%rax), %xmm0, %xmm3 + +vpcomud $5, %xmm0, %xmm1, %xmm3 +vpcomud $5, (%rax), %xmm0, %xmm3 + +vpcomud $6, %xmm0, %xmm1, %xmm3 +vpcomud $6, (%rax), %xmm0, %xmm3 + +vpcomud $7, %xmm0, %xmm1, %xmm3 +vpcomud $7, (%rax), %xmm0, %xmm3 + +vpcomuq $0, %xmm0, %xmm1, %xmm3 +vpcomuq $0, (%rax), %xmm0, %xmm3 + +vpcomuq $1, %xmm0, %xmm1, %xmm3 +vpcomuq $1, (%rax), %xmm0, %xmm3 + +vpcomuq $2, %xmm0, %xmm1, %xmm3 +vpcomuq $2, (%rax), %xmm0, %xmm3 + +vpcomuq $3, %xmm0, %xmm1, %xmm3 +vpcomuq $3, (%rax), %xmm0, %xmm3 + +vpcomuq $4, %xmm0, %xmm1, %xmm3 +vpcomuq $4, (%rax), %xmm0, %xmm3 + +vpcomuq $5, %xmm0, %xmm1, %xmm3 +vpcomuq $5, (%rax), %xmm0, %xmm3 + +vpcomuq $6, %xmm0, %xmm1, %xmm3 +vpcomuq $6, (%rax), %xmm0, %xmm3 + +vpcomuq $7, %xmm0, %xmm1, %xmm3 +vpcomuq $7, (%rax), %xmm0, %xmm3 + +vpcomuw $0, %xmm0, %xmm1, %xmm3 +vpcomuw $0, (%rax), %xmm0, %xmm3 + +vpcomuw $1, %xmm0, %xmm1, %xmm3 +vpcomuw $1, (%rax), %xmm0, %xmm3 + +vpcomuw $2, %xmm0, %xmm1, %xmm3 +vpcomuw $2, (%rax), %xmm0, %xmm3 + +vpcomuw $3, %xmm0, %xmm1, %xmm3 +vpcomuw $3, (%rax), %xmm0, %xmm3 + +vpcomuw $4, %xmm0, %xmm1, %xmm3 +vpcomuw $4, (%rax), %xmm0, %xmm3 + +vpcomuw $5, %xmm0, %xmm1, %xmm3 +vpcomuw $5, (%rax), %xmm0, %xmm3 + +vpcomuw $6, %xmm0, %xmm1, %xmm3 +vpcomuw $6, (%rax), %xmm0, %xmm3 + +vpcomuw $7, %xmm0, %xmm1, %xmm3 +vpcomuw $7, (%rax), %xmm0, %xmm3 + +vpcomw $0, %xmm0, %xmm1, %xmm3 +vpcomw $0, (%rax), %xmm0, %xmm3 + +vpcomw $1, %xmm0, %xmm1, %xmm3 +vpcomw $1, (%rax), %xmm0, %xmm3 + +vpcomw $2, %xmm0, %xmm1, %xmm3 +vpcomw $2, (%rax), %xmm0, %xmm3 + +vpcomw $3, %xmm0, %xmm1, %xmm3 +vpcomw $3, (%rax), %xmm0, %xmm3 + +vpcomw $4, %xmm0, %xmm1, %xmm3 +vpcomw $4, (%rax), %xmm0, %xmm3 + +vpcomw $5, %xmm0, %xmm1, %xmm3 +vpcomw $5, (%rax), %xmm0, %xmm3 + +vpcomw $6, %xmm0, %xmm1, %xmm3 +vpcomw $6, (%rax), %xmm0, %xmm3 + +vpcomw $7, %xmm0, %xmm1, %xmm3 +vpcomw $7, (%rax), %xmm0, %xmm3 + +vpermil2pd $0, %xmm0, %xmm1, %xmm2, %xmm3 +vpermil2pd $0, (%rax), %xmm0, %xmm1, %xmm3 +vpermil2pd $0, %xmm0, (%rax), %xmm1, %xmm3 + +vpermil2pd $0, %ymm0, %ymm1, %ymm2, %ymm3 +vpermil2pd $0, (%rax), %ymm0, %ymm1, %ymm3 +vpermil2pd $0, %ymm0, (%rax), %ymm1, %ymm3 + +vpermil2pd $1, %xmm0, %xmm1, %xmm2, %xmm3 +vpermil2pd $1, (%rax), %xmm0, %xmm1, %xmm3 +vpermil2pd $1, %xmm0, (%rax), %xmm1, %xmm3 + +vpermil2pd $1, %ymm0, %ymm1, %ymm2, %ymm3 +vpermil2pd $1, (%rax), %ymm0, %ymm1, %ymm3 +vpermil2pd $1, %ymm0, (%rax), %ymm1, %ymm3 + +vpermil2pd $2, %xmm0, %xmm1, %xmm2, %xmm3 +vpermil2pd $2, (%rax), %xmm0, %xmm1, %xmm3 +vpermil2pd $2, %xmm0, (%rax), %xmm1, %xmm3 + +vpermil2pd $2, %ymm0, %ymm1, %ymm2, %ymm3 +vpermil2pd $2, (%rax), %ymm0, %ymm1, %ymm3 +vpermil2pd $2, %ymm0, (%rax), %ymm1, %ymm3 + +vpermil2pd $3, %xmm0, %xmm1, %xmm2, %xmm3 +vpermil2pd $3, (%rax), %xmm0, %xmm1, %xmm3 +vpermil2pd $3, %xmm0, (%rax), %xmm1, %xmm3 + +vpermil2pd $3, %ymm0, %ymm1, %ymm2, %ymm3 +vpermil2pd $3, (%rax), %ymm0, %ymm1, %ymm3 +vpermil2pd $3, %ymm0, (%rax), %ymm1, %ymm3 + +vpermil2ps $0, %xmm0, %xmm1, %xmm2, %xmm3 +vpermil2ps $0, (%rax), %xmm0, %xmm1, %xmm3 +vpermil2ps $0, %xmm0, (%rax), %xmm1, %xmm3 + +vpermil2ps $0, %ymm0, %ymm1, %ymm2, %ymm3 +vpermil2ps $0, (%rax), %ymm0, %ymm1, %ymm3 +vpermil2ps $0, %ymm0, (%rax), %ymm1, %ymm3 + +vpermil2ps $1, %xmm0, %xmm1, %xmm2, %xmm3 +vpermil2ps $1, (%rax), %xmm0, %xmm1, %xmm3 +vpermil2ps $1, %xmm0, (%rax), %xmm1, %xmm3 + +vpermil2ps $1, %ymm0, %ymm1, %ymm2, %ymm3 +vpermil2ps $1, (%rax), %ymm0, %ymm1, %ymm3 +vpermil2ps $1, %ymm0, (%rax), %ymm1, %ymm3 + +vpermil2ps $2, %xmm0, %xmm1, %xmm2, %xmm3 +vpermil2ps $2, (%rax), %xmm0, %xmm1, %xmm3 +vpermil2ps $2, %xmm0, (%rax), %xmm1, %xmm3 + +vpermil2ps $2, %ymm0, %ymm1, %ymm2, %ymm3 +vpermil2ps $2, (%rax), %ymm0, %ymm1, %ymm3 +vpermil2ps $2, %ymm0, (%rax), %ymm1, %ymm3 + +vpermil2ps $3, %xmm0, %xmm1, %xmm2, %xmm3 +vpermil2ps $3, (%rax), %xmm0, %xmm1, %xmm3 +vpermil2ps $3, %xmm0, (%rax), %xmm1, %xmm3 + +vpermil2ps $3, %ymm0, %ymm1, %ymm2, %ymm3 +vpermil2ps $3, (%rax), %ymm0, %ymm1, %ymm3 +vpermil2ps $3, %ymm0, (%rax), %ymm1, %ymm3 + +vphaddbd %xmm0, %xmm3 +vphaddbd (%rax), %xmm3 + +vphaddbq %xmm0, %xmm3 +vphaddbq (%rax), %xmm3 + +vphaddbw %xmm0, %xmm3 +vphaddbw (%rax), %xmm3 + +vphadddq %xmm0, %xmm3 +vphadddq (%rax), %xmm3 + +vphaddubd %xmm0, %xmm3 +vphaddubd (%rax), %xmm3 + +vphaddubq %xmm0, %xmm3 +vphaddubq (%rax), %xmm3 + +vphaddubw %xmm0, %xmm3 +vphaddubw (%rax), %xmm3 + +vphaddudq %xmm0, %xmm3 +vphaddudq (%rax), %xmm3 + +vphadduwd %xmm0, %xmm3 +vphadduwd (%rax), %xmm3 + +vphadduwq %xmm0, %xmm3 +vphadduwq (%rax), %xmm3 + +vphaddwd %xmm0, %xmm3 +vphaddwd (%rax), %xmm3 + +vphaddwq %xmm0, %xmm3 +vphaddwq (%rax), %xmm3 + +vphsubbw %xmm0, %xmm3 +vphsubbw (%rax), %xmm3 + +vphsubdq %xmm0, %xmm3 +vphsubdq (%rax), %xmm3 + +vphsubwd %xmm0, %xmm3 +vphsubwd (%rax), %xmm3 + +vpmacsdd %xmm0, %xmm1, %xmm2, %xmm3 +vpmacsdd %xmm0, (%rax), %xmm1, %xmm3 + +vpmacsdqh %xmm0, %xmm1, %xmm2, %xmm3 +vpmacsdqh %xmm0, (%rax), %xmm1, %xmm3 + +vpmacsdql %xmm0, %xmm1, %xmm2, %xmm3 +vpmacsdql %xmm0, (%rax), %xmm1, %xmm3 + +vpmacssdd %xmm0, %xmm1, %xmm2, %xmm3 +vpmacssdd %xmm0, (%rax), %xmm1, %xmm3 + +vpmacssdqh %xmm0, %xmm1, %xmm2, %xmm3 +vpmacssdqh %xmm0, (%rax), %xmm1, %xmm3 + +vpmacssdql %xmm0, %xmm1, %xmm2, %xmm3 +vpmacssdql %xmm0, (%rax), %xmm1, %xmm3 + +vpmacsswd %xmm0, %xmm1, %xmm2, %xmm3 +vpmacsswd %xmm0, (%rax), %xmm1, %xmm3 + +vpmacssww %xmm0, %xmm1, %xmm2, %xmm3 +vpmacssww %xmm0, (%rax), %xmm1, %xmm3 + +vpmacswd %xmm0, %xmm1, %xmm2, %xmm3 +vpmacswd %xmm0, (%rax), %xmm1, %xmm3 + +vpmacsww %xmm0, %xmm1, %xmm2, %xmm3 +vpmacsww %xmm0, (%rax), %xmm1, %xmm3 + +vpmadcsswd %xmm0, %xmm1, %xmm2, %xmm3 +vpmadcsswd %xmm0, (%rax), %xmm1, %xmm3 + +vpmadcswd %xmm0, %xmm1, %xmm2, %xmm3 +vpmadcswd %xmm0, (%rax), %xmm1, %xmm3 + +vpperm %xmm0, %xmm1, %xmm2, %xmm3 +vpperm %xmm0, (%rax), %xmm1, %xmm3 + +vpperm %xmm0, %xmm1, %xmm2, %xmm3 +vpperm (%rax), %xmm0, %xmm1, %xmm3 + +vprotb %xmm0, %xmm1, %xmm3 +vprotb (%rax), %xmm0, %xmm3 + +# FIXME: i'm not certain that is what the docs meant re %xmm8 +vprotb %xmm8, %xmm0, %xmm3 +vprotb %xmm8, (%rax), %xmm3 + +vprotb $8, %xmm0, %xmm3 +vprotb $8, (%rax), %xmm3 + +vprotb $-9, %xmm0, %xmm3 +vprotb $-9, (%rax), %xmm3 + +vprotd %xmm0, %xmm1, %xmm3 +vprotd (%rax), %xmm0, %xmm3 + +# FIXME: i'm not certain that is what the docs meant re %xmm8 +vprotd %xmm8, %xmm0, %xmm3 +vprotd %xmm8, (%rax), %xmm3 + +vprotd $16, %xmm0, %xmm3 +vprotd $16, (%rax), %xmm3 + +vprotd $-17, %xmm0, %xmm3 +vprotd $-17, (%rax), %xmm3 + +vprotq %xmm0, %xmm1, %xmm3 +vprotq (%rax), %xmm0, %xmm3 + +# FIXME: i'm not certain that is what the docs meant re %xmm8 +vprotq %xmm8, %xmm0, %xmm3 +vprotq %xmm8, (%rax), %xmm3 + +vprotq $32, %xmm0, %xmm3 +vprotq $32, (%rax), %xmm3 + +vprotq $-33, %xmm0, %xmm3 +vprotq $-33, (%rax), %xmm3 + +vprotw %xmm0, %xmm1, %xmm3 +vprotw (%rax), %xmm0, %xmm3 + +# FIXME: i'm not certain that is what the docs meant re %xmm8 +vprotw %xmm8, %xmm0, %xmm3 +vprotw %xmm8, (%rax), %xmm3 + +vprotw $4, %xmm0, %xmm3 +vprotw $4, (%rax), %xmm3 + +vprotw $-5, %xmm0, %xmm3 +vprotw $-5, (%rax), %xmm3 + +vpshab %xmm0, %xmm1, %xmm3 +vpshab (%rax), %xmm0, %xmm3 +vpshab %xmm0, (%rax), %xmm3 + +vpshad %xmm0, %xmm1, %xmm3 +vpshad (%rax), %xmm0, %xmm3 +vpshad %xmm0, (%rax), %xmm3 + +vpshaq %xmm0, %xmm1, %xmm3 +vpshaq (%rax), %xmm0, %xmm3 +vpshaq %xmm0, (%rax), %xmm3 + +vpshaw %xmm0, %xmm1, %xmm3 +vpshaw (%rax), %xmm0, %xmm3 +vpshaw %xmm0, (%rax), %xmm3 + +vpshlb %xmm0, %xmm1, %xmm3 +vpshlb (%rax), %xmm0, %xmm3 +vpshlb %xmm0, (%rax), %xmm3 + +vpshlq %xmm0, %xmm1, %xmm3 +vpshlq (%rax), %xmm0, %xmm3 +vpshlq %xmm0, (%rax), %xmm3 + +vpshlw %xmm0, %xmm1, %xmm3 +vpshlw (%rax), %xmm0, %xmm3 +vpshlw %xmm0, (%rax), %xmm3 + +# 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 + +# CHECK: [1] [2] [3] [4] [5] [6] Instructions: +# CHECK-NEXT: 1 3 1.00 vfrczpd %xmm0, %xmm3 +# CHECK-NEXT: 2 9 1.00 * vfrczpd (%rax), %xmm3 +# CHECK-NEXT: 1 3 1.00 vfrczpd %ymm0, %ymm3 +# CHECK-NEXT: 2 10 1.00 * vfrczpd (%rax), %ymm3 +# CHECK-NEXT: 1 3 1.00 vfrczps %xmm0, %xmm3 +# CHECK-NEXT: 2 9 1.00 * vfrczps (%rax), %xmm3 +# CHECK-NEXT: 1 3 1.00 vfrczps %ymm0, %ymm3 +# CHECK-NEXT: 2 10 1.00 * vfrczps (%rax), %ymm3 +# CHECK-NEXT: 1 3 1.00 vfrczsd %xmm0, %xmm3 +# CHECK-NEXT: 2 9 1.00 * vfrczsd (%rax), %xmm3 +# CHECK-NEXT: 1 3 1.00 vfrczss %xmm0, %xmm3 +# CHECK-NEXT: 2 9 1.00 * vfrczss (%rax), %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcmov %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcmov (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcmov %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 1 1.00 vpcmov %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpcmov (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpcmov %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: 1 1 0.50 vpcomb $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomb $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomb $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomb $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomb $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomb $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomb $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomb $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomb $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomb $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomb $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomb $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomb $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomb $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomb $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomb $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomd $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomd $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomd $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomd $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomd $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomd $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomd $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomd $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomd $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomd $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomd $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomd $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomd $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomd $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomd $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomd $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomq $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomq $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomq $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomq $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomq $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomq $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomq $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomq $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomq $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomq $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomq $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomq $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomq $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomq $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomq $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomq $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomub $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomub $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomub $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomub $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomub $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomub $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomub $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomub $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomub $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomub $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomub $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomub $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomub $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomub $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomub $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomub $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomud $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomud $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomud $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomud $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomud $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomud $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomud $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomud $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomud $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomud $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomud $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomud $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomud $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomud $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomud $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomud $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuq $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuq $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuq $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuq $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuq $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuq $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuq $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuq $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuq $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuq $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuq $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuq $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuq $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuq $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuq $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuq $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuw $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuw $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuw $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuw $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuw $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuw $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuw $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuw $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuw $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuw $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuw $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuw $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuw $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuw $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomuw $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomuw $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomw $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomw $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomw $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomw $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomw $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomw $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomw $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomw $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomw $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomw $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomw $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomw $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomw $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomw $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpcomw $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpcomw $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 1.00 vpermil2pd $0, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2pd $0, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2pd $0, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 1 1.00 vpermil2pd $0, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2pd $0, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2pd $0, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: 1 1 1.00 vpermil2pd $1, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2pd $1, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2pd $1, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 1 1.00 vpermil2pd $1, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2pd $1, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2pd $1, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: 1 1 1.00 vpermil2pd $2, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2pd $2, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2pd $2, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 1 1.00 vpermil2pd $2, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2pd $2, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2pd $2, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: 1 1 1.00 vpermil2pd $3, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2pd $3, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2pd $3, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 1 1.00 vpermil2pd $3, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2pd $3, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2pd $3, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: 1 1 1.00 vpermil2ps $0, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2ps $0, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2ps $0, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 1 1.00 vpermil2ps $0, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2ps $0, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2ps $0, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: 1 1 1.00 vpermil2ps $1, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2ps $1, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2ps $1, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 1 1.00 vpermil2ps $1, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2ps $1, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2ps $1, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: 1 1 1.00 vpermil2ps $2, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2ps $2, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2ps $2, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 1 1.00 vpermil2ps $2, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2ps $2, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2ps $2, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: 1 1 1.00 vpermil2ps $3, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2ps $3, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpermil2ps $3, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 1 1.00 vpermil2ps $3, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2ps $3, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: 2 8 1.00 * vpermil2ps $3, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: 3 3 1.50 vphaddbd %xmm0, %xmm3 +# CHECK-NEXT: 4 9 1.50 * vphaddbd (%rax), %xmm3 +# CHECK-NEXT: 3 3 1.50 vphaddbq %xmm0, %xmm3 +# CHECK-NEXT: 4 9 1.50 * vphaddbq (%rax), %xmm3 +# CHECK-NEXT: 3 3 1.50 vphaddbw %xmm0, %xmm3 +# CHECK-NEXT: 4 9 1.50 * vphaddbw (%rax), %xmm3 +# CHECK-NEXT: 3 3 1.50 vphadddq %xmm0, %xmm3 +# CHECK-NEXT: 4 9 1.50 * vphadddq (%rax), %xmm3 +# CHECK-NEXT: 3 3 1.50 vphaddubd %xmm0, %xmm3 +# CHECK-NEXT: 4 9 1.50 * vphaddubd (%rax), %xmm3 +# CHECK-NEXT: 3 3 1.50 vphaddubq %xmm0, %xmm3 +# CHECK-NEXT: 4 9 1.50 * vphaddubq (%rax), %xmm3 +# CHECK-NEXT: 3 3 1.50 vphaddubw %xmm0, %xmm3 +# CHECK-NEXT: 4 9 1.50 * vphaddubw (%rax), %xmm3 +# CHECK-NEXT: 3 3 1.50 vphaddudq %xmm0, %xmm3 +# CHECK-NEXT: 4 9 1.50 * vphaddudq (%rax), %xmm3 +# CHECK-NEXT: 3 3 1.50 vphadduwd %xmm0, %xmm3 +# CHECK-NEXT: 4 9 1.50 * vphadduwd (%rax), %xmm3 +# CHECK-NEXT: 3 3 1.50 vphadduwq %xmm0, %xmm3 +# CHECK-NEXT: 4 9 1.50 * vphadduwq (%rax), %xmm3 +# CHECK-NEXT: 3 3 1.50 vphaddwd %xmm0, %xmm3 +# CHECK-NEXT: 4 9 1.50 * vphaddwd (%rax), %xmm3 +# CHECK-NEXT: 3 3 1.50 vphaddwq %xmm0, %xmm3 +# CHECK-NEXT: 4 9 1.50 * vphaddwq (%rax), %xmm3 +# CHECK-NEXT: 3 3 1.50 vphsubbw %xmm0, %xmm3 +# CHECK-NEXT: 4 9 1.50 * vphsubbw (%rax), %xmm3 +# CHECK-NEXT: 3 3 1.50 vphsubdq %xmm0, %xmm3 +# CHECK-NEXT: 4 9 1.50 * vphsubdq (%rax), %xmm3 +# CHECK-NEXT: 3 3 1.50 vphsubwd %xmm0, %xmm3 +# CHECK-NEXT: 4 9 1.50 * vphsubwd (%rax), %xmm3 +# CHECK-NEXT: 1 5 1.00 vpmacsdd %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 11 1.00 * vpmacsdd %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 5 1.00 vpmacsdqh %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 11 1.00 * vpmacsdqh %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 5 1.00 vpmacsdql %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 11 1.00 * vpmacsdql %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 5 1.00 vpmacssdd %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 11 1.00 * vpmacssdd %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 5 1.00 vpmacssdqh %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 11 1.00 * vpmacssdqh %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 5 1.00 vpmacssdql %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 11 1.00 * vpmacssdql %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 5 1.00 vpmacsswd %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 11 1.00 * vpmacsswd %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 5 1.00 vpmacssww %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 11 1.00 * vpmacssww %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 5 1.00 vpmacswd %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 11 1.00 * vpmacswd %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 5 1.00 vpmacsww %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 11 1.00 * vpmacsww %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 5 1.00 vpmadcsswd %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 11 1.00 * vpmadcsswd %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 5 1.00 vpmadcswd %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 11 1.00 * vpmadcswd %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpperm %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpperm %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: 1 1 0.50 vpperm %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: 2 7 0.50 * vpperm (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotb %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotb (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotb %xmm8, %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotb %xmm8, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotb $8, %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotb $8, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotb $247, %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotb $247, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotd %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotd (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotd %xmm8, %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotd %xmm8, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotd $16, %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotd $16, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotd $239, %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotd $239, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotq %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotq (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotq %xmm8, %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotq %xmm8, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotq $32, %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotq $32, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotq $223, %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotq $223, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotw %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotw (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotw %xmm8, %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotw %xmm8, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotw $4, %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotw $4, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vprotw $251, %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vprotw $251, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vpshab %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpshab (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpshab %xmm0, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vpshad %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpshad (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpshad %xmm0, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vpshaq %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpshaq (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpshaq %xmm0, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vpshaw %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpshaw (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpshaw %xmm0, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vpshlb %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpshlb (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpshlb %xmm0, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vpshlq %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpshlq (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpshlq %xmm0, (%rax), %xmm3 +# CHECK-NEXT: 1 1 1.00 vpshlw %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpshlw (%rax), %xmm0, %xmm3 +# CHECK-NEXT: 2 7 1.00 * vpshlw %xmm0, (%rax), %xmm3 + +# CHECK: Resources: +# CHECK-NEXT: [0] - SBDivider +# CHECK-NEXT: [1] - SBFPDivider +# CHECK-NEXT: [2] - SBPort0 +# CHECK-NEXT: [3] - SBPort1 +# CHECK-NEXT: [4] - SBPort4 +# CHECK-NEXT: [5] - SBPort5 +# CHECK-NEXT: [6.0] - SBPort23 +# CHECK-NEXT: [6.1] - SBPort23 + +# CHECK: Resource pressure per iteration: +# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] +# CHECK-NEXT: - - 77.00 124.50 - 163.50 82.50 82.50 + +# CHECK: Resource pressure by instruction: +# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: +# CHECK-NEXT: - - - 1.00 - - - - vfrczpd %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfrczpd (%rax), %xmm3 +# CHECK-NEXT: - - - 1.00 - - - - vfrczpd %ymm0, %ymm3 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfrczpd (%rax), %ymm3 +# CHECK-NEXT: - - - 1.00 - - - - vfrczps %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfrczps (%rax), %xmm3 +# CHECK-NEXT: - - - 1.00 - - - - vfrczps %ymm0, %ymm3 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfrczps (%rax), %ymm3 +# CHECK-NEXT: - - - 1.00 - - - - vfrczsd %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfrczsd (%rax), %xmm3 +# CHECK-NEXT: - - - 1.00 - - - - vfrczss %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfrczss (%rax), %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmov %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmov (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmov %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 - - vpcmov %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpcmov (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpcmov %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomb $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomb $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomb $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomb $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomb $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomb $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomb $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomb $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomb $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomb $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomb $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomb $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomb $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomb $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomb $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomb $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomd $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomd $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomd $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomd $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomd $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomd $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomd $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomd $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomd $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomd $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomd $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomd $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomd $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomd $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomd $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomd $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomq $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomq $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomq $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomq $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomq $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomq $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomq $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomq $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomq $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomq $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomq $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomq $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomq $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomq $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomq $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomq $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomub $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomub $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomub $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomub $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomub $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomub $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomub $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomub $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomub $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomub $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomub $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomub $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomub $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomub $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomub $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomub $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomud $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomud $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomud $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomud $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomud $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomud $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomud $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomud $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomud $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomud $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomud $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomud $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomud $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomud $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomud $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomud $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuq $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuq $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuq $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuq $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuq $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuq $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuq $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuq $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuq $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuq $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuq $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuq $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuq $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuq $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuq $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuq $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuw $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuw $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuw $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuw $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuw $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuw $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuw $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuw $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuw $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuw $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuw $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuw $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuw $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuw $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomuw $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomuw $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomw $0, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomw $0, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomw $1, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomw $1, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomw $2, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomw $2, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomw $3, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomw $3, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomw $4, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomw $4, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomw $5, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomw $5, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomw $6, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomw $6, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomw $7, %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomw $7, (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2pd $0, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $0, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $0, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2pd $0, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $0, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $0, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2pd $1, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $1, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $1, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2pd $1, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $1, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $1, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2pd $2, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $2, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $2, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2pd $2, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $2, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $2, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2pd $3, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $3, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $3, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2pd $3, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $3, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $3, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2ps $0, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $0, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $0, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2ps $0, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $0, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $0, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2ps $1, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $1, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $1, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2ps $1, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $1, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $1, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2ps $2, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $2, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $2, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2ps $2, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $2, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $2, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2ps $3, %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $3, (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $3, %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - - - - 1.00 - - vpermil2ps $3, %ymm0, %ymm1, %ymm2, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $3, (%rax), %ymm0, %ymm1, %ymm3 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $3, %ymm0, (%rax), %ymm1, %ymm3 +# CHECK-NEXT: - - - 1.50 - 1.50 - - vphaddbd %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphaddbd (%rax), %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 - - vphaddbq %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphaddbq (%rax), %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 - - vphaddbw %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphaddbw (%rax), %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 - - vphadddq %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphadddq (%rax), %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 - - vphaddubd %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphaddubd (%rax), %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 - - vphaddubq %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphaddubq (%rax), %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 - - vphaddubw %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphaddubw (%rax), %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 - - vphaddudq %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphaddudq (%rax), %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 - - vphadduwd %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphadduwd (%rax), %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 - - vphadduwq %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphadduwq (%rax), %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 - - vphaddwd %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphaddwd (%rax), %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 - - vphaddwq %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphaddwq (%rax), %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 - - vphsubbw %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphsubbw (%rax), %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 - - vphsubdq %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphsubdq (%rax), %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 - - vphsubwd %xmm0, %xmm3 +# CHECK-NEXT: - - - 1.50 - 1.50 0.50 0.50 vphsubwd (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpmacsdd %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacsdd %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpmacsdqh %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacsdqh %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpmacsdql %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacsdql %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpmacssdd %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacssdd %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpmacssdqh %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacssdqh %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpmacssdql %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacssdql %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpmacsswd %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacsswd %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpmacssww %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacssww %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpmacswd %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacswd %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpmacsww %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacsww %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpmadcsswd %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmadcsswd %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpmadcswd %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmadcswd %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpperm %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpperm %xmm0, (%rax), %xmm1, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpperm %xmm0, %xmm1, %xmm2, %xmm3 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpperm (%rax), %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotb %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotb (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotb %xmm8, %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotb %xmm8, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotb $8, %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotb $8, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotb $247, %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotb $247, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotd %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotd (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotd %xmm8, %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotd %xmm8, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotd $16, %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotd $16, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotd $239, %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotd $239, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotq %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotq (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotq %xmm8, %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotq %xmm8, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotq $32, %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotq $32, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotq $223, %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotq $223, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotw %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotw (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotw %xmm8, %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotw %xmm8, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotw $4, %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotw $4, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vprotw $251, %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotw $251, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpshab %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshab (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshab %xmm0, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpshad %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshad (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshad %xmm0, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpshaq %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshaq (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshaq %xmm0, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpshaw %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshaw (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshaw %xmm0, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpshlb %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshlb (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshlb %xmm0, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpshlq %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshlq (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshlq %xmm0, (%rax), %xmm3 +# CHECK-NEXT: - - 1.00 - - - - - vpshlw %xmm0, %xmm1, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshlw (%rax), %xmm0, %xmm3 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshlw %xmm0, (%rax), %xmm3