From: Simon Pilgrim Date: Sat, 26 Jan 2019 13:00:46 +0000 (+0000) Subject: [llvm-mca][X86] Add some missing DQI tests X-Git-Tag: llvmorg-10-init~13605 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c9d33907efbdffddae3a2c85e90574aa59a70455;p=platform%2Fupstream%2Fllvm.git [llvm-mca][X86] Add some missing DQI tests Match more of the coverage of test\CodeGen\X86\avx512-schedule.ll as discussed on D57244 llvm-svn: 352273 --- diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s index 68b4e5c..1bbd0f5 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s @@ -21,6 +21,46 @@ vaddps %zmm16, %zmm17, %zmm19 {z}{k1} vaddps (%rax), %zmm17, %zmm19 {z}{k1} vaddps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} +vcvtdq2pd %ymm16, %zmm19 +vcvtdq2pd (%rax), %zmm19 +vcvtdq2pd (%rax){1to8}, %zmm19 +vcvtdq2pd %ymm16, %zmm19 {k1} +vcvtdq2pd (%rax), %zmm19 {k1} +vcvtdq2pd (%rax){1to8}, %zmm19 {k1} +vcvtdq2pd %ymm16, %zmm19 {z}{k1} +vcvtdq2pd (%rax), %zmm19 {z}{k1} +vcvtdq2pd (%rax){1to8}, %zmm19 {z}{k1} + +vcvtdq2ps %zmm16, %zmm19 +vcvtdq2ps (%rax), %zmm19 +vcvtdq2ps (%rax){1to16}, %zmm19 +vcvtdq2ps %zmm16, %zmm19 {k1} +vcvtdq2ps (%rax), %zmm19 {k1} +vcvtdq2ps (%rax){1to16}, %zmm19 {k1} +vcvtdq2ps %zmm16, %zmm19 {z}{k1} +vcvtdq2ps (%rax), %zmm19 {z}{k1} +vcvtdq2ps (%rax){1to16}, %zmm19 {z}{k1} + +vcvtps2dq %zmm16, %zmm19 +vcvtps2dq (%rax), %zmm19 +vcvtps2dq (%rax){1to16}, %zmm19 +vcvtps2dq %zmm16, %zmm19 {k1} +vcvtps2dq (%rax), %zmm19 {k1} +vcvtps2dq (%rax){1to16}, %zmm19 {k1} +vcvtps2dq %zmm16, %zmm19 {z}{k1} +vcvtps2dq (%rax), %zmm19 {z}{k1} +vcvtps2dq (%rax){1to16}, %zmm19 {z}{k1} + +vcvttps2dq %zmm16, %zmm19 +vcvttps2dq (%rax), %zmm19 +vcvttps2dq (%rax){1to16}, %zmm19 +vcvttps2dq %zmm16, %zmm19 {k1} +vcvttps2dq (%rax), %zmm19 {k1} +vcvttps2dq (%rax){1to16}, %zmm19 {k1} +vcvttps2dq %zmm16, %zmm19 {z}{k1} +vcvttps2dq (%rax), %zmm19 {z}{k1} +vcvttps2dq (%rax){1to16}, %zmm19 {z}{k1} + vdivpd %zmm16, %zmm17, %zmm19 vdivpd (%rax), %zmm17, %zmm19 vdivpd (%rax){1to8}, %zmm17, %zmm19 @@ -41,6 +81,46 @@ vdivps %zmm16, %zmm17, %zmm19 {z}{k1} vdivps (%rax), %zmm17, %zmm19 {z}{k1} vdivps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} +vmaxpd %zmm16, %zmm17, %zmm19 +vmaxpd (%rax), %zmm17, %zmm19 +vmaxpd (%rax){1to8}, %zmm17, %zmm19 +vmaxpd %zmm16, %zmm17, %zmm19 {k1} +vmaxpd (%rax), %zmm17, %zmm19 {k1} +vmaxpd (%rax){1to8}, %zmm17, %zmm19 {k1} +vmaxpd %zmm16, %zmm17, %zmm19 {z}{k1} +vmaxpd (%rax), %zmm17, %zmm19 {z}{k1} +vmaxpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1} + +vmaxps %zmm16, %zmm17, %zmm19 +vmaxps (%rax), %zmm17, %zmm19 +vmaxps (%rax){1to16}, %zmm17, %zmm19 +vmaxps %zmm16, %zmm17, %zmm19 {k1} +vmaxps (%rax), %zmm17, %zmm19 {k1} +vmaxps (%rax){1to16}, %zmm17, %zmm19 {k1} +vmaxps %zmm16, %zmm17, %zmm19 {z}{k1} +vmaxps (%rax), %zmm17, %zmm19 {z}{k1} +vmaxps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + +vminpd %zmm16, %zmm17, %zmm19 +vminpd (%rax), %zmm17, %zmm19 +vminpd (%rax){1to8}, %zmm17, %zmm19 +vminpd %zmm16, %zmm17, %zmm19 {k1} +vminpd (%rax), %zmm17, %zmm19 {k1} +vminpd (%rax){1to8}, %zmm17, %zmm19 {k1} +vminpd %zmm16, %zmm17, %zmm19 {z}{k1} +vminpd (%rax), %zmm17, %zmm19 {z}{k1} +vminpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1} + +vminps %zmm16, %zmm17, %zmm19 +vminps (%rax), %zmm17, %zmm19 +vminps (%rax){1to16}, %zmm17, %zmm19 +vminps %zmm16, %zmm17, %zmm19 {k1} +vminps (%rax), %zmm17, %zmm19 {k1} +vminps (%rax){1to16}, %zmm17, %zmm19 {k1} +vminps %zmm16, %zmm17, %zmm19 {z}{k1} +vminps (%rax), %zmm17, %zmm19 {z}{k1} +vminps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + vmulpd %zmm16, %zmm17, %zmm19 vmulpd (%rax), %zmm17, %zmm19 vmulpd (%rax){1to8}, %zmm17, %zmm19 @@ -101,6 +181,16 @@ vpaddq %zmm16, %zmm17, %zmm19 {z}{k1} vpaddq (%rax), %zmm17, %zmm19 {z}{k1} vpaddq (%rax){1to8}, %zmm17, %zmm19 {z}{k1} +vpmulld %zmm16, %zmm17, %zmm19 +vpmulld (%rax), %zmm17, %zmm19 +vpmulld (%rax){1to16}, %zmm17, %zmm19 +vpmulld %zmm16, %zmm17, %zmm19 {k1} +vpmulld (%rax), %zmm17, %zmm19 {k1} +vpmulld (%rax){1to16}, %zmm17, %zmm19 {k1} +vpmulld %zmm16, %zmm17, %zmm19 {z}{k1} +vpmulld (%rax), %zmm17, %zmm19 {z}{k1} +vpmulld (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + vpermd %zmm16, %zmm17, %zmm19 vpermd (%rax), %zmm17, %zmm19 vpermd (%rax){1to16}, %zmm17, %zmm19 @@ -211,6 +301,26 @@ vpshufd $0, %zmm16, %zmm19 {z}{k1} vpshufd $0, (%rax), %zmm19 {z}{k1} vpshufd $0, (%rax){1to16}, %zmm19 {z}{k1} +vpsubd %zmm16, %zmm17, %zmm19 +vpsubd (%rax), %zmm17, %zmm19 +vpsubd (%rax){1to16}, %zmm17, %zmm19 +vpsubd %zmm16, %zmm17, %zmm19 {k1} +vpsubd (%rax), %zmm17, %zmm19 {k1} +vpsubd (%rax){1to16}, %zmm17, %zmm19 {k1} +vpsubd %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubd (%rax), %zmm17, %zmm19 {z}{k1} +vpsubd (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + +vpsubq %zmm16, %zmm17, %zmm19 +vpsubq (%rax), %zmm17, %zmm19 +vpsubq (%rax){1to8}, %zmm17, %zmm19 +vpsubq %zmm16, %zmm17, %zmm19 {k1} +vpsubq (%rax), %zmm17, %zmm19 {k1} +vpsubq (%rax){1to8}, %zmm17, %zmm19 {k1} +vpsubq %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubq (%rax), %zmm17, %zmm19 {z}{k1} +vpsubq (%rax){1to8}, %zmm17, %zmm19 {z}{k1} + vpunpckhdq %zmm16, %zmm17, %zmm19 vpunpckhdq (%rax), %zmm17, %zmm19 vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 @@ -291,6 +401,40 @@ vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {z}{k1} vshufi64x2 $0, (%rax), %zmm17, %zmm19 {z}{k1} vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {z}{k1} +vsqrtpd %zmm16, %zmm19 +vsqrtpd (%rax), %zmm19 +vsqrtpd (%rax){1to8}, %zmm19 +vsqrtpd %zmm16, %zmm19 {k1} +vsqrtpd (%rax), %zmm19 {k1} +vsqrtpd (%rax){1to8}, %zmm19 {k1} +vsqrtpd %zmm16, %zmm19 {z}{k1} +vsqrtpd (%rax), %zmm19 {z}{k1} +vsqrtpd (%rax){1to8}, %zmm19 {z}{k1} + +vsqrtps %zmm16, %zmm19 +vsqrtps (%rax), %zmm19 +vsqrtps (%rax){1to16}, %zmm19 +vsqrtps %zmm16, %zmm19 {k1} +vsqrtps (%rax), %zmm19 {k1} +vsqrtps (%rax){1to16}, %zmm19 {k1} +vsqrtps %zmm16, %zmm19 {z}{k1} +vsqrtps (%rax), %zmm19 {z}{k1} +vsqrtps (%rax){1to16}, %zmm19 {z}{k1} + +vsqrtsd %xmm16, %xmm17, %xmm19 +vsqrtsd (%rax), %xmm17, %xmm19 +vsqrtsd %xmm16, %xmm17, %xmm19 {k1} +vsqrtsd (%rax), %xmm17, %xmm19 {k1} +vsqrtsd %xmm16, %xmm17, %xmm19 {z}{k1} +vsqrtsd (%rax), %xmm17, %xmm19 {z}{k1} + +vsqrtss %xmm16, %xmm17, %xmm19 +vsqrtss (%rax), %xmm17, %xmm19 +vsqrtss %xmm16, %xmm17, %xmm19 {k1} +vsqrtss (%rax), %xmm17, %xmm19 {k1} +vsqrtss %xmm16, %xmm17, %xmm19 {z}{k1} +vsqrtss (%rax), %xmm17, %xmm19 {z}{k1} + vpsubd %zmm16, %zmm17, %zmm19 vpsubd (%rax), %zmm17, %zmm19 vpsubd (%rax){1to16}, %zmm17, %zmm19 @@ -398,6 +542,42 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: 1 3 1.00 vaddps %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vaddps (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vaddps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vcvtdq2pd %ymm16, %zmm19 +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax), %zmm19 +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax){1to8}, %zmm19 +# CHECK-NEXT: 2 4 1.00 vcvtdq2pd %ymm16, %zmm19 {%k1} +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax), %zmm19 {%k1} +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax){1to8}, %zmm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vcvtdq2pd %ymm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax){1to8}, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vcvtdq2ps %zmm16, %zmm19 +# CHECK-NEXT: 2 10 1.00 * vcvtdq2ps (%rax), %zmm19 +# CHECK-NEXT: 2 10 1.00 * vcvtdq2ps (%rax){1to16}, %zmm19 +# CHECK-NEXT: 1 3 1.00 vcvtdq2ps %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vcvtdq2ps (%rax), %zmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vcvtdq2ps (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vcvtdq2ps %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vcvtdq2ps (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vcvtdq2ps (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vcvtps2dq %zmm16, %zmm19 +# CHECK-NEXT: 2 10 1.00 * vcvtps2dq (%rax), %zmm19 +# CHECK-NEXT: 2 10 1.00 * vcvtps2dq (%rax){1to16}, %zmm19 +# CHECK-NEXT: 1 3 1.00 vcvtps2dq %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vcvtps2dq (%rax), %zmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vcvtps2dq (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vcvtps2dq %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vcvtps2dq (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vcvtps2dq (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vcvttps2dq %zmm16, %zmm19 +# CHECK-NEXT: 2 10 1.00 * vcvttps2dq (%rax), %zmm19 +# CHECK-NEXT: 2 10 1.00 * vcvttps2dq (%rax){1to16}, %zmm19 +# CHECK-NEXT: 1 3 1.00 vcvttps2dq %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vcvttps2dq (%rax), %zmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vcvttps2dq (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vcvttps2dq %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vcvttps2dq (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vcvttps2dq (%rax){1to16}, %zmm19 {%k1} {z} # CHECK-NEXT: 3 45 44.00 vdivpd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 4 52 44.00 * vdivpd (%rax), %zmm17, %zmm19 # CHECK-NEXT: 4 52 44.00 * vdivpd (%rax){1to8}, %zmm17, %zmm19 @@ -416,6 +596,42 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: 3 29 28.00 vdivps %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 4 36 28.00 * vdivps (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 4 36 28.00 * vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vmaxpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 10 1.00 * vmaxpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 10 1.00 * vmaxpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: 1 3 1.00 vmaxpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vmaxpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vmaxpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vmaxpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vmaxpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vmaxpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vmaxps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 10 1.00 * vmaxps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 10 1.00 * vmaxps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 1 3 1.00 vmaxps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vmaxps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vmaxps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vmaxps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vmaxps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vmaxps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vminpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 10 1.00 * vminpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 10 1.00 * vminpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: 1 3 1.00 vminpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vminpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vminpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vminpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vminpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vminpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vminps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 10 1.00 * vminps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 10 1.00 * vminps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 1 3 1.00 vminps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vminps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vminps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vminps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vminps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vminps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 5 1.00 vmulpd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 12 1.00 * vmulpd (%rax), %zmm17, %zmm19 # CHECK-NEXT: 2 12 1.00 * vmulpd (%rax){1to8}, %zmm17, %zmm19 @@ -470,6 +686,15 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: 1 1 0.50 vpaddq %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpaddq (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpaddq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmulld %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 1.00 * vpmulld (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 12 1.00 * vpmulld (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 1 5 1.00 vpmulld %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmulld (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmulld (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmulld %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmulld (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmulld (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpermd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpermd (%rax), %zmm17, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpermd (%rax){1to16}, %zmm17, %zmm19 @@ -569,6 +794,24 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: 1 1 1.00 vpshufd $0, %zmm16, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpsubd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubq %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vpsubq %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubq %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpunpckhdq %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %zmm17, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 @@ -641,6 +884,36 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: 1 1 1.00 vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 45 44.00 vsqrtpd %zmm16, %zmm19 +# CHECK-NEXT: 4 52 44.00 * vsqrtpd (%rax), %zmm19 +# CHECK-NEXT: 4 52 44.00 * vsqrtpd (%rax){1to8}, %zmm19 +# CHECK-NEXT: 3 45 44.00 vsqrtpd %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 4 52 44.00 * vsqrtpd (%rax), %zmm19 {%k1} +# CHECK-NEXT: 4 52 44.00 * vsqrtpd (%rax){1to8}, %zmm19 {%k1} +# CHECK-NEXT: 3 45 44.00 vsqrtpd %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 4 52 44.00 * vsqrtpd (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 4 52 44.00 * vsqrtpd (%rax){1to8}, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 29 28.00 vsqrtps %zmm16, %zmm19 +# CHECK-NEXT: 4 36 28.00 * vsqrtps (%rax), %zmm19 +# CHECK-NEXT: 4 36 28.00 * vsqrtps (%rax){1to16}, %zmm19 +# CHECK-NEXT: 3 29 28.00 vsqrtps %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 4 36 28.00 * vsqrtps (%rax), %zmm19 {%k1} +# CHECK-NEXT: 4 36 28.00 * vsqrtps (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: 3 29 28.00 vsqrtps %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 4 36 28.00 * vsqrtps (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 4 36 28.00 * vsqrtps (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 21 21.00 vsqrtsd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 27 21.00 * vsqrtsd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 21 21.00 vsqrtsd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 27 21.00 * vsqrtsd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 21 21.00 vsqrtsd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 27 21.00 * vsqrtsd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 14 14.00 vsqrtss %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 20 14.00 * vsqrtss (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 14 14.00 vsqrtss %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 20 14.00 * vsqrtss (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 14 14.00 vsqrtss %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 20 14.00 * vsqrtss (%rax), %xmm17, %xmm19 {%k1} {z} # CHECK-NEXT: 1 1 0.50 vpsubd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %zmm17, %zmm19 # CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to16}, %zmm17, %zmm19 @@ -726,7 +999,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - 648.00 63.00 63.00 - 243.00 111.00 111.00 +# CHECK-NEXT: - 1506.00 129.00 144.00 - 270.00 153.00 153.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -748,6 +1021,42 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: - - - 1.00 - - - - vaddps %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vaddps (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vaddps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtdq2pd %ymm16, %zmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax), %zmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax){1to8}, %zmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtdq2pd %ymm16, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax){1to8}, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtdq2pd %ymm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax){1to8}, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vcvtdq2ps %zmm16, %zmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax), %zmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax){1to16}, %zmm19 +# CHECK-NEXT: - - - 1.00 - - - - vcvtdq2ps %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vcvtdq2ps %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vcvtps2dq %zmm16, %zmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtps2dq (%rax), %zmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtps2dq (%rax){1to16}, %zmm19 +# CHECK-NEXT: - - - 1.00 - - - - vcvtps2dq %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtps2dq (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtps2dq (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vcvtps2dq %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtps2dq (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtps2dq (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vcvttps2dq %zmm16, %zmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvttps2dq (%rax), %zmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvttps2dq (%rax){1to16}, %zmm19 +# CHECK-NEXT: - - - 1.00 - - - - vcvttps2dq %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvttps2dq (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvttps2dq (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vcvttps2dq %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvttps2dq (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvttps2dq (%rax){1to16}, %zmm19 {%k1} {z} # CHECK-NEXT: - 44.00 2.50 - - 0.50 - - vdivpd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vdivpd (%rax), %zmm17, %zmm19 # CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vdivpd (%rax){1to8}, %zmm17, %zmm19 @@ -766,6 +1075,42 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: - 28.00 2.50 - - 0.50 - - vdivps %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vdivps (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vmaxpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - - - - vmaxpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vmaxpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vmaxps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - - - - vmaxps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vmaxps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vminpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - - - - vminpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vminpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vminps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - - 1.00 - - - - vminps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vminps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 1.00 - - - - - vmulpd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vmulpd (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vmulpd (%rax){1to8}, %zmm17, %zmm19 @@ -820,6 +1165,15 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddq %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmulld %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmulld %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmulld %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 - - vpermd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax){1to16}, %zmm17, %zmm19 @@ -919,6 +1273,24 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: - - - - - 1.00 - - vpshufd $0, %zmm16, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax), %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubq %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubq %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubq %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 - - vpunpckhdq %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhdq (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 @@ -991,6 +1363,36 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: - - - - - 1.00 - - vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - 44.00 2.50 - - 0.50 - - vsqrtpd %zmm16, %zmm19 +# CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vsqrtpd (%rax), %zmm19 +# CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vsqrtpd (%rax){1to8}, %zmm19 +# CHECK-NEXT: - 44.00 2.50 - - 0.50 - - vsqrtpd %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vsqrtpd (%rax), %zmm19 {%k1} +# CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vsqrtpd (%rax){1to8}, %zmm19 {%k1} +# CHECK-NEXT: - 44.00 2.50 - - 0.50 - - vsqrtpd %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vsqrtpd (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vsqrtpd (%rax){1to8}, %zmm19 {%k1} {z} +# CHECK-NEXT: - 28.00 2.50 - - 0.50 - - vsqrtps %zmm16, %zmm19 +# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vsqrtps (%rax), %zmm19 +# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vsqrtps (%rax){1to16}, %zmm19 +# CHECK-NEXT: - 28.00 2.50 - - 0.50 - - vsqrtps %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vsqrtps (%rax), %zmm19 {%k1} +# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vsqrtps (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: - 28.00 2.50 - - 0.50 - - vsqrtps %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vsqrtps (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vsqrtps (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: - 21.00 1.00 - - - - - vsqrtsd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - 21.00 1.00 - - - 0.50 0.50 vsqrtsd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - 21.00 1.00 - - - - - vsqrtsd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - 21.00 1.00 - - - 0.50 0.50 vsqrtsd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - 21.00 1.00 - - - - - vsqrtsd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - 21.00 1.00 - - - 0.50 0.50 vsqrtsd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - 14.00 1.00 - - - - - vsqrtss %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - 14.00 1.00 - - - 0.50 0.50 vsqrtss (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - 14.00 1.00 - - - - - vsqrtss %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - 14.00 1.00 - - - 0.50 0.50 vsqrtss (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - 14.00 1.00 - - - - - vsqrtss %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - 14.00 1.00 - - - 0.50 0.50 vsqrtss (%rax), %xmm17, %xmm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax){1to16}, %zmm17, %zmm19 diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dq.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dq.s new file mode 100644 index 0000000..1947562 --- /dev/null +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dq.s @@ -0,0 +1,328 @@ +# 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 + +vandnpd %zmm16, %zmm17, %zmm19 +vandnpd (%rax), %zmm17, %zmm19 +vandnpd (%rax){1to8}, %zmm17, %zmm19 +vandnpd %zmm16, %zmm17, %zmm19 {k1} +vandnpd (%rax), %zmm17, %zmm19 {k1} +vandnpd (%rax){1to8}, %zmm17, %zmm19 {k1} +vandnpd %zmm16, %zmm17, %zmm19 {z}{k1} +vandnpd (%rax), %zmm17, %zmm19 {z}{k1} +vandnpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1} + +vandnps %zmm16, %zmm17, %zmm19 +vandnps (%rax), %zmm17, %zmm19 +vandnps (%rax){1to16}, %zmm17, %zmm19 +vandnps %zmm16, %zmm17, %zmm19 {k1} +vandnps (%rax), %zmm17, %zmm19 {k1} +vandnps (%rax){1to16}, %zmm17, %zmm19 {k1} +vandnps %zmm16, %zmm17, %zmm19 {z}{k1} +vandnps (%rax), %zmm17, %zmm19 {z}{k1} +vandnps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + +vandpd %zmm16, %zmm17, %zmm19 +vandpd (%rax), %zmm17, %zmm19 +vandpd (%rax){1to8}, %zmm17, %zmm19 +vandpd %zmm16, %zmm17, %zmm19 {k1} +vandpd (%rax), %zmm17, %zmm19 {k1} +vandpd (%rax){1to8}, %zmm17, %zmm19 {k1} +vandpd %zmm16, %zmm17, %zmm19 {z}{k1} +vandpd (%rax), %zmm17, %zmm19 {z}{k1} +vandpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1} + +vandps %zmm16, %zmm17, %zmm19 +vandps (%rax), %zmm17, %zmm19 +vandps (%rax){1to16}, %zmm17, %zmm19 +vandps %zmm16, %zmm17, %zmm19 {k1} +vandps (%rax), %zmm17, %zmm19 {k1} +vandps (%rax){1to16}, %zmm17, %zmm19 {k1} +vandps %zmm16, %zmm17, %zmm19 {z}{k1} +vandps (%rax), %zmm17, %zmm19 {z}{k1} +vandps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + +vcvtqq2pd %zmm16, %zmm19 +vcvtqq2pd (%rax), %zmm19 +vcvtqq2pd (%rax){1to8}, %zmm19 +vcvtqq2pd %zmm16, %zmm19 {k1} +vcvtqq2pd (%rax), %zmm19 {k1} +vcvtqq2pd (%rax){1to8}, %zmm19 {k1} +vcvtqq2pd %zmm16, %zmm19 {z}{k1} +vcvtqq2pd (%rax), %zmm19 {z}{k1} +vcvtqq2pd (%rax){1to8}, %zmm19 {z}{k1} + +vcvtqq2ps %zmm16, %ymm19 +vcvtqq2ps (%rax), %ymm19 +vcvtqq2ps (%rax){1to8}, %ymm19 +vcvtqq2ps %zmm16, %ymm19 {k1} +vcvtqq2ps (%rax), %ymm19 {k1} +vcvtqq2ps (%rax){1to8}, %ymm19 {k1} +vcvtqq2ps %zmm16, %ymm19 {z}{k1} +vcvtqq2ps (%rax), %ymm19 {z}{k1} +vcvtqq2ps (%rax){1to8}, %ymm19 {z}{k1} + +vorpd %zmm16, %zmm17, %zmm19 +vorpd (%rax), %zmm17, %zmm19 +vorpd (%rax){1to8}, %zmm17, %zmm19 +vorpd %zmm16, %zmm17, %zmm19 {k1} +vorpd (%rax), %zmm17, %zmm19 {k1} +vorpd (%rax){1to8}, %zmm17, %zmm19 {k1} +vorpd %zmm16, %zmm17, %zmm19 {z}{k1} +vorpd (%rax), %zmm17, %zmm19 {z}{k1} +vorpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1} + +vorps %zmm16, %zmm17, %zmm19 +vorps (%rax), %zmm17, %zmm19 +vorps (%rax){1to16}, %zmm17, %zmm19 +vorps %zmm16, %zmm17, %zmm19 {k1} +vorps (%rax), %zmm17, %zmm19 {k1} +vorps (%rax){1to16}, %zmm17, %zmm19 {k1} +vorps %zmm16, %zmm17, %zmm19 {z}{k1} +vorps (%rax), %zmm17, %zmm19 {z}{k1} +vorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + +vpmullq %zmm16, %zmm17, %zmm19 +vpmullq (%rax), %zmm17, %zmm19 +vpmullq %zmm16, %zmm17, %zmm19 {k1} +vpmullq (%rax), %zmm17, %zmm19 {k1} +vpmullq %zmm16, %zmm17, %zmm19 {z}{k1} +vpmullq (%rax), %zmm17, %zmm19 {z}{k1} + +vxorpd %zmm16, %zmm17, %zmm19 +vxorpd (%rax), %zmm17, %zmm19 +vxorpd (%rax){1to8}, %zmm17, %zmm19 +vxorpd %zmm16, %zmm17, %zmm19 {k1} +vxorpd (%rax), %zmm17, %zmm19 {k1} +vxorpd (%rax){1to8}, %zmm17, %zmm19 {k1} +vxorpd %zmm16, %zmm17, %zmm19 {z}{k1} +vxorpd (%rax), %zmm17, %zmm19 {z}{k1} +vxorpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1} + +vxorps %zmm16, %zmm17, %zmm19 +vxorps (%rax), %zmm17, %zmm19 +vxorps (%rax){1to16}, %zmm17, %zmm19 +vxorps %zmm16, %zmm17, %zmm19 {k1} +vxorps (%rax), %zmm17, %zmm19 {k1} +vxorps (%rax){1to16}, %zmm17, %zmm19 {k1} +vxorps %zmm16, %zmm17, %zmm19 {z}{k1} +vxorps (%rax), %zmm17, %zmm19 {z}{k1} +vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + +# 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: 1 1 1.00 vandnpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vandnpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vandnpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vandnpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vandnpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vandnpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vandnpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vandnpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vandnpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vandnps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vandnps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vandnps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vandnps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vandnps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vandnps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vandnps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vandnps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vandnps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vandpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vandpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vandpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vandpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vandpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vandpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vandpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vandpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vandpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vandps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vandps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vandps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vandps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vandps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vandps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vandps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vandps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vandps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vcvtqq2pd %zmm16, %zmm19 +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax), %zmm19 +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax){1to8}, %zmm19 +# CHECK-NEXT: 2 4 1.00 vcvtqq2pd %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax), %zmm19 {%k1} +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax){1to8}, %zmm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vcvtqq2pd %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax){1to8}, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vcvtqq2ps %zmm16, %ymm19 +# CHECK-NEXT: 2 10 1.00 * vcvtqq2ps (%rax), %ymm19 +# CHECK-NEXT: 2 10 1.00 * vcvtqq2ps (%rax){1to8}, %ymm19 +# CHECK-NEXT: 1 3 1.00 vcvtqq2ps %zmm16, %ymm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vcvtqq2ps (%rax), %ymm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vcvtqq2ps (%rax){1to8}, %ymm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vcvtqq2ps %zmm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vcvtqq2ps (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vcvtqq2ps (%rax){1to8}, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vorpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vorpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vorpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vorpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vorpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vorpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vorpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vorps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vorps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vorps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vorps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vorps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vorps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vorps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vorps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmullq %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 12 1.00 * vpmullq (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 1 5 1.00 vpmullq %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmullq (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmullq %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmullq (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vxorpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vxorpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vxorpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vxorpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vxorpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vxorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vxorpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vxorpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vxorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vxorps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vxorps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 1.00 * vxorps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 1.00 vxorps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vxorps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vxorps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vxorps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} + +# 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: - - 6.00 18.00 - 81.00 31.50 31.50 + +# CHECK: Resource pressure by instruction: +# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: +# CHECK-NEXT: - - - - - 1.00 - - vandnpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 - - vandnpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vandnpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vandnps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 - - vandnps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vandnps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vandpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 - - vandpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vandpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vandps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 - - vandps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vandps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtqq2pd %zmm16, %zmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax), %zmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax){1to8}, %zmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtqq2pd %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax){1to8}, %zmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtqq2pd %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax){1to8}, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vcvtqq2ps %zmm16, %ymm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtqq2ps (%rax), %ymm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtqq2ps (%rax){1to8}, %ymm19 +# CHECK-NEXT: - - - 1.00 - - - - vcvtqq2ps %zmm16, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtqq2ps (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtqq2ps (%rax){1to8}, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vcvtqq2ps %zmm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtqq2ps (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtqq2ps (%rax){1to8}, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vorpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 - - vorpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vorpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vorps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 - - vorps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vorps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmullq %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullq (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmullq %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullq (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmullq %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullq (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vxorpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 - - vxorpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vxorpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vxorps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - - - - 1.00 - - vxorps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vxorps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dqvl.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dqvl.s new file mode 100644 index 0000000..90c2575 --- /dev/null +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dqvl.s @@ -0,0 +1,515 @@ +# 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 + +vandnpd %xmm16, %xmm17, %xmm19 +vandnpd (%rax), %xmm17, %xmm19 +vandnpd (%rax){1to2}, %xmm17, %xmm19 +vandnpd %xmm16, %xmm17, %xmm19 {k1} +vandnpd (%rax), %xmm17, %xmm19 {k1} +vandnpd (%rax){1to2}, %xmm17, %xmm19 {k1} +vandnpd %xmm16, %xmm17, %xmm19 {z}{k1} +vandnpd (%rax), %xmm17, %xmm19 {z}{k1} +vandnpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vandnpd %ymm16, %ymm17, %ymm19 +vandnpd (%rax), %ymm17, %ymm19 +vandnpd (%rax){1to4}, %ymm17, %ymm19 +vandnpd %ymm16, %ymm17, %ymm19 {k1} +vandnpd (%rax), %ymm17, %ymm19 {k1} +vandnpd (%rax){1to4}, %ymm17, %ymm19 {k1} +vandnpd %ymm16, %ymm17, %ymm19 {z}{k1} +vandnpd (%rax), %ymm17, %ymm19 {z}{k1} +vandnpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + +vandpd %xmm16, %xmm17, %xmm19 +vandpd (%rax), %xmm17, %xmm19 +vandpd (%rax){1to2}, %xmm17, %xmm19 +vandpd %xmm16, %xmm17, %xmm19 {k1} +vandpd (%rax), %xmm17, %xmm19 {k1} +vandpd (%rax){1to2}, %xmm17, %xmm19 {k1} +vandpd %xmm16, %xmm17, %xmm19 {z}{k1} +vandpd (%rax), %xmm17, %xmm19 {z}{k1} +vandpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vandpd %ymm16, %ymm17, %ymm19 +vandpd (%rax), %ymm17, %ymm19 +vandpd (%rax){1to4}, %ymm17, %ymm19 +vandpd %ymm16, %ymm17, %ymm19 {k1} +vandpd (%rax), %ymm17, %ymm19 {k1} +vandpd (%rax){1to4}, %ymm17, %ymm19 {k1} +vandpd %ymm16, %ymm17, %ymm19 {z}{k1} +vandpd (%rax), %ymm17, %ymm19 {z}{k1} +vandpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + +vandps %xmm16, %xmm17, %xmm19 +vandps (%rax), %xmm17, %xmm19 +vandps (%rax){1to4}, %xmm17, %xmm19 +vandps %xmm16, %xmm17, %xmm19 {k1} +vandps (%rax), %xmm17, %xmm19 {k1} +vandps (%rax){1to4}, %xmm17, %xmm19 {k1} +vandps %xmm16, %xmm17, %xmm19 {z}{k1} +vandps (%rax), %xmm17, %xmm19 {z}{k1} +vandps (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vandps %ymm16, %ymm17, %ymm19 +vandps (%rax), %ymm17, %ymm19 +vandps (%rax){1to8}, %ymm17, %ymm19 +vandps %ymm16, %ymm17, %ymm19 {k1} +vandps (%rax), %ymm17, %ymm19 {k1} +vandps (%rax){1to8}, %ymm17, %ymm19 {k1} +vandps %ymm16, %ymm17, %ymm19 {z}{k1} +vandps (%rax), %ymm17, %ymm19 {z}{k1} +vandps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + +vcvtqq2pd %xmm16, %xmm19 +vcvtqq2pd (%rax), %xmm19 +vcvtqq2pd (%rax){1to2}, %xmm19 +vcvtqq2pd %xmm16, %xmm19 {k1} +vcvtqq2pd (%rax), %xmm19 {k1} +vcvtqq2pd (%rax){1to2}, %xmm19 {k1} +vcvtqq2pd %xmm16, %xmm19 {z}{k1} +vcvtqq2pd (%rax), %xmm19 {z}{k1} +vcvtqq2pd (%rax){1to2}, %xmm19 {z}{k1} + +vcvtqq2pd %ymm16, %ymm19 +vcvtqq2pd (%rax), %ymm19 +vcvtqq2pd (%rax){1to4}, %ymm19 +vcvtqq2pd %ymm16, %ymm19 {k1} +vcvtqq2pd (%rax), %ymm19 {k1} +vcvtqq2pd (%rax){1to4}, %ymm19 {k1} +vcvtqq2pd %ymm16, %ymm19 {z}{k1} +vcvtqq2pd (%rax), %ymm19 {z}{k1} +vcvtqq2pd (%rax){1to4}, %ymm19 {z}{k1} + +vorpd %xmm16, %xmm17, %xmm19 +vorpd (%rax), %xmm17, %xmm19 +vorpd (%rax){1to2}, %xmm17, %xmm19 +vorpd %xmm16, %xmm17, %xmm19 {k1} +vorpd (%rax), %xmm17, %xmm19 {k1} +vorpd (%rax){1to2}, %xmm17, %xmm19 {k1} +vorpd %xmm16, %xmm17, %xmm19 {z}{k1} +vorpd (%rax), %xmm17, %xmm19 {z}{k1} +vorpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vorpd %ymm16, %ymm17, %ymm19 +vorpd (%rax), %ymm17, %ymm19 +vorpd (%rax){1to4}, %ymm17, %ymm19 +vorpd %ymm16, %ymm17, %ymm19 {k1} +vorpd (%rax), %ymm17, %ymm19 {k1} +vorpd (%rax){1to4}, %ymm17, %ymm19 {k1} +vorpd %ymm16, %ymm17, %ymm19 {z}{k1} +vorpd (%rax), %ymm17, %ymm19 {z}{k1} +vorpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + +vorps %xmm16, %xmm17, %xmm19 +vorps (%rax), %xmm17, %xmm19 +vorps (%rax){1to4}, %xmm17, %xmm19 +vorps %xmm16, %xmm17, %xmm19 {k1} +vorps (%rax), %xmm17, %xmm19 {k1} +vorps (%rax){1to4}, %xmm17, %xmm19 {k1} +vorps %xmm16, %xmm17, %xmm19 {z}{k1} +vorps (%rax), %xmm17, %xmm19 {z}{k1} +vorps (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vorps %ymm16, %ymm17, %ymm19 +vorps (%rax), %ymm17, %ymm19 +vorps (%rax){1to8}, %ymm17, %ymm19 +vorps %ymm16, %ymm17, %ymm19 {k1} +vorps (%rax), %ymm17, %ymm19 {k1} +vorps (%rax){1to8}, %ymm17, %ymm19 {k1} +vorps %ymm16, %ymm17, %ymm19 {z}{k1} +vorps (%rax), %ymm17, %ymm19 {z}{k1} +vorps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + +vpmullq %xmm16, %xmm17, %xmm19 +vpmullq (%rax), %xmm17, %xmm19 +vpmullq %xmm16, %xmm17, %xmm19 {k1} +vpmullq (%rax), %xmm17, %xmm19 {k1} +vpmullq %xmm16, %xmm17, %xmm19 {z}{k1} +vpmullq (%rax), %xmm17, %xmm19 {z}{k1} + +vpmullq %ymm16, %ymm17, %ymm19 +vpmullq (%rax), %ymm17, %ymm19 +vpmullq %ymm16, %ymm17, %ymm19 {k1} +vpmullq (%rax), %ymm17, %ymm19 {k1} +vpmullq %ymm16, %ymm17, %ymm19 {z}{k1} +vpmullq (%rax), %ymm17, %ymm19 {z}{k1} + +vxorpd %xmm16, %xmm17, %xmm19 +vxorpd (%rax), %xmm17, %xmm19 +vxorpd (%rax){1to2}, %xmm17, %xmm19 +vxorpd %xmm16, %xmm17, %xmm19 {k1} +vxorpd (%rax), %xmm17, %xmm19 {k1} +vxorpd (%rax){1to2}, %xmm17, %xmm19 {k1} +vxorpd %xmm16, %xmm17, %xmm19 {z}{k1} +vxorpd (%rax), %xmm17, %xmm19 {z}{k1} +vxorpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vxorpd %ymm16, %ymm17, %ymm19 +vxorpd (%rax), %ymm17, %ymm19 +vxorpd (%rax){1to4}, %ymm17, %ymm19 +vxorpd %ymm16, %ymm17, %ymm19 {k1} +vxorpd (%rax), %ymm17, %ymm19 {k1} +vxorpd (%rax){1to4}, %ymm17, %ymm19 {k1} +vxorpd %ymm16, %ymm17, %ymm19 {z}{k1} +vxorpd (%rax), %ymm17, %ymm19 {z}{k1} +vxorpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + +vxorps %xmm16, %xmm17, %xmm19 +vxorps (%rax), %xmm17, %xmm19 +vxorps (%rax){1to4}, %xmm17, %xmm19 +vxorps %xmm16, %xmm17, %xmm19 {k1} +vxorps (%rax), %xmm17, %xmm19 {k1} +vxorps (%rax){1to4}, %xmm17, %xmm19 {k1} +vxorps %xmm16, %xmm17, %xmm19 {z}{k1} +vxorps (%rax), %xmm17, %xmm19 {z}{k1} +vxorps (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vxorps %ymm16, %ymm17, %ymm19 +vxorps (%rax), %ymm17, %ymm19 +vxorps (%rax){1to8}, %ymm17, %ymm19 +vxorps %ymm16, %ymm17, %ymm19 {k1} +vxorps (%rax), %ymm17, %ymm19 {k1} +vxorps (%rax){1to8}, %ymm17, %ymm19 {k1} +vxorps %ymm16, %ymm17, %ymm19 {z}{k1} +vxorps (%rax), %ymm17, %ymm19 {z}{k1} +vxorps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + +# 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: 1 1 1.00 vandnpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vandnpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vandnpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 1.00 vandnpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vandnpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vandnpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vandnpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vandnpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vandnpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vandnpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vandnpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vandnpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 1.00 vandnpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vandnpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vandnpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vandnpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vandnpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vandnpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vandpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vandpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vandpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 1.00 vandpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vandpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vandpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vandpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vandpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vandpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vandpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vandpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vandpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 1.00 vandpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vandpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vandpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vandpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vandpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vandpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vandps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vandps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vandps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 1.00 vandps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vandps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vandps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vandps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vandps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vandps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vandps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vandps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vandps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 1.00 vandps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vandps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vandps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vandps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vandps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vandps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vcvtqq2pd %xmm16, %xmm19 +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax), %xmm19 +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax){1to2}, %xmm19 +# CHECK-NEXT: 2 4 1.00 vcvtqq2pd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax), %xmm19 {%k1} +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax){1to2}, %xmm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vcvtqq2pd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax){1to2}, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vcvtqq2pd %ymm16, %ymm19 +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax), %ymm19 +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax){1to4}, %ymm19 +# CHECK-NEXT: 2 4 1.00 vcvtqq2pd %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax), %ymm19 {%k1} +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax){1to4}, %ymm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vcvtqq2pd %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 3 10 1.00 * vcvtqq2pd (%rax){1to4}, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vorpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vorpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vorpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 1.00 vorpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vorpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vorpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vorpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vorpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vorpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vorpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 1.00 vorpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vorpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vorpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vorpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vorps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vorps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vorps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 1.00 vorps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vorps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vorps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vorps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vorps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vorps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vorps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vorps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vorps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 1.00 vorps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vorps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vorps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vorps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vorps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmullq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 1.00 * vpmullq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 5 1.00 vpmullq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 1.00 * vpmullq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmullq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 1.00 * vpmullq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmullq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 1.00 * vpmullq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 1 5 1.00 vpmullq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmullq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmullq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmullq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vxorpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vxorpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vxorpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 1.00 vxorpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vxorpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vxorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vxorpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vxorpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vxorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vxorpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vxorpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vxorpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 1.00 vxorpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vxorpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vxorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vxorpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vxorpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vxorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vxorps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vxorps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 1.00 * vxorps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 1.00 vxorps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vxorps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 1.00 * vxorps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vxorps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vxorps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 * vxorps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 1.00 vxorps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vxorps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 1.00 * vxorps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 1.00 vxorps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vxorps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 1.00 * vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 1.00 vxorps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vxorps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 1.00 * vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} + +# 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: - - 12.00 18.00 - 144.00 51.00 51.00 + +# CHECK: Resource pressure by instruction: +# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: +# CHECK-NEXT: - - - - - 1.00 - - vandnpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 - - vandnpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vandnpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vandnpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 - - vandnpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vandnpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vandpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 - - vandpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vandpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vandpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 - - vandpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vandpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vandps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 - - vandps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vandps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vandps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 - - vandps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vandps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtqq2pd %xmm16, %xmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax), %xmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax){1to2}, %xmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtqq2pd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax){1to2}, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtqq2pd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax){1to2}, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtqq2pd %ymm16, %ymm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax), %ymm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax){1to4}, %ymm19 +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtqq2pd %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax){1to4}, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtqq2pd %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtqq2pd (%rax){1to4}, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vorpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 - - vorpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vorpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vorpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 - - vorpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vorpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vorps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 - - vorps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vorps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vorps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 - - vorps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vorps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmullq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmullq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmullq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmullq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmullq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmullq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vxorpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 - - vxorpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vxorpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vxorpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 - - vxorpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vxorpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vxorps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - - - - 1.00 - - vxorps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vxorps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 - - vxorps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - - - - 1.00 - - vxorps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - - - 1.00 - - vxorps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s index 18d9250..6ac3448 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512vl.s @@ -41,6 +41,46 @@ vaddps %ymm16, %ymm17, %ymm19 {z}{k1} vaddps (%rax), %ymm17, %ymm19 {z}{k1} vaddps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} +vcvtdq2pd %xmm16, %xmm19 +vcvtdq2pd (%rax), %xmm19 +vcvtdq2pd (%rax){1to2}, %xmm19 +vcvtdq2pd %xmm16, %xmm19 {k1} +vcvtdq2pd (%rax), %xmm19 {k1} +vcvtdq2pd (%rax){1to2}, %xmm19 {k1} +vcvtdq2pd %xmm16, %xmm19 {z}{k1} +vcvtdq2pd (%rax), %xmm19 {z}{k1} +vcvtdq2pd (%rax){1to2}, %xmm19 {z}{k1} + +vcvtdq2pd %xmm16, %ymm19 +vcvtdq2pd (%rax), %ymm19 +vcvtdq2pd (%rax){1to4}, %ymm19 +vcvtdq2pd %xmm16, %ymm19 {k1} +vcvtdq2pd (%rax), %ymm19 {k1} +vcvtdq2pd (%rax){1to4}, %ymm19 {k1} +vcvtdq2pd %xmm16, %ymm19 {z}{k1} +vcvtdq2pd (%rax), %ymm19 {z}{k1} +vcvtdq2pd (%rax){1to4}, %ymm19 {z}{k1} + +vcvtdq2ps %xmm16, %xmm19 +vcvtdq2ps (%rax), %xmm19 +vcvtdq2ps (%rax){1to4}, %xmm19 +vcvtdq2ps %xmm16, %xmm19 {k1} +vcvtdq2ps (%rax), %xmm19 {k1} +vcvtdq2ps (%rax){1to4},%xmm19 {k1} +vcvtdq2ps %xmm16, %xmm19 {z}{k1} +vcvtdq2ps (%rax), %xmm19 {z}{k1} +vcvtdq2ps (%rax){1to4}, %xmm19 {z}{k1} + +vcvtdq2ps %ymm16, %ymm19 +vcvtdq2ps (%rax), %ymm19 +vcvtdq2ps (%rax){1to8}, %ymm19 +vcvtdq2ps %ymm16,%ymm19 {k1} +vcvtdq2ps (%rax),%ymm19 {k1} +vcvtdq2ps (%rax){1to8}, %ymm19 {k1} +vcvtdq2ps %ymm16, %ymm19 {z}{k1} +vcvtdq2ps (%rax), %ymm19 {z}{k1} +vcvtdq2ps (%rax){1to8}, %ymm19 {z}{k1} + vdivpd %xmm16, %xmm17, %xmm19 vdivpd (%rax), %xmm17, %xmm19 vdivpd (%rax){1to2}, %xmm17, %xmm19 @@ -81,6 +121,86 @@ vdivps %ymm16, %ymm17, %ymm19 {z}{k1} vdivps (%rax), %ymm17, %ymm19 {z}{k1} vdivps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} +vmaxpd %xmm16, %xmm17, %xmm19 +vmaxpd (%rax), %xmm17, %xmm19 +vmaxpd (%rax){1to2}, %xmm17, %xmm19 +vmaxpd %xmm16, %xmm17, %xmm19 {k1} +vmaxpd (%rax), %xmm17, %xmm19 {k1} +vmaxpd (%rax){1to2}, %xmm17, %xmm19 {k1} +vmaxpd %xmm16, %xmm17, %xmm19 {z}{k1} +vmaxpd (%rax), %xmm17, %xmm19 {z}{k1} +vmaxpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vmaxpd %ymm16, %ymm17, %ymm19 +vmaxpd (%rax), %ymm17, %ymm19 +vmaxpd (%rax){1to4}, %ymm17, %ymm19 +vmaxpd %ymm16, %ymm17, %ymm19 {k1} +vmaxpd (%rax), %ymm17, %ymm19 {k1} +vmaxpd (%rax){1to4}, %ymm17, %ymm19 {k1} +vmaxpd %ymm16, %ymm17, %ymm19 {z}{k1} +vmaxpd (%rax), %ymm17, %ymm19 {z}{k1} +vmaxpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + +vmaxps %xmm16, %xmm17, %xmm19 +vmaxps (%rax), %xmm17, %xmm19 +vmaxps (%rax){1to4}, %xmm17, %xmm19 +vmaxps %xmm16, %xmm17, %xmm19 {k1} +vmaxps (%rax), %xmm17, %xmm19 {k1} +vmaxps (%rax){1to4}, %xmm17, %xmm19 {k1} +vmaxps %xmm16, %xmm17, %xmm19 {z}{k1} +vmaxps (%rax), %xmm17, %xmm19 {z}{k1} +vmaxps (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vmaxps %ymm16, %ymm17, %ymm19 +vmaxps (%rax), %ymm17, %ymm19 +vmaxps (%rax){1to8}, %ymm17, %ymm19 +vmaxps %ymm16, %ymm17, %ymm19 {k1} +vmaxps (%rax), %ymm17, %ymm19 {k1} +vmaxps (%rax){1to8}, %ymm17, %ymm19 {k1} +vmaxps %ymm16, %ymm17, %ymm19 {z}{k1} +vmaxps (%rax), %ymm17, %ymm19 {z}{k1} +vmaxps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + +vminpd %xmm16, %xmm17, %xmm19 +vminpd (%rax), %xmm17, %xmm19 +vminpd (%rax){1to2}, %xmm17, %xmm19 +vminpd %xmm16, %xmm17, %xmm19 {k1} +vminpd (%rax), %xmm17, %xmm19 {k1} +vminpd (%rax){1to2}, %xmm17, %xmm19 {k1} +vminpd %xmm16, %xmm17, %xmm19 {z}{k1} +vminpd (%rax), %xmm17, %xmm19 {z}{k1} +vminpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vminpd %ymm16, %ymm17, %ymm19 +vminpd (%rax), %ymm17, %ymm19 +vminpd (%rax){1to4}, %ymm17, %ymm19 +vminpd %ymm16, %ymm17, %ymm19 {k1} +vminpd (%rax), %ymm17, %ymm19 {k1} +vminpd (%rax){1to4}, %ymm17, %ymm19 {k1} +vminpd %ymm16, %ymm17, %ymm19 {z}{k1} +vminpd (%rax), %ymm17, %ymm19 {z}{k1} +vminpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + +vminps %xmm16, %xmm17, %xmm19 +vminps (%rax), %xmm17, %xmm19 +vminps (%rax){1to4}, %xmm17, %xmm19 +vminps %xmm16, %xmm17, %xmm19 {k1} +vminps (%rax), %xmm17, %xmm19 {k1} +vminps (%rax){1to4}, %xmm17, %xmm19 {k1} +vminps %xmm16, %xmm17, %xmm19 {z}{k1} +vminps (%rax), %xmm17, %xmm19 {z}{k1} +vminps (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vminps %ymm16, %ymm17, %ymm19 +vminps (%rax), %ymm17, %ymm19 +vminps (%rax){1to8}, %ymm17, %ymm19 +vminps %ymm16, %ymm17, %ymm19 {k1} +vminps (%rax), %ymm17, %ymm19 {k1} +vminps (%rax){1to8}, %ymm17, %ymm19 {k1} +vminps %ymm16, %ymm17, %ymm19 {z}{k1} +vminps (%rax), %ymm17, %ymm19 {z}{k1} +vminps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + vmulpd %xmm16, %xmm17, %xmm19 vmulpd (%rax), %xmm17, %xmm19 vmulpd (%rax){1to2}, %xmm17, %xmm19 @@ -121,6 +241,46 @@ vmulps %ymm16, %ymm17, %ymm19 {z}{k1} vmulps (%rax), %ymm17, %ymm19 {z}{k1} vmulps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} +vpaddd %xmm16, %xmm17, %xmm19 +vpaddd (%rax), %xmm17, %xmm19 +vpaddd (%rax){1to4}, %xmm17, %xmm19 +vpaddd %xmm16, %xmm17, %xmm19 {k1} +vpaddd (%rax), %xmm17, %xmm19 {k1} +vpaddd (%rax){1to4}, %xmm17, %xmm19 {k1} +vpaddd %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddd (%rax), %xmm17, %xmm19 {z}{k1} +vpaddd (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vpaddd %ymm16, %ymm17, %ymm19 +vpaddd (%rax), %ymm17, %ymm19 +vpaddd (%rax){1to8}, %ymm17, %ymm19 +vpaddd %ymm16, %ymm17, %ymm19 {k1} +vpaddd (%rax), %ymm17, %ymm19 {k1} +vpaddd (%rax){1to8}, %ymm17, %ymm19 {k1} +vpaddd %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddd (%rax), %ymm17, %ymm19 {z}{k1} +vpaddd (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + +vpaddq %xmm16, %xmm17, %xmm19 +vpaddq (%rax), %xmm17, %xmm19 +vpaddq (%rax){1to2}, %xmm17, %xmm19 +vpaddq %xmm16, %xmm17, %xmm19 {k1} +vpaddq (%rax), %xmm17, %xmm19 {k1} +vpaddq (%rax){1to2}, %xmm17, %xmm19 {k1} +vpaddq %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddq (%rax), %xmm17, %xmm19 {z}{k1} +vpaddq (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vpaddq %ymm16, %ymm17, %ymm19 +vpaddq (%rax), %ymm17, %ymm19 +vpaddq (%rax){1to4}, %ymm17, %ymm19 +vpaddq %ymm16, %ymm17, %ymm19 {k1} +vpaddq (%rax), %ymm17, %ymm19 {k1} +vpaddq (%rax){1to4}, %ymm17, %ymm19 {k1} +vpaddq %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddq (%rax), %ymm17, %ymm19 {z}{k1} +vpaddq (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + vpermd %ymm16, %ymm17, %ymm19 vpermd (%rax), %ymm17, %ymm19 vpermd (%rax){1to8}, %ymm17, %ymm19 @@ -261,6 +421,26 @@ vpermq %ymm16, %ymm17, %ymm19 {z}{k1} vpermq (%rax), %ymm17, %ymm19 {z}{k1} vpermq (%rax){1to4}, %ymm17, %ymm19 {z}{k1} +vpmulld %xmm16, %xmm17, %xmm19 +vpmulld (%rax), %xmm17, %xmm19 +vpmulld (%rax){1to4}, %xmm17, %xmm19 +vpmulld %xmm16, %xmm17, %xmm19 {k1} +vpmulld (%rax), %xmm17, %xmm19 {k1} +vpmulld (%rax){1to4}, %xmm17, %xmm19 {k1} +vpmulld %xmm16, %xmm17, %xmm19 {z}{k1} +vpmulld (%rax), %xmm17, %xmm19 {z}{k1} +vpmulld (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vpmulld %ymm16, %ymm17, %ymm19 +vpmulld (%rax), %ymm17, %ymm19 +vpmulld (%rax){1to8}, %ymm17, %ymm19 +vpmulld %ymm16, %ymm17, %ymm19 {k1} +vpmulld (%rax), %ymm17, %ymm19 {k1} +vpmulld (%rax){1to8}, %ymm17, %ymm19 {k1} +vpmulld %ymm16, %ymm17, %ymm19 {z}{k1} +vpmulld (%rax), %ymm17, %ymm19 {z}{k1} +vpmulld (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + vpshufd $0, %xmm16, %xmm19 vpshufd $0, (%rax), %xmm19 vpshufd $0, (%rax){1to4}, %xmm19 @@ -281,6 +461,46 @@ vpshufd $0, %ymm16, %ymm19 {z}{k1} vpshufd $0, (%rax), %ymm19 {z}{k1} vpshufd $0, (%rax){1to8}, %ymm19 {z}{k1} +vpsubd %xmm16, %xmm17, %xmm19 +vpsubd (%rax), %xmm17, %xmm19 +vpsubd (%rax){1to4}, %xmm17, %xmm19 +vpsubd %xmm16, %xmm17, %xmm19 {k1} +vpsubd (%rax), %xmm17, %xmm19 {k1} +vpsubd (%rax){1to4}, %xmm17, %xmm19 {k1} +vpsubd %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubd (%rax), %xmm17, %xmm19 {z}{k1} +vpsubd (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vpsubd %ymm16, %ymm17, %ymm19 +vpsubd (%rax), %ymm17, %ymm19 +vpsubd (%rax){1to8}, %ymm17, %ymm19 +vpsubd %ymm16, %ymm17, %ymm19 {k1} +vpsubd (%rax), %ymm17, %ymm19 {k1} +vpsubd (%rax){1to8}, %ymm17, %ymm19 {k1} +vpsubd %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubd (%rax), %ymm17, %ymm19 {z}{k1} +vpsubd (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + +vpsubq %xmm16, %xmm17, %xmm19 +vpsubq (%rax), %xmm17, %xmm19 +vpsubq (%rax){1to2}, %xmm17, %xmm19 +vpsubq %xmm16, %xmm17, %xmm19 {k1} +vpsubq (%rax), %xmm17, %xmm19 {k1} +vpsubq (%rax){1to2}, %xmm17, %xmm19 {k1} +vpsubq %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubq (%rax), %xmm17, %xmm19 {z}{k1} +vpsubq (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vpsubq %ymm16, %ymm17, %ymm19 +vpsubq (%rax), %ymm17, %ymm19 +vpsubq (%rax){1to4}, %ymm17, %ymm19 +vpsubq %ymm16, %ymm17, %ymm19 {k1} +vpsubq (%rax), %ymm17, %ymm19 {k1} +vpsubq (%rax){1to4}, %ymm17, %ymm19 {k1} +vpsubq %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubq (%rax), %ymm17, %ymm19 {z}{k1} +vpsubq (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + vpunpckhdq %xmm16, %xmm17, %xmm19 vpunpckhdq (%rax), %xmm17, %xmm19 vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 @@ -361,6 +581,46 @@ vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {z}{k1} vshufi64x2 $0, (%rax), %ymm17, %ymm19 {z}{k1} vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {z}{k1} +vsqrtpd %xmm16, %xmm19 +vsqrtpd (%rax), %xmm19 +vsqrtpd (%rax){1to2}, %xmm19 +vsqrtpd %xmm16, %xmm19 {k1} +vsqrtpd (%rax), %xmm19 {k1} +vsqrtpd (%rax){1to2}, %xmm19 {k1} +vsqrtpd %xmm16, %xmm19 {z}{k1} +vsqrtpd (%rax), %xmm19 {z}{k1} +vsqrtpd (%rax){1to2}, %xmm19 {z}{k1} + +vsqrtpd %ymm16, %ymm19 +vsqrtpd (%rax), %ymm19 +vsqrtpd (%rax){1to4}, %ymm19 +vsqrtpd %ymm16, %ymm19 {k1} +vsqrtpd (%rax), %ymm19 {k1} +vsqrtpd (%rax){1to4}, %ymm19 {k1} +vsqrtpd %ymm16, %ymm19 {z}{k1} +vsqrtpd (%rax), %ymm19 {z}{k1} +vsqrtpd (%rax){1to4}, %ymm19 {z}{k1} + +vsqrtps %xmm16, %xmm19 +vsqrtps (%rax), %xmm19 +vsqrtps (%rax){1to4}, %xmm19 +vsqrtps %xmm16, %xmm19 {k1} +vsqrtps (%rax), %xmm19 {k1} +vsqrtps (%rax){1to4}, %xmm19 {k1} +vsqrtps %xmm16, %xmm19 {z}{k1} +vsqrtps (%rax), %xmm19 {z}{k1} +vsqrtps (%rax){1to4}, %xmm19 {z}{k1} + +vsqrtps %ymm16, %ymm19 +vsqrtps (%rax), %ymm19 +vsqrtps (%rax){1to8}, %ymm19 +vsqrtps %ymm16, %ymm19 {k1} +vsqrtps (%rax), %ymm19 {k1} +vsqrtps (%rax){1to8}, %ymm19 {k1} +vsqrtps %ymm16, %ymm19 {z}{k1} +vsqrtps (%rax), %ymm19 {z}{k1} +vsqrtps (%rax){1to8}, %ymm19 {z}{k1} + vsubpd %xmm16, %xmm17, %xmm19 vsubpd (%rax), %xmm17, %xmm19 vsubpd (%rax){1to2}, %xmm17, %xmm19 @@ -526,6 +786,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: 1 3 1.00 vaddps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vaddps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vaddps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vcvtdq2pd %xmm16, %xmm19 +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax), %xmm19 +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax){1to2}, %xmm19 +# CHECK-NEXT: 2 4 1.00 vcvtdq2pd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax), %xmm19 {%k1} +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax){1to2}, %xmm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vcvtdq2pd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax){1to2}, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 4 1.00 vcvtdq2pd %xmm16, %ymm19 +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax), %ymm19 +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax){1to4}, %ymm19 +# CHECK-NEXT: 2 4 1.00 vcvtdq2pd %xmm16, %ymm19 {%k1} +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax), %ymm19 {%k1} +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax){1to4}, %ymm19 {%k1} +# CHECK-NEXT: 2 4 1.00 vcvtdq2pd %xmm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 3 10 1.00 * vcvtdq2pd (%rax){1to4}, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vcvtdq2ps %xmm16, %xmm19 +# CHECK-NEXT: 2 9 1.00 * vcvtdq2ps (%rax), %xmm19 +# CHECK-NEXT: 2 9 1.00 * vcvtdq2ps (%rax){1to4}, %xmm19 +# CHECK-NEXT: 1 3 1.00 vcvtdq2ps %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 9 1.00 * vcvtdq2ps (%rax), %xmm19 {%k1} +# CHECK-NEXT: 2 9 1.00 * vcvtdq2ps (%rax){1to4}, %xmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vcvtdq2ps %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 9 1.00 * vcvtdq2ps (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 2 9 1.00 * vcvtdq2ps (%rax){1to4}, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vcvtdq2ps %ymm16, %ymm19 +# CHECK-NEXT: 2 10 1.00 * vcvtdq2ps (%rax), %ymm19 +# CHECK-NEXT: 2 10 1.00 * vcvtdq2ps (%rax){1to8}, %ymm19 +# CHECK-NEXT: 1 3 1.00 vcvtdq2ps %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vcvtdq2ps (%rax), %ymm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vcvtdq2ps (%rax){1to8}, %ymm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vcvtdq2ps %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vcvtdq2ps (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vcvtdq2ps (%rax){1to8}, %ymm19 {%k1} {z} # CHECK-NEXT: 1 22 22.00 vdivpd %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 28 22.00 * vdivpd (%rax), %xmm17, %xmm19 # CHECK-NEXT: 2 28 22.00 * vdivpd (%rax){1to2}, %xmm17, %xmm19 @@ -562,6 +858,78 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: 3 29 28.00 vdivps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 4 36 28.00 * vdivps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 4 36 28.00 * vdivps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vmaxpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 9 1.00 * vmaxpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 9 1.00 * vmaxpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 3 1.00 vmaxpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 9 1.00 * vmaxpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 9 1.00 * vmaxpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vmaxpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 9 1.00 * vmaxpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 9 1.00 * vmaxpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vmaxpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 10 1.00 * vmaxpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 10 1.00 * vmaxpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 3 1.00 vmaxpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vmaxpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vmaxpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vmaxpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vmaxpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vmaxpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vmaxps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 9 1.00 * vmaxps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 9 1.00 * vmaxps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 3 1.00 vmaxps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 9 1.00 * vmaxps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 9 1.00 * vmaxps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vmaxps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 9 1.00 * vmaxps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 9 1.00 * vmaxps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vmaxps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 10 1.00 * vmaxps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 10 1.00 * vmaxps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 3 1.00 vmaxps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vmaxps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vmaxps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vmaxps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vmaxps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vmaxps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vminpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 9 1.00 * vminpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 9 1.00 * vminpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 3 1.00 vminpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 9 1.00 * vminpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 9 1.00 * vminpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vminpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 9 1.00 * vminpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 9 1.00 * vminpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vminpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 10 1.00 * vminpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 10 1.00 * vminpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 3 1.00 vminpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vminpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vminpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vminpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vminpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vminpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vminps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 9 1.00 * vminps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 9 1.00 * vminps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 3 1.00 vminps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 9 1.00 * vminps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 9 1.00 * vminps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vminps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 9 1.00 * vminps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 9 1.00 * vminps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 3 1.00 vminps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 10 1.00 * vminps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 10 1.00 * vminps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 3 1.00 vminps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vminps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 10 1.00 * vminps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 3 1.00 vminps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vminps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 * vminps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 5 1.00 vmulpd %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 11 1.00 * vmulpd (%rax), %xmm17, %xmm19 # CHECK-NEXT: 2 11 1.00 * vmulpd (%rax){1to2}, %xmm17, %xmm19 @@ -598,6 +966,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: 1 5 1.00 vmulps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 12 1.00 * vmulps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 12 1.00 * vmulps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddd (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpaddd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddd (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddd (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddd (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpaddd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddd (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddd (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddq (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpaddq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddq (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddq (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpaddq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpaddq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpaddq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpermd %ymm16, %ymm17, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpermd (%rax), %ymm17, %ymm19 # CHECK-NEXT: 2 8 1.00 * vpermd (%rax){1to8}, %ymm17, %ymm19 @@ -724,6 +1128,24 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: 1 1 1.00 vpermq %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpermq (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpermq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmulld %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 11 1.00 * vpmulld (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 11 1.00 * vpmulld (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 5 1.00 vpmulld %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 1.00 * vpmulld (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 11 1.00 * vpmulld (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmulld %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 1.00 * vpmulld (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 11 1.00 * vpmulld (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 5 1.00 vpmulld %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 12 1.00 * vpmulld (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 12 1.00 * vpmulld (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 5 1.00 vpmulld %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmulld (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 12 1.00 * vpmulld (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 5 1.00 vpmulld %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmulld (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 12 1.00 * vpmulld (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 0.50 vpshufd $0, %xmm16, %xmm19 # CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax), %xmm19 # CHECK-NEXT: 2 7 0.50 * vpshufd $0, (%rax){1to4}, %xmm19 @@ -742,6 +1164,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: 1 1 1.00 vpshufd $0, %ymm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubd (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsubd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubd (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubd (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsubd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubq (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.50 vpsubq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubq (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubq (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vpsubq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.50 vpsubq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vpsubq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 0.50 vpunpckhdq %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax), %xmm17, %xmm19 # CHECK-NEXT: 2 7 0.50 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 @@ -814,6 +1272,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: 1 1 1.00 vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 21 21.00 vsqrtpd %xmm16, %xmm19 +# CHECK-NEXT: 2 27 21.00 * vsqrtpd (%rax), %xmm19 +# CHECK-NEXT: 2 27 21.00 * vsqrtpd (%rax){1to2}, %xmm19 +# CHECK-NEXT: 1 21 21.00 vsqrtpd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 27 21.00 * vsqrtpd (%rax), %xmm19 {%k1} +# CHECK-NEXT: 2 27 21.00 * vsqrtpd (%rax){1to2}, %xmm19 {%k1} +# CHECK-NEXT: 1 21 21.00 vsqrtpd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 27 21.00 * vsqrtpd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 2 27 21.00 * vsqrtpd (%rax){1to2}, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 45 44.00 vsqrtpd %ymm16, %ymm19 +# CHECK-NEXT: 4 52 44.00 * vsqrtpd (%rax), %ymm19 +# CHECK-NEXT: 4 52 44.00 * vsqrtpd (%rax){1to4}, %ymm19 +# CHECK-NEXT: 3 45 44.00 vsqrtpd %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 4 52 44.00 * vsqrtpd (%rax), %ymm19 {%k1} +# CHECK-NEXT: 4 52 44.00 * vsqrtpd (%rax){1to4}, %ymm19 {%k1} +# CHECK-NEXT: 3 45 44.00 vsqrtpd %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 4 52 44.00 * vsqrtpd (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 4 52 44.00 * vsqrtpd (%rax){1to4}, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 14 14.00 vsqrtps %xmm16, %xmm19 +# CHECK-NEXT: 2 20 14.00 * vsqrtps (%rax), %xmm19 +# CHECK-NEXT: 2 20 14.00 * vsqrtps (%rax){1to4}, %xmm19 +# CHECK-NEXT: 1 14 14.00 vsqrtps %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 20 14.00 * vsqrtps (%rax), %xmm19 {%k1} +# CHECK-NEXT: 2 20 14.00 * vsqrtps (%rax){1to4}, %xmm19 {%k1} +# CHECK-NEXT: 1 14 14.00 vsqrtps %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 20 14.00 * vsqrtps (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 2 20 14.00 * vsqrtps (%rax){1to4}, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 29 28.00 vsqrtps %ymm16, %ymm19 +# CHECK-NEXT: 4 36 28.00 * vsqrtps (%rax), %ymm19 +# CHECK-NEXT: 4 36 28.00 * vsqrtps (%rax){1to8}, %ymm19 +# CHECK-NEXT: 3 29 28.00 vsqrtps %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 4 36 28.00 * vsqrtps (%rax), %ymm19 {%k1} +# CHECK-NEXT: 4 36 28.00 * vsqrtps (%rax){1to8}, %ymm19 {%k1} +# CHECK-NEXT: 3 29 28.00 vsqrtps %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 4 36 28.00 * vsqrtps (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 4 36 28.00 * vsqrtps (%rax){1to8}, %ymm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vsubpd %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 9 1.00 * vsubpd (%rax), %xmm17, %xmm19 # CHECK-NEXT: 2 9 1.00 * vsubpd (%rax){1to2}, %xmm17, %xmm19 @@ -935,7 +1429,7 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - 972.00 99.00 85.50 - 283.50 144.00 144.00 +# CHECK-NEXT: - 1935.00 180.00 229.50 - 346.50 222.00 222.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -975,6 +1469,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: - - - 1.00 - - - - vaddps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vaddps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vaddps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtdq2pd %xmm16, %xmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax), %xmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax){1to2}, %xmm19 +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtdq2pd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax){1to2}, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtdq2pd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax){1to2}, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtdq2pd %xmm16, %ymm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax), %ymm19 +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax){1to4}, %ymm19 +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtdq2pd %xmm16, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax){1to4}, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtdq2pd %xmm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtdq2pd (%rax){1to4}, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vcvtdq2ps %xmm16, %xmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax), %xmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax){1to4}, %xmm19 +# CHECK-NEXT: - - - 1.00 - - - - vcvtdq2ps %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax){1to4}, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vcvtdq2ps %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax){1to4}, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vcvtdq2ps %ymm16, %ymm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax), %ymm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax){1to8}, %ymm19 +# CHECK-NEXT: - - - 1.00 - - - - vcvtdq2ps %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax){1to8}, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vcvtdq2ps %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vcvtdq2ps (%rax){1to8}, %ymm19 {%k1} {z} # CHECK-NEXT: - 22.00 1.00 - - - - - vdivpd %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - 22.00 1.00 - - - 0.50 0.50 vdivpd (%rax), %xmm17, %xmm19 # CHECK-NEXT: - 22.00 1.00 - - - 0.50 0.50 vdivpd (%rax){1to2}, %xmm17, %xmm19 @@ -1011,6 +1541,78 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: - 28.00 2.50 - - 0.50 - - vdivps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vdivps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vdivps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vmaxpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - - - - vmaxpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vmaxpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vmaxpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - - - - vmaxpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vmaxpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vmaxps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - - - - vmaxps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vmaxps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vmaxps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - - - - vmaxps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vmaxps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vmaxps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vminpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - - - - vminpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vminpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vminpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - - - - vminpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vminpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vminps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - - 1.00 - - - - vminps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vminps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - - - vminps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - - 1.00 - - - - vminps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 1.00 - - - - vminps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vminps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 1.00 - - - - - vmulpd %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vmulpd (%rax), %xmm17, %xmm19 # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vmulpd (%rax){1to2}, %xmm17, %xmm19 @@ -1047,6 +1649,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: - - 1.00 - - - - - vmulps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vmulps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vmulps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddd (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddd (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddd (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddd (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddd (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddd (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpaddq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpaddq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 - - vpermd %ymm16, %ymm17, %ymm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax), %ymm17, %ymm19 # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax){1to8}, %ymm17, %ymm19 @@ -1173,6 +1811,24 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: - - - - - 1.00 - - vpermq %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmulld %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmulld %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmulld %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - - vpmulld %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 - - - - - vpmulld %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - - vpmulld %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmulld (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpshufd $0, %xmm16, %xmm19 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufd $0, (%rax), %xmm19 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpshufd $0, (%rax){1to4}, %xmm19 @@ -1191,6 +1847,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: - - - - - 1.00 - - vpshufd $0, %ymm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax), %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubd (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - - 0.50 - 0.50 - - vpsubq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpsubq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - 0.50 - 0.50 - - vpunpckhdq %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhdq (%rax), %xmm17, %xmm19 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 @@ -1263,6 +1955,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: - - - - - 1.00 - - vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - 1.00 0.50 0.50 vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - 21.00 1.00 - - - - - vsqrtpd %xmm16, %xmm19 +# CHECK-NEXT: - 21.00 1.00 - - - 0.50 0.50 vsqrtpd (%rax), %xmm19 +# CHECK-NEXT: - 21.00 1.00 - - - 0.50 0.50 vsqrtpd (%rax){1to2}, %xmm19 +# CHECK-NEXT: - 21.00 1.00 - - - - - vsqrtpd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - 21.00 1.00 - - - 0.50 0.50 vsqrtpd (%rax), %xmm19 {%k1} +# CHECK-NEXT: - 21.00 1.00 - - - 0.50 0.50 vsqrtpd (%rax){1to2}, %xmm19 {%k1} +# CHECK-NEXT: - 21.00 1.00 - - - - - vsqrtpd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - 21.00 1.00 - - - 0.50 0.50 vsqrtpd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - 21.00 1.00 - - - 0.50 0.50 vsqrtpd (%rax){1to2}, %xmm19 {%k1} {z} +# CHECK-NEXT: - 44.00 2.50 - - 0.50 - - vsqrtpd %ymm16, %ymm19 +# CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vsqrtpd (%rax), %ymm19 +# CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vsqrtpd (%rax){1to4}, %ymm19 +# CHECK-NEXT: - 44.00 2.50 - - 0.50 - - vsqrtpd %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vsqrtpd (%rax), %ymm19 {%k1} +# CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vsqrtpd (%rax){1to4}, %ymm19 {%k1} +# CHECK-NEXT: - 44.00 2.50 - - 0.50 - - vsqrtpd %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vsqrtpd (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - 44.00 2.50 - - 0.50 0.50 0.50 vsqrtpd (%rax){1to4}, %ymm19 {%k1} {z} +# CHECK-NEXT: - 14.00 1.00 - - - - - vsqrtps %xmm16, %xmm19 +# CHECK-NEXT: - 14.00 1.00 - - - 0.50 0.50 vsqrtps (%rax), %xmm19 +# CHECK-NEXT: - 14.00 1.00 - - - 0.50 0.50 vsqrtps (%rax){1to4}, %xmm19 +# CHECK-NEXT: - 14.00 1.00 - - - - - vsqrtps %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - 14.00 1.00 - - - 0.50 0.50 vsqrtps (%rax), %xmm19 {%k1} +# CHECK-NEXT: - 14.00 1.00 - - - 0.50 0.50 vsqrtps (%rax){1to4}, %xmm19 {%k1} +# CHECK-NEXT: - 14.00 1.00 - - - - - vsqrtps %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - 14.00 1.00 - - - 0.50 0.50 vsqrtps (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - 14.00 1.00 - - - 0.50 0.50 vsqrtps (%rax){1to4}, %xmm19 {%k1} {z} +# CHECK-NEXT: - 28.00 2.50 - - 0.50 - - vsqrtps %ymm16, %ymm19 +# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vsqrtps (%rax), %ymm19 +# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vsqrtps (%rax){1to8}, %ymm19 +# CHECK-NEXT: - 28.00 2.50 - - 0.50 - - vsqrtps %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vsqrtps (%rax), %ymm19 {%k1} +# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vsqrtps (%rax){1to8}, %ymm19 {%k1} +# CHECK-NEXT: - 28.00 2.50 - - 0.50 - - vsqrtps %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vsqrtps (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - 28.00 2.50 - - 0.50 0.50 0.50 vsqrtps (%rax){1to8}, %ymm19 {%k1} {z} # CHECK-NEXT: - - - 1.00 - - - - vsubpd %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vsubpd (%rax), %xmm17, %xmm19 # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vsubpd (%rax){1to2}, %xmm17, %xmm19 diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s index a9268b1cb..957fa66 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512.s @@ -21,6 +21,46 @@ vaddps %zmm16, %zmm17, %zmm19 {z}{k1} vaddps (%rax), %zmm17, %zmm19 {z}{k1} vaddps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} +vcvtdq2pd %ymm16, %zmm19 +vcvtdq2pd (%rax), %zmm19 +vcvtdq2pd (%rax){1to8}, %zmm19 +vcvtdq2pd %ymm16, %zmm19 {k1} +vcvtdq2pd (%rax), %zmm19 {k1} +vcvtdq2pd (%rax){1to8}, %zmm19 {k1} +vcvtdq2pd %ymm16, %zmm19 {z}{k1} +vcvtdq2pd (%rax), %zmm19 {z}{k1} +vcvtdq2pd (%rax){1to8}, %zmm19 {z}{k1} + +vcvtdq2ps %zmm16, %zmm19 +vcvtdq2ps (%rax), %zmm19 +vcvtdq2ps (%rax){1to16}, %zmm19 +vcvtdq2ps %zmm16, %zmm19 {k1} +vcvtdq2ps (%rax), %zmm19 {k1} +vcvtdq2ps (%rax){1to16}, %zmm19 {k1} +vcvtdq2ps %zmm16, %zmm19 {z}{k1} +vcvtdq2ps (%rax), %zmm19 {z}{k1} +vcvtdq2ps (%rax){1to16}, %zmm19 {z}{k1} + +vcvtps2dq %zmm16, %zmm19 +vcvtps2dq (%rax), %zmm19 +vcvtps2dq (%rax){1to16}, %zmm19 +vcvtps2dq %zmm16, %zmm19 {k1} +vcvtps2dq (%rax), %zmm19 {k1} +vcvtps2dq (%rax){1to16}, %zmm19 {k1} +vcvtps2dq %zmm16, %zmm19 {z}{k1} +vcvtps2dq (%rax), %zmm19 {z}{k1} +vcvtps2dq (%rax){1to16}, %zmm19 {z}{k1} + +vcvttps2dq %zmm16, %zmm19 +vcvttps2dq (%rax), %zmm19 +vcvttps2dq (%rax){1to16}, %zmm19 +vcvttps2dq %zmm16, %zmm19 {k1} +vcvttps2dq (%rax), %zmm19 {k1} +vcvttps2dq (%rax){1to16}, %zmm19 {k1} +vcvttps2dq %zmm16, %zmm19 {z}{k1} +vcvttps2dq (%rax), %zmm19 {z}{k1} +vcvttps2dq (%rax){1to16}, %zmm19 {z}{k1} + vdivpd %zmm16, %zmm17, %zmm19 vdivpd (%rax), %zmm17, %zmm19 vdivpd (%rax){1to8}, %zmm17, %zmm19 @@ -41,6 +81,46 @@ vdivps %zmm16, %zmm17, %zmm19 {z}{k1} vdivps (%rax), %zmm17, %zmm19 {z}{k1} vdivps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} +vmaxpd %zmm16, %zmm17, %zmm19 +vmaxpd (%rax), %zmm17, %zmm19 +vmaxpd (%rax){1to8}, %zmm17, %zmm19 +vmaxpd %zmm16, %zmm17, %zmm19 {k1} +vmaxpd (%rax), %zmm17, %zmm19 {k1} +vmaxpd (%rax){1to8}, %zmm17, %zmm19 {k1} +vmaxpd %zmm16, %zmm17, %zmm19 {z}{k1} +vmaxpd (%rax), %zmm17, %zmm19 {z}{k1} +vmaxpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1} + +vmaxps %zmm16, %zmm17, %zmm19 +vmaxps (%rax), %zmm17, %zmm19 +vmaxps (%rax){1to16}, %zmm17, %zmm19 +vmaxps %zmm16, %zmm17, %zmm19 {k1} +vmaxps (%rax), %zmm17, %zmm19 {k1} +vmaxps (%rax){1to16}, %zmm17, %zmm19 {k1} +vmaxps %zmm16, %zmm17, %zmm19 {z}{k1} +vmaxps (%rax), %zmm17, %zmm19 {z}{k1} +vmaxps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + +vminpd %zmm16, %zmm17, %zmm19 +vminpd (%rax), %zmm17, %zmm19 +vminpd (%rax){1to8}, %zmm17, %zmm19 +vminpd %zmm16, %zmm17, %zmm19 {k1} +vminpd (%rax), %zmm17, %zmm19 {k1} +vminpd (%rax){1to8}, %zmm17, %zmm19 {k1} +vminpd %zmm16, %zmm17, %zmm19 {z}{k1} +vminpd (%rax), %zmm17, %zmm19 {z}{k1} +vminpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1} + +vminps %zmm16, %zmm17, %zmm19 +vminps (%rax), %zmm17, %zmm19 +vminps (%rax){1to16}, %zmm17, %zmm19 +vminps %zmm16, %zmm17, %zmm19 {k1} +vminps (%rax), %zmm17, %zmm19 {k1} +vminps (%rax){1to16}, %zmm17, %zmm19 {k1} +vminps %zmm16, %zmm17, %zmm19 {z}{k1} +vminps (%rax), %zmm17, %zmm19 {z}{k1} +vminps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + vmulpd %zmm16, %zmm17, %zmm19 vmulpd (%rax), %zmm17, %zmm19 vmulpd (%rax){1to8}, %zmm17, %zmm19 @@ -101,6 +181,16 @@ vpaddq %zmm16, %zmm17, %zmm19 {z}{k1} vpaddq (%rax), %zmm17, %zmm19 {z}{k1} vpaddq (%rax){1to8}, %zmm17, %zmm19 {z}{k1} +vpmulld %zmm16, %zmm17, %zmm19 +vpmulld (%rax), %zmm17, %zmm19 +vpmulld (%rax){1to16}, %zmm17, %zmm19 +vpmulld %zmm16, %zmm17, %zmm19 {k1} +vpmulld (%rax), %zmm17, %zmm19 {k1} +vpmulld (%rax){1to16}, %zmm17, %zmm19 {k1} +vpmulld %zmm16, %zmm17, %zmm19 {z}{k1} +vpmulld (%rax), %zmm17, %zmm19 {z}{k1} +vpmulld (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + vpermd %zmm16, %zmm17, %zmm19 vpermd (%rax), %zmm17, %zmm19 vpermd (%rax){1to16}, %zmm17, %zmm19 @@ -211,6 +301,26 @@ vpshufd $0, %zmm16, %zmm19 {z}{k1} vpshufd $0, (%rax), %zmm19 {z}{k1} vpshufd $0, (%rax){1to16}, %zmm19 {z}{k1} +vpsubd %zmm16, %zmm17, %zmm19 +vpsubd (%rax), %zmm17, %zmm19 +vpsubd (%rax){1to16}, %zmm17, %zmm19 +vpsubd %zmm16, %zmm17, %zmm19 {k1} +vpsubd (%rax), %zmm17, %zmm19 {k1} +vpsubd (%rax){1to16}, %zmm17, %zmm19 {k1} +vpsubd %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubd (%rax), %zmm17, %zmm19 {z}{k1} +vpsubd (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + +vpsubq %zmm16, %zmm17, %zmm19 +vpsubq (%rax), %zmm17, %zmm19 +vpsubq (%rax){1to8}, %zmm17, %zmm19 +vpsubq %zmm16, %zmm17, %zmm19 {k1} +vpsubq (%rax), %zmm17, %zmm19 {k1} +vpsubq (%rax){1to8}, %zmm17, %zmm19 {k1} +vpsubq %zmm16, %zmm17, %zmm19 {z}{k1} +vpsubq (%rax), %zmm17, %zmm19 {z}{k1} +vpsubq (%rax){1to8}, %zmm17, %zmm19 {z}{k1} + vpunpckhdq %zmm16, %zmm17, %zmm19 vpunpckhdq (%rax), %zmm17, %zmm19 vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 @@ -291,6 +401,40 @@ vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {z}{k1} vshufi64x2 $0, (%rax), %zmm17, %zmm19 {z}{k1} vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {z}{k1} +vsqrtpd %zmm16, %zmm19 +vsqrtpd (%rax), %zmm19 +vsqrtpd (%rax){1to8}, %zmm19 +vsqrtpd %zmm16, %zmm19 {k1} +vsqrtpd (%rax), %zmm19 {k1} +vsqrtpd (%rax){1to8}, %zmm19 {k1} +vsqrtpd %zmm16, %zmm19 {z}{k1} +vsqrtpd (%rax), %zmm19 {z}{k1} +vsqrtpd (%rax){1to8}, %zmm19 {z}{k1} + +vsqrtps %zmm16, %zmm19 +vsqrtps (%rax), %zmm19 +vsqrtps (%rax){1to16}, %zmm19 +vsqrtps %zmm16, %zmm19 {k1} +vsqrtps (%rax), %zmm19 {k1} +vsqrtps (%rax){1to16}, %zmm19 {k1} +vsqrtps %zmm16, %zmm19 {z}{k1} +vsqrtps (%rax), %zmm19 {z}{k1} +vsqrtps (%rax){1to16}, %zmm19 {z}{k1} + +vsqrtsd %xmm16, %xmm17, %xmm19 +vsqrtsd (%rax), %xmm17, %xmm19 +vsqrtsd %xmm16, %xmm17, %xmm19 {k1} +vsqrtsd (%rax), %xmm17, %xmm19 {k1} +vsqrtsd %xmm16, %xmm17, %xmm19 {z}{k1} +vsqrtsd (%rax), %xmm17, %xmm19 {z}{k1} + +vsqrtss %xmm16, %xmm17, %xmm19 +vsqrtss (%rax), %xmm17, %xmm19 +vsqrtss %xmm16, %xmm17, %xmm19 {k1} +vsqrtss (%rax), %xmm17, %xmm19 {k1} +vsqrtss %xmm16, %xmm17, %xmm19 {z}{k1} +vsqrtss (%rax), %xmm17, %xmm19 {z}{k1} + vpsubd %zmm16, %zmm17, %zmm19 vpsubd (%rax), %zmm17, %zmm19 vpsubd (%rax){1to16}, %zmm17, %zmm19 @@ -398,6 +542,42 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: 1 4 0.50 vaddps %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 11 0.50 * vaddps (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 11 0.50 * vaddps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 vcvtdq2pd %ymm16, %zmm19 +# CHECK-NEXT: 2 11 0.50 * vcvtdq2pd (%rax), %zmm19 +# CHECK-NEXT: 2 11 0.50 * vcvtdq2pd (%rax){1to8}, %zmm19 +# CHECK-NEXT: 1 4 0.50 vcvtdq2pd %ymm16, %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2pd (%rax), %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2pd (%rax){1to8}, %zmm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vcvtdq2pd %ymm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2pd (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2pd (%rax){1to8}, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vcvtdq2ps %zmm16, %zmm19 +# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax), %zmm19 +# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax){1to16}, %zmm19 +# CHECK-NEXT: 1 4 0.50 vcvtdq2ps %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax), %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vcvtdq2ps %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vcvtps2dq %zmm16, %zmm19 +# CHECK-NEXT: 2 11 0.50 * vcvtps2dq (%rax), %zmm19 +# CHECK-NEXT: 2 11 0.50 * vcvtps2dq (%rax){1to16}, %zmm19 +# CHECK-NEXT: 1 3 0.50 vcvtps2dq %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvtps2dq (%rax), %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvtps2dq (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: 1 3 0.50 vcvtps2dq %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvtps2dq (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvtps2dq (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vcvttps2dq %zmm16, %zmm19 +# CHECK-NEXT: 2 11 0.50 * vcvttps2dq (%rax), %zmm19 +# CHECK-NEXT: 2 11 0.50 * vcvttps2dq (%rax){1to16}, %zmm19 +# CHECK-NEXT: 1 3 0.50 vcvttps2dq %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvttps2dq (%rax), %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvttps2dq (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: 1 3 0.50 vcvttps2dq %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvttps2dq (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvttps2dq (%rax){1to16}, %zmm19 {%k1} {z} # CHECK-NEXT: 3 23 16.00 vdivpd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 4 30 16.00 * vdivpd (%rax), %zmm17, %zmm19 # CHECK-NEXT: 4 30 16.00 * vdivpd (%rax){1to8}, %zmm17, %zmm19 @@ -416,6 +596,42 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: 3 18 10.00 vdivps %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 4 25 10.00 * vdivps (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 4 25 10.00 * vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vmaxpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 11 0.50 * vmaxpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 11 0.50 * vmaxpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: 1 4 0.50 vmaxpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vmaxpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vmaxpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vmaxpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vmaxpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vmaxpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vmaxps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 11 0.50 * vmaxps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 11 0.50 * vmaxps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 1 4 0.50 vmaxps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vmaxps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vmaxps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vmaxps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vmaxps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vmaxps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vminpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 11 0.50 * vminpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 11 0.50 * vminpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: 1 4 0.50 vminpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vminpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vminpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vminpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vminpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vminpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vminps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 11 0.50 * vminps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 11 0.50 * vminps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 1 4 0.50 vminps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vminps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vminps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vminps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vminps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vminps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 4 0.50 vmulpd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 11 0.50 * vmulpd (%rax), %zmm17, %zmm19 # CHECK-NEXT: 2 11 0.50 * vmulpd (%rax){1to8}, %zmm17, %zmm19 @@ -470,6 +686,15 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: 1 1 0.33 vpaddq %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpaddq (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 0.50 * vpaddq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 vpmulld %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 2 10 1.00 vpmulld %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 vpmulld %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpermd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 10 1.00 * vpermd (%rax), %zmm17, %zmm19 # CHECK-NEXT: 2 10 1.00 * vpermd (%rax){1to16}, %zmm17, %zmm19 @@ -569,6 +794,24 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: 1 1 1.00 vpshufd $0, %zmm16, %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %zmm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpsubd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.33 vpsubd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpsubd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpsubq %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.33 vpsubq %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpsubq %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpunpckhdq %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax), %zmm17, %zmm19 # CHECK-NEXT: 2 8 1.00 * vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 @@ -641,6 +884,36 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: 1 3 1.00 vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 32 24.00 vsqrtpd %zmm16, %zmm19 +# CHECK-NEXT: 4 39 24.00 * vsqrtpd (%rax), %zmm19 +# CHECK-NEXT: 4 39 24.00 * vsqrtpd (%rax){1to8}, %zmm19 +# CHECK-NEXT: 3 32 24.00 vsqrtpd %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 4 39 24.00 * vsqrtpd (%rax), %zmm19 {%k1} +# CHECK-NEXT: 4 39 24.00 * vsqrtpd (%rax){1to8}, %zmm19 {%k1} +# CHECK-NEXT: 3 32 24.00 vsqrtpd %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 4 39 24.00 * vsqrtpd (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 4 39 24.00 * vsqrtpd (%rax){1to8}, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 20 12.00 vsqrtps %zmm16, %zmm19 +# CHECK-NEXT: 4 27 12.00 * vsqrtps (%rax), %zmm19 +# CHECK-NEXT: 4 27 12.00 * vsqrtps (%rax){1to16}, %zmm19 +# CHECK-NEXT: 3 20 12.00 vsqrtps %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 4 27 12.00 * vsqrtps (%rax), %zmm19 {%k1} +# CHECK-NEXT: 4 27 12.00 * vsqrtps (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: 3 20 12.00 vsqrtps %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 4 27 12.00 * vsqrtps (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 4 27 12.00 * vsqrtps (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 18 6.00 vsqrtsd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 23 6.00 * vsqrtsd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 18 6.00 vsqrtsd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 23 6.00 * vsqrtsd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 18 6.00 vsqrtsd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 23 6.00 * vsqrtsd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 12 3.00 vsqrtss %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 17 3.00 * vsqrtss (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 1 12 3.00 vsqrtss %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 17 3.00 * vsqrtss (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 12 3.00 vsqrtss %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 17 3.00 * vsqrtss (%rax), %xmm17, %xmm19 {%k1} {z} # CHECK-NEXT: 1 1 0.33 vpsubd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %zmm17, %zmm19 # CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to16}, %zmm17, %zmm19 @@ -728,7 +1001,7 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - 234.00 93.00 12.00 111.00 111.00 - 264.00 - - +# CHECK-NEXT: - 612.00 188.00 26.00 153.00 153.00 - 330.00 - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -750,6 +1023,42 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: - - 0.50 - - - - 0.50 - - vaddps %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vaddps (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vaddps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 1.50 - - vcvtdq2pd %ymm16, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax), %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax){1to8}, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvtdq2pd %ymm16, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax){1to8}, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvtdq2pd %ymm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax){1to8}, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvtdq2ps %zmm16, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax), %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax){1to16}, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvtdq2ps %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvtdq2ps %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvtps2dq %zmm16, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtps2dq (%rax), %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtps2dq (%rax){1to16}, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvtps2dq %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtps2dq (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtps2dq (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvtps2dq %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtps2dq (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtps2dq (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvttps2dq %zmm16, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvttps2dq (%rax), %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvttps2dq (%rax){1to16}, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvttps2dq %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvttps2dq (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvttps2dq (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvttps2dq %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvttps2dq (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvttps2dq (%rax){1to16}, %zmm19 {%k1} {z} # CHECK-NEXT: - 16.00 2.00 - - - - 1.00 - - vdivpd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - 16.00 2.00 - 0.50 0.50 - 1.00 - - vdivpd (%rax), %zmm17, %zmm19 # CHECK-NEXT: - 16.00 2.00 - 0.50 0.50 - 1.00 - - vdivpd (%rax){1to8}, %zmm17, %zmm19 @@ -768,6 +1077,42 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: - 10.00 2.00 - - - - 1.00 - - vdivps %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - 10.00 2.00 - 0.50 0.50 - 1.00 - - vdivps (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - 10.00 2.00 - 0.50 0.50 - 1.00 - - vdivps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vmaxpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vmaxpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vmaxpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vmaxpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vmaxpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vmaxpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vmaxpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vmaxpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vmaxpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vmaxps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vmaxps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vmaxps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vmaxps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vmaxps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vmaxps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vmaxps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vmaxps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vmaxps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vminpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vminpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vminpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vminpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vminpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vminpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vminpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vminpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vminpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vminps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vminps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vminps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vminps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vminps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vminps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vminps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vminps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vminps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.50 - - - - 0.50 - - vmulpd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vmulpd (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vmulpd (%rax){1to8}, %zmm17, %zmm19 @@ -822,6 +1167,15 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddq %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpmulld %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpmulld (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpmulld (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpmulld %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpmulld (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpmulld (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 - - - - 1.00 - - vpmulld %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpmulld (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - vpmulld (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - vpermd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax){1to16}, %zmm17, %zmm19 @@ -921,6 +1275,24 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpshufd $0, %zmm16, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax), %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubq %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubq %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubq %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhdq %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax){1to16}, %zmm17, %zmm19 @@ -993,6 +1365,36 @@ vunpcklps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} # CHECK-NEXT: - - - - - - - 1.00 - - vshufi64x2 $0, %zmm16, %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax), %zmm17, %zmm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - 24.00 2.00 - - - - 1.00 - - vsqrtpd %zmm16, %zmm19 +# CHECK-NEXT: - 24.00 2.00 - 0.50 0.50 - 1.00 - - vsqrtpd (%rax), %zmm19 +# CHECK-NEXT: - 24.00 2.00 - 0.50 0.50 - 1.00 - - vsqrtpd (%rax){1to8}, %zmm19 +# CHECK-NEXT: - 24.00 2.00 - - - - 1.00 - - vsqrtpd %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - 24.00 2.00 - 0.50 0.50 - 1.00 - - vsqrtpd (%rax), %zmm19 {%k1} +# CHECK-NEXT: - 24.00 2.00 - 0.50 0.50 - 1.00 - - vsqrtpd (%rax){1to8}, %zmm19 {%k1} +# CHECK-NEXT: - 24.00 2.00 - - - - 1.00 - - vsqrtpd %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - 24.00 2.00 - 0.50 0.50 - 1.00 - - vsqrtpd (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - 24.00 2.00 - 0.50 0.50 - 1.00 - - vsqrtpd (%rax){1to8}, %zmm19 {%k1} {z} +# CHECK-NEXT: - 12.00 2.00 - - - - 1.00 - - vsqrtps %zmm16, %zmm19 +# CHECK-NEXT: - 12.00 2.00 - 0.50 0.50 - 1.00 - - vsqrtps (%rax), %zmm19 +# CHECK-NEXT: - 12.00 2.00 - 0.50 0.50 - 1.00 - - vsqrtps (%rax){1to16}, %zmm19 +# CHECK-NEXT: - 12.00 2.00 - - - - 1.00 - - vsqrtps %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - 12.00 2.00 - 0.50 0.50 - 1.00 - - vsqrtps (%rax), %zmm19 {%k1} +# CHECK-NEXT: - 12.00 2.00 - 0.50 0.50 - 1.00 - - vsqrtps (%rax){1to16}, %zmm19 {%k1} +# CHECK-NEXT: - 12.00 2.00 - - - - 1.00 - - vsqrtps %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - 12.00 2.00 - 0.50 0.50 - 1.00 - - vsqrtps (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - 12.00 2.00 - 0.50 0.50 - 1.00 - - vsqrtps (%rax){1to16}, %zmm19 {%k1} {z} +# CHECK-NEXT: - 6.00 1.00 - - - - - - - vsqrtsd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - vsqrtsd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - 6.00 1.00 - - - - - - - vsqrtsd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - vsqrtsd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - 6.00 1.00 - - - - - - - vsqrtsd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - vsqrtsd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - 3.00 1.00 - - - - - - - vsqrtss %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vsqrtss (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - 3.00 1.00 - - - - - - - vsqrtss %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vsqrtss (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - 3.00 1.00 - - - - - - - vsqrtss %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vsqrtss (%rax), %xmm17, %xmm19 {%k1} {z} # CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubd %zmm16, %zmm17, %zmm19 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax), %zmm17, %zmm19 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax){1to16}, %zmm17, %zmm19 diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dq.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dq.s new file mode 100644 index 0000000..1612ede --- /dev/null +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dq.s @@ -0,0 +1,330 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake-avx512 -instruction-tables < %s | FileCheck %s + +vandnpd %zmm16, %zmm17, %zmm19 +vandnpd (%rax), %zmm17, %zmm19 +vandnpd (%rax){1to8}, %zmm17, %zmm19 +vandnpd %zmm16, %zmm17, %zmm19 {k1} +vandnpd (%rax), %zmm17, %zmm19 {k1} +vandnpd (%rax){1to8}, %zmm17, %zmm19 {k1} +vandnpd %zmm16, %zmm17, %zmm19 {z}{k1} +vandnpd (%rax), %zmm17, %zmm19 {z}{k1} +vandnpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1} + +vandnps %zmm16, %zmm17, %zmm19 +vandnps (%rax), %zmm17, %zmm19 +vandnps (%rax){1to16}, %zmm17, %zmm19 +vandnps %zmm16, %zmm17, %zmm19 {k1} +vandnps (%rax), %zmm17, %zmm19 {k1} +vandnps (%rax){1to16}, %zmm17, %zmm19 {k1} +vandnps %zmm16, %zmm17, %zmm19 {z}{k1} +vandnps (%rax), %zmm17, %zmm19 {z}{k1} +vandnps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + +vandpd %zmm16, %zmm17, %zmm19 +vandpd (%rax), %zmm17, %zmm19 +vandpd (%rax){1to8}, %zmm17, %zmm19 +vandpd %zmm16, %zmm17, %zmm19 {k1} +vandpd (%rax), %zmm17, %zmm19 {k1} +vandpd (%rax){1to8}, %zmm17, %zmm19 {k1} +vandpd %zmm16, %zmm17, %zmm19 {z}{k1} +vandpd (%rax), %zmm17, %zmm19 {z}{k1} +vandpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1} + +vandps %zmm16, %zmm17, %zmm19 +vandps (%rax), %zmm17, %zmm19 +vandps (%rax){1to16}, %zmm17, %zmm19 +vandps %zmm16, %zmm17, %zmm19 {k1} +vandps (%rax), %zmm17, %zmm19 {k1} +vandps (%rax){1to16}, %zmm17, %zmm19 {k1} +vandps %zmm16, %zmm17, %zmm19 {z}{k1} +vandps (%rax), %zmm17, %zmm19 {z}{k1} +vandps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + +vcvtqq2pd %zmm16, %zmm19 +vcvtqq2pd (%rax), %zmm19 +vcvtqq2pd (%rax){1to8}, %zmm19 +vcvtqq2pd %zmm16, %zmm19 {k1} +vcvtqq2pd (%rax), %zmm19 {k1} +vcvtqq2pd (%rax){1to8}, %zmm19 {k1} +vcvtqq2pd %zmm16, %zmm19 {z}{k1} +vcvtqq2pd (%rax), %zmm19 {z}{k1} +vcvtqq2pd (%rax){1to8}, %zmm19 {z}{k1} + +vcvtqq2ps %zmm16, %ymm19 +vcvtqq2ps (%rax), %ymm19 +vcvtqq2ps (%rax){1to8}, %ymm19 +vcvtqq2ps %zmm16, %ymm19 {k1} +vcvtqq2ps (%rax), %ymm19 {k1} +vcvtqq2ps (%rax){1to8}, %ymm19 {k1} +vcvtqq2ps %zmm16, %ymm19 {z}{k1} +vcvtqq2ps (%rax), %ymm19 {z}{k1} +vcvtqq2ps (%rax){1to8}, %ymm19 {z}{k1} + +vorpd %zmm16, %zmm17, %zmm19 +vorpd (%rax), %zmm17, %zmm19 +vorpd (%rax){1to8}, %zmm17, %zmm19 +vorpd %zmm16, %zmm17, %zmm19 {k1} +vorpd (%rax), %zmm17, %zmm19 {k1} +vorpd (%rax){1to8}, %zmm17, %zmm19 {k1} +vorpd %zmm16, %zmm17, %zmm19 {z}{k1} +vorpd (%rax), %zmm17, %zmm19 {z}{k1} +vorpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1} + +vorps %zmm16, %zmm17, %zmm19 +vorps (%rax), %zmm17, %zmm19 +vorps (%rax){1to16}, %zmm17, %zmm19 +vorps %zmm16, %zmm17, %zmm19 {k1} +vorps (%rax), %zmm17, %zmm19 {k1} +vorps (%rax){1to16}, %zmm17, %zmm19 {k1} +vorps %zmm16, %zmm17, %zmm19 {z}{k1} +vorps (%rax), %zmm17, %zmm19 {z}{k1} +vorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + +vpmullq %zmm16, %zmm17, %zmm19 +vpmullq (%rax), %zmm17, %zmm19 +vpmullq %zmm16, %zmm17, %zmm19 {k1} +vpmullq (%rax), %zmm17, %zmm19 {k1} +vpmullq %zmm16, %zmm17, %zmm19 {z}{k1} +vpmullq (%rax), %zmm17, %zmm19 {z}{k1} + +vxorpd %zmm16, %zmm17, %zmm19 +vxorpd (%rax), %zmm17, %zmm19 +vxorpd (%rax){1to8}, %zmm17, %zmm19 +vxorpd %zmm16, %zmm17, %zmm19 {k1} +vxorpd (%rax), %zmm17, %zmm19 {k1} +vxorpd (%rax){1to8}, %zmm17, %zmm19 {k1} +vxorpd %zmm16, %zmm17, %zmm19 {z}{k1} +vxorpd (%rax), %zmm17, %zmm19 {z}{k1} +vxorpd (%rax){1to8}, %zmm17, %zmm19 {z}{k1} + +vxorps %zmm16, %zmm17, %zmm19 +vxorps (%rax), %zmm17, %zmm19 +vxorps (%rax){1to16}, %zmm17, %zmm19 +vxorps %zmm16, %zmm17, %zmm19 {k1} +vxorps (%rax), %zmm17, %zmm19 {k1} +vxorps (%rax){1to16}, %zmm17, %zmm19 {k1} +vxorps %zmm16, %zmm17, %zmm19 {z}{k1} +vxorps (%rax), %zmm17, %zmm19 {z}{k1} +vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1} + +# 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: 1 1 0.50 vandnpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vandnpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vandnpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vandnpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vandnpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vandnpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vandnpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vandnpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vandnpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vandnps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vandnps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vandnps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vandnps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vandnps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vandnps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vandnps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vandnps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vandnps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vandpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vandpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vandpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vandpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vandpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vandpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vandpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vandpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vandpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vandps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vandps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vandps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vandps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vandps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vandps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vandps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vandps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vandps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vcvtqq2pd %zmm16, %zmm19 +# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax), %zmm19 +# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax){1to8}, %zmm19 +# CHECK-NEXT: 1 4 0.50 vcvtqq2pd %zmm16, %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax), %zmm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax){1to8}, %zmm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vcvtqq2pd %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax){1to8}, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 vcvtqq2ps %zmm16, %ymm19 +# CHECK-NEXT: 3 14 1.00 * vcvtqq2ps (%rax), %ymm19 +# CHECK-NEXT: 3 14 1.00 * vcvtqq2ps (%rax){1to8}, %ymm19 +# CHECK-NEXT: 1 4 0.50 vcvtqq2ps %zmm16, %ymm19 {%k1} +# CHECK-NEXT: 3 14 1.00 * vcvtqq2ps (%rax), %ymm19 {%k1} +# CHECK-NEXT: 3 14 1.00 * vcvtqq2ps (%rax){1to8}, %ymm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vcvtqq2ps %zmm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 3 14 1.00 * vcvtqq2ps (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 3 14 1.00 * vcvtqq2ps (%rax){1to8}, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vorpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vorpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vorpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vorpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vorpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vorpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vorpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vorps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vorps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vorps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vorps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vorps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vorps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vorps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vorps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 3 12 1.50 vpmullq %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 4 19 1.00 * vpmullq (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 3 12 1.50 vpmullq %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 4 19 1.00 * vpmullq (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 3 12 1.50 vpmullq %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 4 19 1.00 * vpmullq (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vxorpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vxorpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vxorpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vxorpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vxorpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vxorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vxorpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vxorpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vxorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.50 vxorps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vxorps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: 2 8 0.50 * vxorps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: 1 1 0.50 vxorps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vxorps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: 1 1 0.50 vxorps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vxorps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} + +# CHECK: Resources: +# CHECK-NEXT: [0] - SKXDivider +# CHECK-NEXT: [1] - SKXFPDivider +# CHECK-NEXT: [2] - SKXPort0 +# CHECK-NEXT: [3] - SKXPort1 +# CHECK-NEXT: [4] - SKXPort2 +# CHECK-NEXT: [5] - SKXPort3 +# CHECK-NEXT: [6] - SKXPort4 +# CHECK-NEXT: [7] - SKXPort5 +# CHECK-NEXT: [8] - SKXPort6 +# CHECK-NEXT: [9] - SKXPort7 + +# CHECK: Resource pressure per iteration: +# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] +# CHECK-NEXT: - - 50.50 7.00 31.50 31.50 - 57.50 - - + +# CHECK: Resource pressure by instruction: +# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vandnpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandnpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandnpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vandnpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandnpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandnpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vandnpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandnpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandnpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vandnps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandnps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandnps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vandnps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandnps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandnps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vandnps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandnps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandnps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vandpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vandpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vandpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vandps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vandps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vandps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vandps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvtqq2pd %zmm16, %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax), %zmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax){1to8}, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvtqq2pd %zmm16, %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax), %zmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax){1to8}, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvtqq2pd %zmm16, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax), %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax){1to8}, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 1.50 - - vcvtqq2ps %zmm16, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 1.33 - - vcvtqq2ps (%rax), %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 1.33 - - vcvtqq2ps (%rax){1to8}, %ymm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvtqq2ps %zmm16, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 1.33 - - vcvtqq2ps (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 1.33 - - vcvtqq2ps (%rax){1to8}, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vcvtqq2ps %zmm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 1.33 - - vcvtqq2ps (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 1.33 - - vcvtqq2ps (%rax){1to8}, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vorpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vorpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vorpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vorpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vorpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vorpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vorpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vorps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vorps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vorps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vorps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vorps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vorps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vorps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vorps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.50 - - - - 1.50 - - vpmullq %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - 1.00 - - vpmullq (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 1.50 - - - - 1.50 - - vpmullq %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - 1.00 - - vpmullq (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 1.50 - - - - 1.50 - - vpmullq %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - 1.00 - - vpmullq (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vxorpd %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorpd (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorpd (%rax){1to8}, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vxorpd %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorpd (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vxorpd %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorpd (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorpd (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vxorps %zmm16, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorps (%rax), %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorps (%rax){1to16}, %zmm17, %zmm19 +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vxorps %zmm16, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorps (%rax), %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} +# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vxorps %zmm16, %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorps (%rax), %zmm17, %zmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dqvl.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dqvl.s new file mode 100644 index 0000000..f6b3cd6 --- /dev/null +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512dqvl.s @@ -0,0 +1,517 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake-avx512 -instruction-tables < %s | FileCheck %s + +vandnpd %xmm16, %xmm17, %xmm19 +vandnpd (%rax), %xmm17, %xmm19 +vandnpd (%rax){1to2}, %xmm17, %xmm19 +vandnpd %xmm16, %xmm17, %xmm19 {k1} +vandnpd (%rax), %xmm17, %xmm19 {k1} +vandnpd (%rax){1to2}, %xmm17, %xmm19 {k1} +vandnpd %xmm16, %xmm17, %xmm19 {z}{k1} +vandnpd (%rax), %xmm17, %xmm19 {z}{k1} +vandnpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vandnpd %ymm16, %ymm17, %ymm19 +vandnpd (%rax), %ymm17, %ymm19 +vandnpd (%rax){1to4}, %ymm17, %ymm19 +vandnpd %ymm16, %ymm17, %ymm19 {k1} +vandnpd (%rax), %ymm17, %ymm19 {k1} +vandnpd (%rax){1to4}, %ymm17, %ymm19 {k1} +vandnpd %ymm16, %ymm17, %ymm19 {z}{k1} +vandnpd (%rax), %ymm17, %ymm19 {z}{k1} +vandnpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + +vandpd %xmm16, %xmm17, %xmm19 +vandpd (%rax), %xmm17, %xmm19 +vandpd (%rax){1to2}, %xmm17, %xmm19 +vandpd %xmm16, %xmm17, %xmm19 {k1} +vandpd (%rax), %xmm17, %xmm19 {k1} +vandpd (%rax){1to2}, %xmm17, %xmm19 {k1} +vandpd %xmm16, %xmm17, %xmm19 {z}{k1} +vandpd (%rax), %xmm17, %xmm19 {z}{k1} +vandpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vandpd %ymm16, %ymm17, %ymm19 +vandpd (%rax), %ymm17, %ymm19 +vandpd (%rax){1to4}, %ymm17, %ymm19 +vandpd %ymm16, %ymm17, %ymm19 {k1} +vandpd (%rax), %ymm17, %ymm19 {k1} +vandpd (%rax){1to4}, %ymm17, %ymm19 {k1} +vandpd %ymm16, %ymm17, %ymm19 {z}{k1} +vandpd (%rax), %ymm17, %ymm19 {z}{k1} +vandpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + +vandps %xmm16, %xmm17, %xmm19 +vandps (%rax), %xmm17, %xmm19 +vandps (%rax){1to4}, %xmm17, %xmm19 +vandps %xmm16, %xmm17, %xmm19 {k1} +vandps (%rax), %xmm17, %xmm19 {k1} +vandps (%rax){1to4}, %xmm17, %xmm19 {k1} +vandps %xmm16, %xmm17, %xmm19 {z}{k1} +vandps (%rax), %xmm17, %xmm19 {z}{k1} +vandps (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vandps %ymm16, %ymm17, %ymm19 +vandps (%rax), %ymm17, %ymm19 +vandps (%rax){1to8}, %ymm17, %ymm19 +vandps %ymm16, %ymm17, %ymm19 {k1} +vandps (%rax), %ymm17, %ymm19 {k1} +vandps (%rax){1to8}, %ymm17, %ymm19 {k1} +vandps %ymm16, %ymm17, %ymm19 {z}{k1} +vandps (%rax), %ymm17, %ymm19 {z}{k1} +vandps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + +vcvtqq2pd %xmm16, %xmm19 +vcvtqq2pd (%rax), %xmm19 +vcvtqq2pd (%rax){1to2}, %xmm19 +vcvtqq2pd %xmm16, %xmm19 {k1} +vcvtqq2pd (%rax), %xmm19 {k1} +vcvtqq2pd (%rax){1to2}, %xmm19 {k1} +vcvtqq2pd %xmm16, %xmm19 {z}{k1} +vcvtqq2pd (%rax), %xmm19 {z}{k1} +vcvtqq2pd (%rax){1to2}, %xmm19 {z}{k1} + +vcvtqq2pd %ymm16, %ymm19 +vcvtqq2pd (%rax), %ymm19 +vcvtqq2pd (%rax){1to4}, %ymm19 +vcvtqq2pd %ymm16, %ymm19 {k1} +vcvtqq2pd (%rax), %ymm19 {k1} +vcvtqq2pd (%rax){1to4}, %ymm19 {k1} +vcvtqq2pd %ymm16, %ymm19 {z}{k1} +vcvtqq2pd (%rax), %ymm19 {z}{k1} +vcvtqq2pd (%rax){1to4}, %ymm19 {z}{k1} + +vorpd %xmm16, %xmm17, %xmm19 +vorpd (%rax), %xmm17, %xmm19 +vorpd (%rax){1to2}, %xmm17, %xmm19 +vorpd %xmm16, %xmm17, %xmm19 {k1} +vorpd (%rax), %xmm17, %xmm19 {k1} +vorpd (%rax){1to2}, %xmm17, %xmm19 {k1} +vorpd %xmm16, %xmm17, %xmm19 {z}{k1} +vorpd (%rax), %xmm17, %xmm19 {z}{k1} +vorpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vorpd %ymm16, %ymm17, %ymm19 +vorpd (%rax), %ymm17, %ymm19 +vorpd (%rax){1to4}, %ymm17, %ymm19 +vorpd %ymm16, %ymm17, %ymm19 {k1} +vorpd (%rax), %ymm17, %ymm19 {k1} +vorpd (%rax){1to4}, %ymm17, %ymm19 {k1} +vorpd %ymm16, %ymm17, %ymm19 {z}{k1} +vorpd (%rax), %ymm17, %ymm19 {z}{k1} +vorpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + +vorps %xmm16, %xmm17, %xmm19 +vorps (%rax), %xmm17, %xmm19 +vorps (%rax){1to4}, %xmm17, %xmm19 +vorps %xmm16, %xmm17, %xmm19 {k1} +vorps (%rax), %xmm17, %xmm19 {k1} +vorps (%rax){1to4}, %xmm17, %xmm19 {k1} +vorps %xmm16, %xmm17, %xmm19 {z}{k1} +vorps (%rax), %xmm17, %xmm19 {z}{k1} +vorps (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vorps %ymm16, %ymm17, %ymm19 +vorps (%rax), %ymm17, %ymm19 +vorps (%rax){1to8}, %ymm17, %ymm19 +vorps %ymm16, %ymm17, %ymm19 {k1} +vorps (%rax), %ymm17, %ymm19 {k1} +vorps (%rax){1to8}, %ymm17, %ymm19 {k1} +vorps %ymm16, %ymm17, %ymm19 {z}{k1} +vorps (%rax), %ymm17, %ymm19 {z}{k1} +vorps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + +vpmullq %xmm16, %xmm17, %xmm19 +vpmullq (%rax), %xmm17, %xmm19 +vpmullq %xmm16, %xmm17, %xmm19 {k1} +vpmullq (%rax), %xmm17, %xmm19 {k1} +vpmullq %xmm16, %xmm17, %xmm19 {z}{k1} +vpmullq (%rax), %xmm17, %xmm19 {z}{k1} + +vpmullq %ymm16, %ymm17, %ymm19 +vpmullq (%rax), %ymm17, %ymm19 +vpmullq %ymm16, %ymm17, %ymm19 {k1} +vpmullq (%rax), %ymm17, %ymm19 {k1} +vpmullq %ymm16, %ymm17, %ymm19 {z}{k1} +vpmullq (%rax), %ymm17, %ymm19 {z}{k1} + +vxorpd %xmm16, %xmm17, %xmm19 +vxorpd (%rax), %xmm17, %xmm19 +vxorpd (%rax){1to2}, %xmm17, %xmm19 +vxorpd %xmm16, %xmm17, %xmm19 {k1} +vxorpd (%rax), %xmm17, %xmm19 {k1} +vxorpd (%rax){1to2}, %xmm17, %xmm19 {k1} +vxorpd %xmm16, %xmm17, %xmm19 {z}{k1} +vxorpd (%rax), %xmm17, %xmm19 {z}{k1} +vxorpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vxorpd %ymm16, %ymm17, %ymm19 +vxorpd (%rax), %ymm17, %ymm19 +vxorpd (%rax){1to4}, %ymm17, %ymm19 +vxorpd %ymm16, %ymm17, %ymm19 {k1} +vxorpd (%rax), %ymm17, %ymm19 {k1} +vxorpd (%rax){1to4}, %ymm17, %ymm19 {k1} +vxorpd %ymm16, %ymm17, %ymm19 {z}{k1} +vxorpd (%rax), %ymm17, %ymm19 {z}{k1} +vxorpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + +vxorps %xmm16, %xmm17, %xmm19 +vxorps (%rax), %xmm17, %xmm19 +vxorps (%rax){1to4}, %xmm17, %xmm19 +vxorps %xmm16, %xmm17, %xmm19 {k1} +vxorps (%rax), %xmm17, %xmm19 {k1} +vxorps (%rax){1to4}, %xmm17, %xmm19 {k1} +vxorps %xmm16, %xmm17, %xmm19 {z}{k1} +vxorps (%rax), %xmm17, %xmm19 {z}{k1} +vxorps (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vxorps %ymm16, %ymm17, %ymm19 +vxorps (%rax), %ymm17, %ymm19 +vxorps (%rax){1to8}, %ymm17, %ymm19 +vxorps %ymm16, %ymm17, %ymm19 {k1} +vxorps (%rax), %ymm17, %ymm19 {k1} +vxorps (%rax){1to8}, %ymm17, %ymm19 {k1} +vxorps %ymm16, %ymm17, %ymm19 {z}{k1} +vxorps (%rax), %ymm17, %ymm19 {z}{k1} +vxorps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + +# 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: 1 1 0.33 vandnpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vandnpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vandnpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.33 vandnpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vandnpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vandnpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vandnpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vandnpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vandnpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vandnpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vandnpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vandnpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.33 vandnpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vandnpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vandnpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vandnpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vandnpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vandnpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vandpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vandpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vandpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.33 vandpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vandpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vandpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vandpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vandpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vandpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vandpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vandpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vandpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.33 vandpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vandpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vandpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vandpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vandpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vandpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vandps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vandps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vandps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.33 vandps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vandps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vandps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vandps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vandps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vandps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vandps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vandps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vandps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.33 vandps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vandps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vandps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vandps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vandps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vandps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vcvtqq2pd %xmm16, %xmm19 +# CHECK-NEXT: 2 10 0.50 * vcvtqq2pd (%rax), %xmm19 +# CHECK-NEXT: 2 10 0.50 * vcvtqq2pd (%rax){1to2}, %xmm19 +# CHECK-NEXT: 1 4 0.50 vcvtqq2pd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 10 0.50 * vcvtqq2pd (%rax), %xmm19 {%k1} +# CHECK-NEXT: 2 10 0.50 * vcvtqq2pd (%rax){1to2}, %xmm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vcvtqq2pd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 10 0.50 * vcvtqq2pd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 2 10 0.50 * vcvtqq2pd (%rax){1to2}, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vcvtqq2pd %ymm16, %ymm19 +# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax), %ymm19 +# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax){1to4}, %ymm19 +# CHECK-NEXT: 1 4 0.50 vcvtqq2pd %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax), %ymm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax){1to4}, %ymm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vcvtqq2pd %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvtqq2pd (%rax){1to4}, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vorpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vorpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vorpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.33 vorpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vorpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vorpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vorpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vorpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vorpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vorpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.33 vorpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vorpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vorpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vorpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vorps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vorps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vorps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.33 vorps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vorps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vorps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vorps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vorps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vorps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vorps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vorps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vorps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.33 vorps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vorps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vorps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vorps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vorps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 3 12 1.50 vpmullq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 4 18 1.00 * vpmullq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 3 12 1.50 vpmullq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 4 18 1.00 * vpmullq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 3 12 1.50 vpmullq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 4 18 1.00 * vpmullq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 12 1.50 vpmullq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 4 19 1.00 * vpmullq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 3 12 1.50 vpmullq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 4 19 1.00 * vpmullq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 3 12 1.50 vpmullq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 4 19 1.00 * vpmullq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vxorpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vxorpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vxorpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.33 vxorpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vxorpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vxorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vxorpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vxorpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vxorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vxorpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vxorpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vxorpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.33 vxorpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vxorpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vxorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vxorpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vxorpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vxorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vxorps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vxorps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vxorps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.33 vxorps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vxorps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vxorps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vxorps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vxorps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vxorps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vxorps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vxorps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vxorps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.33 vxorps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vxorps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vxorps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vxorps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} + +# CHECK: Resources: +# CHECK-NEXT: [0] - SKXDivider +# CHECK-NEXT: [1] - SKXFPDivider +# CHECK-NEXT: [2] - SKXPort0 +# CHECK-NEXT: [3] - SKXPort1 +# CHECK-NEXT: [4] - SKXPort2 +# CHECK-NEXT: [5] - SKXPort3 +# CHECK-NEXT: [6] - SKXPort4 +# CHECK-NEXT: [7] - SKXPort5 +# CHECK-NEXT: [8] - SKXPort6 +# CHECK-NEXT: [9] - SKXPort7 + +# CHECK: Resource pressure per iteration: +# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] +# CHECK-NEXT: - - 64.00 64.00 51.00 51.00 - 52.00 - - + +# CHECK: Resource pressure by instruction: +# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandnpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandnpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandnpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandnpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandnpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandnpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandnpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandnpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandnpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandnpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandnpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandnpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandnpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandnpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandnpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandnpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandnpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandnpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vandps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vandps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vcvtqq2pd %xmm16, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax), %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax){1to2}, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vcvtqq2pd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax){1to2}, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vcvtqq2pd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax){1to2}, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vcvtqq2pd %ymm16, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax), %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax){1to4}, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vcvtqq2pd %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax){1to4}, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vcvtqq2pd %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtqq2pd (%rax){1to4}, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vorpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vorpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vorpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vorpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vorpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vorpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vorps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vorps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vorps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vorps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vorps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vorps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.50 1.50 - - - - - - vpmullq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - 1.00 - - vpmullq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.50 1.50 - - - - - - vpmullq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - 1.00 - - vpmullq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.50 1.50 - - - - - - vpmullq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - 1.00 - - vpmullq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.50 1.50 - - - - - - vpmullq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - 1.00 - - vpmullq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.50 1.50 - - - - - - vpmullq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - 1.00 - - vpmullq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.50 1.50 - - - - - - vpmullq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - 1.00 - - vpmullq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vxorpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vxorpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vxorpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vxorpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vxorpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vxorpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vxorps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vxorps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vxorps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vxorps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vxorps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vxorps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s index 44b26d7..e96d501 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-avx512vl.s @@ -41,6 +41,46 @@ vaddps %ymm16, %ymm17, %ymm19 {z}{k1} vaddps (%rax), %ymm17, %ymm19 {z}{k1} vaddps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} +vcvtdq2pd %xmm16, %xmm19 +vcvtdq2pd (%rax), %xmm19 +vcvtdq2pd (%rax){1to2}, %xmm19 +vcvtdq2pd %xmm16, %xmm19 {k1} +vcvtdq2pd (%rax), %xmm19 {k1} +vcvtdq2pd (%rax){1to2}, %xmm19 {k1} +vcvtdq2pd %xmm16, %xmm19 {z}{k1} +vcvtdq2pd (%rax), %xmm19 {z}{k1} +vcvtdq2pd (%rax){1to2}, %xmm19 {z}{k1} + +vcvtdq2pd %xmm16, %ymm19 +vcvtdq2pd (%rax), %ymm19 +vcvtdq2pd (%rax){1to4}, %ymm19 +vcvtdq2pd %xmm16, %ymm19 {k1} +vcvtdq2pd (%rax), %ymm19 {k1} +vcvtdq2pd (%rax){1to4}, %ymm19 {k1} +vcvtdq2pd %xmm16, %ymm19 {z}{k1} +vcvtdq2pd (%rax), %ymm19 {z}{k1} +vcvtdq2pd (%rax){1to4}, %ymm19 {z}{k1} + +vcvtdq2ps %xmm16, %xmm19 +vcvtdq2ps (%rax), %xmm19 +vcvtdq2ps (%rax){1to4}, %xmm19 +vcvtdq2ps %xmm16, %xmm19 {k1} +vcvtdq2ps (%rax), %xmm19 {k1} +vcvtdq2ps (%rax){1to4},%xmm19 {k1} +vcvtdq2ps %xmm16, %xmm19 {z}{k1} +vcvtdq2ps (%rax), %xmm19 {z}{k1} +vcvtdq2ps (%rax){1to4}, %xmm19 {z}{k1} + +vcvtdq2ps %ymm16, %ymm19 +vcvtdq2ps (%rax), %ymm19 +vcvtdq2ps (%rax){1to8}, %ymm19 +vcvtdq2ps %ymm16,%ymm19 {k1} +vcvtdq2ps (%rax),%ymm19 {k1} +vcvtdq2ps (%rax){1to8}, %ymm19 {k1} +vcvtdq2ps %ymm16, %ymm19 {z}{k1} +vcvtdq2ps (%rax), %ymm19 {z}{k1} +vcvtdq2ps (%rax){1to8}, %ymm19 {z}{k1} + vdivpd %xmm16, %xmm17, %xmm19 vdivpd (%rax), %xmm17, %xmm19 vdivpd (%rax){1to2}, %xmm17, %xmm19 @@ -81,6 +121,86 @@ vdivps %ymm16, %ymm17, %ymm19 {z}{k1} vdivps (%rax), %ymm17, %ymm19 {z}{k1} vdivps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} +vmaxpd %xmm16, %xmm17, %xmm19 +vmaxpd (%rax), %xmm17, %xmm19 +vmaxpd (%rax){1to2}, %xmm17, %xmm19 +vmaxpd %xmm16, %xmm17, %xmm19 {k1} +vmaxpd (%rax), %xmm17, %xmm19 {k1} +vmaxpd (%rax){1to2}, %xmm17, %xmm19 {k1} +vmaxpd %xmm16, %xmm17, %xmm19 {z}{k1} +vmaxpd (%rax), %xmm17, %xmm19 {z}{k1} +vmaxpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vmaxpd %ymm16, %ymm17, %ymm19 +vmaxpd (%rax), %ymm17, %ymm19 +vmaxpd (%rax){1to4}, %ymm17, %ymm19 +vmaxpd %ymm16, %ymm17, %ymm19 {k1} +vmaxpd (%rax), %ymm17, %ymm19 {k1} +vmaxpd (%rax){1to4}, %ymm17, %ymm19 {k1} +vmaxpd %ymm16, %ymm17, %ymm19 {z}{k1} +vmaxpd (%rax), %ymm17, %ymm19 {z}{k1} +vmaxpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + +vmaxps %xmm16, %xmm17, %xmm19 +vmaxps (%rax), %xmm17, %xmm19 +vmaxps (%rax){1to4}, %xmm17, %xmm19 +vmaxps %xmm16, %xmm17, %xmm19 {k1} +vmaxps (%rax), %xmm17, %xmm19 {k1} +vmaxps (%rax){1to4}, %xmm17, %xmm19 {k1} +vmaxps %xmm16, %xmm17, %xmm19 {z}{k1} +vmaxps (%rax), %xmm17, %xmm19 {z}{k1} +vmaxps (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vmaxps %ymm16, %ymm17, %ymm19 +vmaxps (%rax), %ymm17, %ymm19 +vmaxps (%rax){1to8}, %ymm17, %ymm19 +vmaxps %ymm16, %ymm17, %ymm19 {k1} +vmaxps (%rax), %ymm17, %ymm19 {k1} +vmaxps (%rax){1to8}, %ymm17, %ymm19 {k1} +vmaxps %ymm16, %ymm17, %ymm19 {z}{k1} +vmaxps (%rax), %ymm17, %ymm19 {z}{k1} +vmaxps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + +vminpd %xmm16, %xmm17, %xmm19 +vminpd (%rax), %xmm17, %xmm19 +vminpd (%rax){1to2}, %xmm17, %xmm19 +vminpd %xmm16, %xmm17, %xmm19 {k1} +vminpd (%rax), %xmm17, %xmm19 {k1} +vminpd (%rax){1to2}, %xmm17, %xmm19 {k1} +vminpd %xmm16, %xmm17, %xmm19 {z}{k1} +vminpd (%rax), %xmm17, %xmm19 {z}{k1} +vminpd (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vminpd %ymm16, %ymm17, %ymm19 +vminpd (%rax), %ymm17, %ymm19 +vminpd (%rax){1to4}, %ymm17, %ymm19 +vminpd %ymm16, %ymm17, %ymm19 {k1} +vminpd (%rax), %ymm17, %ymm19 {k1} +vminpd (%rax){1to4}, %ymm17, %ymm19 {k1} +vminpd %ymm16, %ymm17, %ymm19 {z}{k1} +vminpd (%rax), %ymm17, %ymm19 {z}{k1} +vminpd (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + +vminps %xmm16, %xmm17, %xmm19 +vminps (%rax), %xmm17, %xmm19 +vminps (%rax){1to4}, %xmm17, %xmm19 +vminps %xmm16, %xmm17, %xmm19 {k1} +vminps (%rax), %xmm17, %xmm19 {k1} +vminps (%rax){1to4}, %xmm17, %xmm19 {k1} +vminps %xmm16, %xmm17, %xmm19 {z}{k1} +vminps (%rax), %xmm17, %xmm19 {z}{k1} +vminps (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vminps %ymm16, %ymm17, %ymm19 +vminps (%rax), %ymm17, %ymm19 +vminps (%rax){1to8}, %ymm17, %ymm19 +vminps %ymm16, %ymm17, %ymm19 {k1} +vminps (%rax), %ymm17, %ymm19 {k1} +vminps (%rax){1to8}, %ymm17, %ymm19 {k1} +vminps %ymm16, %ymm17, %ymm19 {z}{k1} +vminps (%rax), %ymm17, %ymm19 {z}{k1} +vminps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + vmulpd %xmm16, %xmm17, %xmm19 vmulpd (%rax), %xmm17, %xmm19 vmulpd (%rax){1to2}, %xmm17, %xmm19 @@ -121,6 +241,46 @@ vmulps %ymm16, %ymm17, %ymm19 {z}{k1} vmulps (%rax), %ymm17, %ymm19 {z}{k1} vmulps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} +vpaddd %xmm16, %xmm17, %xmm19 +vpaddd (%rax), %xmm17, %xmm19 +vpaddd (%rax){1to4}, %xmm17, %xmm19 +vpaddd %xmm16, %xmm17, %xmm19 {k1} +vpaddd (%rax), %xmm17, %xmm19 {k1} +vpaddd (%rax){1to4}, %xmm17, %xmm19 {k1} +vpaddd %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddd (%rax), %xmm17, %xmm19 {z}{k1} +vpaddd (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vpaddd %ymm16, %ymm17, %ymm19 +vpaddd (%rax), %ymm17, %ymm19 +vpaddd (%rax){1to8}, %ymm17, %ymm19 +vpaddd %ymm16, %ymm17, %ymm19 {k1} +vpaddd (%rax), %ymm17, %ymm19 {k1} +vpaddd (%rax){1to8}, %ymm17, %ymm19 {k1} +vpaddd %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddd (%rax), %ymm17, %ymm19 {z}{k1} +vpaddd (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + +vpaddq %xmm16, %xmm17, %xmm19 +vpaddq (%rax), %xmm17, %xmm19 +vpaddq (%rax){1to2}, %xmm17, %xmm19 +vpaddq %xmm16, %xmm17, %xmm19 {k1} +vpaddq (%rax), %xmm17, %xmm19 {k1} +vpaddq (%rax){1to2}, %xmm17, %xmm19 {k1} +vpaddq %xmm16, %xmm17, %xmm19 {z}{k1} +vpaddq (%rax), %xmm17, %xmm19 {z}{k1} +vpaddq (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vpaddq %ymm16, %ymm17, %ymm19 +vpaddq (%rax), %ymm17, %ymm19 +vpaddq (%rax){1to4}, %ymm17, %ymm19 +vpaddq %ymm16, %ymm17, %ymm19 {k1} +vpaddq (%rax), %ymm17, %ymm19 {k1} +vpaddq (%rax){1to4}, %ymm17, %ymm19 {k1} +vpaddq %ymm16, %ymm17, %ymm19 {z}{k1} +vpaddq (%rax), %ymm17, %ymm19 {z}{k1} +vpaddq (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + vpermd %ymm16, %ymm17, %ymm19 vpermd (%rax), %ymm17, %ymm19 vpermd (%rax){1to8}, %ymm17, %ymm19 @@ -261,6 +421,26 @@ vpermq %ymm16, %ymm17, %ymm19 {z}{k1} vpermq (%rax), %ymm17, %ymm19 {z}{k1} vpermq (%rax){1to4}, %ymm17, %ymm19 {z}{k1} +vpmulld %xmm16, %xmm17, %xmm19 +vpmulld (%rax), %xmm17, %xmm19 +vpmulld (%rax){1to4}, %xmm17, %xmm19 +vpmulld %xmm16, %xmm17, %xmm19 {k1} +vpmulld (%rax), %xmm17, %xmm19 {k1} +vpmulld (%rax){1to4}, %xmm17, %xmm19 {k1} +vpmulld %xmm16, %xmm17, %xmm19 {z}{k1} +vpmulld (%rax), %xmm17, %xmm19 {z}{k1} +vpmulld (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vpmulld %ymm16, %ymm17, %ymm19 +vpmulld (%rax), %ymm17, %ymm19 +vpmulld (%rax){1to8}, %ymm17, %ymm19 +vpmulld %ymm16, %ymm17, %ymm19 {k1} +vpmulld (%rax), %ymm17, %ymm19 {k1} +vpmulld (%rax){1to8}, %ymm17, %ymm19 {k1} +vpmulld %ymm16, %ymm17, %ymm19 {z}{k1} +vpmulld (%rax), %ymm17, %ymm19 {z}{k1} +vpmulld (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + vpshufd $0, %xmm16, %xmm19 vpshufd $0, (%rax), %xmm19 vpshufd $0, (%rax){1to4}, %xmm19 @@ -281,6 +461,46 @@ vpshufd $0, %ymm16, %ymm19 {z}{k1} vpshufd $0, (%rax), %ymm19 {z}{k1} vpshufd $0, (%rax){1to8}, %ymm19 {z}{k1} +vpsubd %xmm16, %xmm17, %xmm19 +vpsubd (%rax), %xmm17, %xmm19 +vpsubd (%rax){1to4}, %xmm17, %xmm19 +vpsubd %xmm16, %xmm17, %xmm19 {k1} +vpsubd (%rax), %xmm17, %xmm19 {k1} +vpsubd (%rax){1to4}, %xmm17, %xmm19 {k1} +vpsubd %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubd (%rax), %xmm17, %xmm19 {z}{k1} +vpsubd (%rax){1to4}, %xmm17, %xmm19 {z}{k1} + +vpsubd %ymm16, %ymm17, %ymm19 +vpsubd (%rax), %ymm17, %ymm19 +vpsubd (%rax){1to8}, %ymm17, %ymm19 +vpsubd %ymm16, %ymm17, %ymm19 {k1} +vpsubd (%rax), %ymm17, %ymm19 {k1} +vpsubd (%rax){1to8}, %ymm17, %ymm19 {k1} +vpsubd %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubd (%rax), %ymm17, %ymm19 {z}{k1} +vpsubd (%rax){1to8}, %ymm17, %ymm19 {z}{k1} + +vpsubq %xmm16, %xmm17, %xmm19 +vpsubq (%rax), %xmm17, %xmm19 +vpsubq (%rax){1to2}, %xmm17, %xmm19 +vpsubq %xmm16, %xmm17, %xmm19 {k1} +vpsubq (%rax), %xmm17, %xmm19 {k1} +vpsubq (%rax){1to2}, %xmm17, %xmm19 {k1} +vpsubq %xmm16, %xmm17, %xmm19 {z}{k1} +vpsubq (%rax), %xmm17, %xmm19 {z}{k1} +vpsubq (%rax){1to2}, %xmm17, %xmm19 {z}{k1} + +vpsubq %ymm16, %ymm17, %ymm19 +vpsubq (%rax), %ymm17, %ymm19 +vpsubq (%rax){1to4}, %ymm17, %ymm19 +vpsubq %ymm16, %ymm17, %ymm19 {k1} +vpsubq (%rax), %ymm17, %ymm19 {k1} +vpsubq (%rax){1to4}, %ymm17, %ymm19 {k1} +vpsubq %ymm16, %ymm17, %ymm19 {z}{k1} +vpsubq (%rax), %ymm17, %ymm19 {z}{k1} +vpsubq (%rax){1to4}, %ymm17, %ymm19 {z}{k1} + vpunpckhdq %xmm16, %xmm17, %xmm19 vpunpckhdq (%rax), %xmm17, %xmm19 vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 @@ -361,6 +581,46 @@ vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {z}{k1} vshufi64x2 $0, (%rax), %ymm17, %ymm19 {z}{k1} vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {z}{k1} +vsqrtpd %xmm16, %xmm19 +vsqrtpd (%rax), %xmm19 +vsqrtpd (%rax){1to2}, %xmm19 +vsqrtpd %xmm16, %xmm19 {k1} +vsqrtpd (%rax), %xmm19 {k1} +vsqrtpd (%rax){1to2}, %xmm19 {k1} +vsqrtpd %xmm16, %xmm19 {z}{k1} +vsqrtpd (%rax), %xmm19 {z}{k1} +vsqrtpd (%rax){1to2}, %xmm19 {z}{k1} + +vsqrtpd %ymm16, %ymm19 +vsqrtpd (%rax), %ymm19 +vsqrtpd (%rax){1to4}, %ymm19 +vsqrtpd %ymm16, %ymm19 {k1} +vsqrtpd (%rax), %ymm19 {k1} +vsqrtpd (%rax){1to4}, %ymm19 {k1} +vsqrtpd %ymm16, %ymm19 {z}{k1} +vsqrtpd (%rax), %ymm19 {z}{k1} +vsqrtpd (%rax){1to4}, %ymm19 {z}{k1} + +vsqrtps %xmm16, %xmm19 +vsqrtps (%rax), %xmm19 +vsqrtps (%rax){1to4}, %xmm19 +vsqrtps %xmm16, %xmm19 {k1} +vsqrtps (%rax), %xmm19 {k1} +vsqrtps (%rax){1to4}, %xmm19 {k1} +vsqrtps %xmm16, %xmm19 {z}{k1} +vsqrtps (%rax), %xmm19 {z}{k1} +vsqrtps (%rax){1to4}, %xmm19 {z}{k1} + +vsqrtps %ymm16, %ymm19 +vsqrtps (%rax), %ymm19 +vsqrtps (%rax){1to8}, %ymm19 +vsqrtps %ymm16, %ymm19 {k1} +vsqrtps (%rax), %ymm19 {k1} +vsqrtps (%rax){1to8}, %ymm19 {k1} +vsqrtps %ymm16, %ymm19 {z}{k1} +vsqrtps (%rax), %ymm19 {z}{k1} +vsqrtps (%rax){1to8}, %ymm19 {z}{k1} + vsubpd %xmm16, %xmm17, %xmm19 vsubpd (%rax), %xmm17, %xmm19 vsubpd (%rax){1to2}, %xmm17, %xmm19 @@ -526,6 +786,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: 1 4 0.50 vaddps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 11 0.50 * vaddps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 11 0.50 * vaddps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 5 1.00 vcvtdq2pd %xmm16, %xmm19 +# CHECK-NEXT: 2 10 0.50 * vcvtdq2pd (%rax), %xmm19 +# CHECK-NEXT: 2 10 0.50 * vcvtdq2pd (%rax){1to2}, %xmm19 +# CHECK-NEXT: 2 5 1.00 vcvtdq2pd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 10 0.50 * vcvtdq2pd (%rax), %xmm19 {%k1} +# CHECK-NEXT: 2 10 0.50 * vcvtdq2pd (%rax){1to2}, %xmm19 {%k1} +# CHECK-NEXT: 2 5 1.00 vcvtdq2pd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 10 0.50 * vcvtdq2pd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 2 10 0.50 * vcvtdq2pd (%rax){1to2}, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 1.00 vcvtdq2pd %xmm16, %ymm19 +# CHECK-NEXT: 2 11 0.50 * vcvtdq2pd (%rax), %ymm19 +# CHECK-NEXT: 2 11 0.50 * vcvtdq2pd (%rax){1to4}, %ymm19 +# CHECK-NEXT: 2 7 1.00 vcvtdq2pd %xmm16, %ymm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2pd (%rax), %ymm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2pd (%rax){1to4}, %ymm19 {%k1} +# CHECK-NEXT: 2 7 1.00 vcvtdq2pd %xmm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2pd (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2pd (%rax){1to4}, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vcvtdq2ps %xmm16, %xmm19 +# CHECK-NEXT: 2 10 0.50 * vcvtdq2ps (%rax), %xmm19 +# CHECK-NEXT: 2 10 0.50 * vcvtdq2ps (%rax){1to4}, %xmm19 +# CHECK-NEXT: 1 4 0.50 vcvtdq2ps %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 10 0.50 * vcvtdq2ps (%rax), %xmm19 {%k1} +# CHECK-NEXT: 2 10 0.50 * vcvtdq2ps (%rax){1to4}, %xmm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vcvtdq2ps %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 10 0.50 * vcvtdq2ps (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 2 10 0.50 * vcvtdq2ps (%rax){1to4}, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vcvtdq2ps %ymm16, %ymm19 +# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax), %ymm19 +# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax){1to8}, %ymm19 +# CHECK-NEXT: 1 4 0.50 vcvtdq2ps %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax), %ymm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax){1to8}, %ymm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vcvtdq2ps %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vcvtdq2ps (%rax){1to8}, %ymm19 {%k1} {z} # CHECK-NEXT: 1 14 3.00 vdivpd %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 20 4.00 * vdivpd (%rax), %xmm17, %xmm19 # CHECK-NEXT: 2 20 4.00 * vdivpd (%rax){1to2}, %xmm17, %xmm19 @@ -562,6 +858,78 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: 1 11 5.00 vdivps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 18 5.00 * vdivps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 18 5.00 * vdivps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vmaxpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 10 0.50 * vmaxpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 10 0.50 * vmaxpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 4 0.50 vmaxpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 10 0.50 * vmaxpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 10 0.50 * vmaxpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vmaxpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 10 0.50 * vmaxpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 10 0.50 * vmaxpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vmaxpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 11 0.50 * vmaxpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 11 0.50 * vmaxpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 4 0.50 vmaxpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vmaxpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vmaxpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vmaxpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vmaxpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vmaxpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vmaxps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 10 0.50 * vmaxps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 10 0.50 * vmaxps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 4 0.50 vmaxps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 10 0.50 * vmaxps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 10 0.50 * vmaxps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vmaxps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 10 0.50 * vmaxps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 10 0.50 * vmaxps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vmaxps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 11 0.50 * vmaxps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 11 0.50 * vmaxps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 4 0.50 vmaxps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vmaxps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vmaxps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vmaxps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vmaxps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vmaxps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vminpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 10 0.50 * vminpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 10 0.50 * vminpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 4 0.50 vminpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 10 0.50 * vminpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 10 0.50 * vminpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vminpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 10 0.50 * vminpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 10 0.50 * vminpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vminpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 11 0.50 * vminpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 11 0.50 * vminpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 4 0.50 vminpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vminpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vminpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vminpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vminpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vminpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vminps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 10 0.50 * vminps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 10 0.50 * vminps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 4 0.50 vminps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 10 0.50 * vminps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 10 0.50 * vminps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vminps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 10 0.50 * vminps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 10 0.50 * vminps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 4 0.50 vminps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 11 0.50 * vminps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 11 0.50 * vminps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 4 0.50 vminps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vminps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 11 0.50 * vminps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 4 0.50 vminps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vminps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 11 0.50 * vminps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 4 0.50 vmulpd %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 10 0.50 * vmulpd (%rax), %xmm17, %xmm19 # CHECK-NEXT: 2 10 0.50 * vmulpd (%rax){1to2}, %xmm17, %xmm19 @@ -598,6 +966,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: 1 4 0.50 vmulps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 11 0.50 * vmulps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 11 0.50 * vmulps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpaddd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddd (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.33 vpaddd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddd (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpaddd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddd (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpaddd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddd (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.33 vpaddd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddd (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpaddd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddd (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpaddq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpaddq (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.33 vpaddq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpaddq (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpaddq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpaddq (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpaddq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.33 vpaddq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpaddq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpaddq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 3 1.00 vpermd %ymm16, %ymm17, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpermd (%rax), %ymm17, %ymm19 # CHECK-NEXT: 2 10 1.00 * vpermd (%rax){1to8}, %ymm17, %ymm19 @@ -724,6 +1128,24 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: 1 3 1.00 vpermq %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpermq (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vpermq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 vpmulld %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 3 16 1.00 * vpmulld (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 3 16 1.00 * vpmulld (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 2 10 1.00 vpmulld %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 3 16 1.00 * vpmulld (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 3 16 1.00 * vpmulld (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 10 1.00 vpmulld %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 16 1.00 * vpmulld (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 3 16 1.00 * vpmulld (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 10 1.00 vpmulld %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 2 10 1.00 vpmulld %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 10 1.00 vpmulld %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 3 17 1.00 * vpmulld (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpshufd $0, %xmm16, %xmm19 # CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax), %xmm19 # CHECK-NEXT: 2 7 1.00 * vpshufd $0, (%rax){1to4}, %xmm19 @@ -742,6 +1164,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: 1 1 1.00 vpshufd $0, %ymm16, %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax), %ymm19 {%k1} {z} # CHECK-NEXT: 2 8 1.00 * vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpsubd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubd (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.33 vpsubd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubd (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpsubd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubd (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpsubd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.33 vpsubd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpsubd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubd (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpsubq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: 2 7 0.50 * vpsubq (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: 1 1 0.33 vpsubq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 2 7 0.50 * vpsubq (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpsubq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 7 0.50 * vpsubq (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 1 0.33 vpsubq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: 1 1 0.33 vpsubq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: 1 1 0.33 vpsubq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 8 0.50 * vpsubq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 1 1 1.00 vpunpckhdq %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax), %xmm17, %xmm19 # CHECK-NEXT: 2 7 1.00 * vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 @@ -814,6 +1272,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: 1 3 1.00 vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: 2 10 1.00 * vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 18 6.00 vsqrtpd %xmm16, %xmm19 +# CHECK-NEXT: 2 24 6.00 * vsqrtpd (%rax), %xmm19 +# CHECK-NEXT: 2 24 6.00 * vsqrtpd (%rax){1to2}, %xmm19 +# CHECK-NEXT: 1 18 6.00 vsqrtpd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 24 6.00 * vsqrtpd (%rax), %xmm19 {%k1} +# CHECK-NEXT: 2 24 6.00 * vsqrtpd (%rax){1to2}, %xmm19 {%k1} +# CHECK-NEXT: 1 18 6.00 vsqrtpd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 24 6.00 * vsqrtpd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 2 24 6.00 * vsqrtpd (%rax){1to2}, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 18 12.00 vsqrtpd %ymm16, %ymm19 +# CHECK-NEXT: 2 25 12.00 * vsqrtpd (%rax), %ymm19 +# CHECK-NEXT: 2 25 12.00 * vsqrtpd (%rax){1to4}, %ymm19 +# CHECK-NEXT: 1 18 12.00 vsqrtpd %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 25 12.00 * vsqrtpd (%rax), %ymm19 {%k1} +# CHECK-NEXT: 2 25 12.00 * vsqrtpd (%rax){1to4}, %ymm19 {%k1} +# CHECK-NEXT: 1 18 12.00 vsqrtpd %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 25 12.00 * vsqrtpd (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 25 12.00 * vsqrtpd (%rax){1to4}, %ymm19 {%k1} {z} +# CHECK-NEXT: 1 12 3.00 vsqrtps %xmm16, %xmm19 +# CHECK-NEXT: 2 18 3.00 * vsqrtps (%rax), %xmm19 +# CHECK-NEXT: 2 18 3.00 * vsqrtps (%rax){1to4}, %xmm19 +# CHECK-NEXT: 1 12 3.00 vsqrtps %xmm16, %xmm19 {%k1} +# CHECK-NEXT: 2 18 3.00 * vsqrtps (%rax), %xmm19 {%k1} +# CHECK-NEXT: 2 18 3.00 * vsqrtps (%rax){1to4}, %xmm19 {%k1} +# CHECK-NEXT: 1 12 3.00 vsqrtps %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: 2 18 3.00 * vsqrtps (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: 2 18 3.00 * vsqrtps (%rax){1to4}, %xmm19 {%k1} {z} +# CHECK-NEXT: 1 12 6.00 vsqrtps %ymm16, %ymm19 +# CHECK-NEXT: 2 19 6.00 * vsqrtps (%rax), %ymm19 +# CHECK-NEXT: 2 19 6.00 * vsqrtps (%rax){1to8}, %ymm19 +# CHECK-NEXT: 1 12 6.00 vsqrtps %ymm16, %ymm19 {%k1} +# CHECK-NEXT: 2 19 6.00 * vsqrtps (%rax), %ymm19 {%k1} +# CHECK-NEXT: 2 19 6.00 * vsqrtps (%rax){1to8}, %ymm19 {%k1} +# CHECK-NEXT: 1 12 6.00 vsqrtps %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: 2 19 6.00 * vsqrtps (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: 2 19 6.00 * vsqrtps (%rax){1to8}, %ymm19 {%k1} {z} # CHECK-NEXT: 1 4 0.50 vsubpd %xmm16, %xmm17, %xmm19 # CHECK-NEXT: 2 10 0.50 * vsubpd (%rax), %xmm17, %xmm19 # CHECK-NEXT: 2 10 0.50 * vsubpd (%rax){1to2}, %xmm17, %xmm19 @@ -937,7 +1431,7 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - 180.00 90.00 54.00 144.00 144.00 - 288.00 - - +# CHECK-NEXT: - 423.00 217.00 145.00 222.00 222.00 - 328.00 - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -977,6 +1471,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: - - 0.50 0.50 - - - - - - vaddps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vaddps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vaddps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - vcvtdq2pd %xmm16, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax), %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax){1to2}, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - vcvtdq2pd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax){1to2}, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - vcvtdq2pd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax){1to2}, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - vcvtdq2pd %xmm16, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax), %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax){1to4}, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - vcvtdq2pd %xmm16, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax){1to4}, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - vcvtdq2pd %xmm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2pd (%rax){1to4}, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vcvtdq2ps %xmm16, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax), %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax){1to4}, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vcvtdq2ps %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax), %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax){1to4}, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vcvtdq2ps %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax){1to4}, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vcvtdq2ps %ymm16, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax), %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax){1to8}, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vcvtdq2ps %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax), %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax){1to8}, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vcvtdq2ps %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vcvtdq2ps (%rax){1to8}, %ymm19 {%k1} {z} # CHECK-NEXT: - 3.00 1.00 - - - - - - - vdivpd %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax), %xmm17, %xmm19 # CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - vdivpd (%rax){1to2}, %xmm17, %xmm19 @@ -1013,6 +1543,78 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: - 5.00 1.00 - - - - - - - vdivps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - vdivps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - 5.00 1.00 - 0.50 0.50 - - - - vdivps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vmaxpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vmaxpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vmaxpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vmaxpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vmaxpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vmaxpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vmaxps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vmaxps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vmaxps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vmaxps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vmaxps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vmaxps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmaxps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vminpd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminpd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminpd (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vminpd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminpd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminpd (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vminpd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminpd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminpd (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vminpd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminpd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminpd (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vminpd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminpd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminpd (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vminpd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminpd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminpd (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vminps %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminps (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminps (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vminps %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminps (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminps (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vminps %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminps (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vminps %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminps (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminps (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vminps %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminps (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminps (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.50 0.50 - - - - - - vminps %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminps (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vminps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.50 0.50 - - - - - - vmulpd %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmulpd (%rax), %xmm17, %xmm19 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmulpd (%rax){1to2}, %xmm17, %xmm19 @@ -1049,6 +1651,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: - - 0.50 0.50 - - - - - - vmulps %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmulps (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vmulps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddd (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddd (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddd (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddd (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddd (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddd (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpaddq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpaddq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - vpermd %ymm16, %ymm17, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %ymm17, %ymm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax){1to8}, %ymm17, %ymm19 @@ -1175,6 +1813,24 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpermq %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 1.00 - - - - - - vpmulld %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vpmulld (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vpmulld (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - 1.00 1.00 - - - - - - vpmulld %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vpmulld (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vpmulld (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 1.00 1.00 - - - - - - vpmulld %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vpmulld (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vpmulld (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 1.00 - - - - - - vpmulld %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vpmulld (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vpmulld (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - 1.00 1.00 - - - - - - vpmulld %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vpmulld (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vpmulld (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 1.00 1.00 - - - - - - vpmulld %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vpmulld (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - vpmulld (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - vpshufd $0, %xmm16, %xmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax), %xmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax){1to4}, %xmm19 @@ -1193,6 +1849,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: - - - - - - - 1.00 - - vpshufd $0, %ymm16, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax), %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpshufd $0, (%rax){1to8}, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubd %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax){1to4}, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubd %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax){1to4}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubd %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax){1to4}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubd %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax){1to8}, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubd %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax){1to8}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubd %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubd (%rax){1to8}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubq %xmm16, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax), %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax){1to2}, %xmm17, %xmm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubq %xmm16, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax), %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax){1to2}, %xmm17, %xmm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubq %xmm16, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax), %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax){1to2}, %xmm17, %xmm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubq %ymm16, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax), %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax){1to4}, %ymm17, %ymm19 +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubq %ymm16, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax), %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax){1to4}, %ymm17, %ymm19 {%k1} +# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vpsubq %ymm16, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax), %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vpsubq (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - - - - 1.00 - - vpunpckhdq %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax), %xmm17, %xmm19 # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpckhdq (%rax){1to4}, %xmm17, %xmm19 @@ -1265,6 +1957,42 @@ vunpcklps (%rax){1to8}, %ymm17, %ymm19 {z}{k1} # CHECK-NEXT: - - - - - - - 1.00 - - vshufi64x2 $0, %ymm16, %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax), %ymm17, %ymm19 {%k1} {z} # CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vshufi64x2 $0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z} +# CHECK-NEXT: - 6.00 1.00 - - - - - - - vsqrtpd %xmm16, %xmm19 +# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - vsqrtpd (%rax), %xmm19 +# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - vsqrtpd (%rax){1to2}, %xmm19 +# CHECK-NEXT: - 6.00 1.00 - - - - - - - vsqrtpd %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - vsqrtpd (%rax), %xmm19 {%k1} +# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - vsqrtpd (%rax){1to2}, %xmm19 {%k1} +# CHECK-NEXT: - 6.00 1.00 - - - - - - - vsqrtpd %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - vsqrtpd (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - vsqrtpd (%rax){1to2}, %xmm19 {%k1} {z} +# CHECK-NEXT: - 12.00 1.00 - - - - - - - vsqrtpd %ymm16, %ymm19 +# CHECK-NEXT: - 12.00 1.00 - 0.50 0.50 - - - - vsqrtpd (%rax), %ymm19 +# CHECK-NEXT: - 12.00 1.00 - 0.50 0.50 - - - - vsqrtpd (%rax){1to4}, %ymm19 +# CHECK-NEXT: - 12.00 1.00 - - - - - - - vsqrtpd %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - 12.00 1.00 - 0.50 0.50 - - - - vsqrtpd (%rax), %ymm19 {%k1} +# CHECK-NEXT: - 12.00 1.00 - 0.50 0.50 - - - - vsqrtpd (%rax){1to4}, %ymm19 {%k1} +# CHECK-NEXT: - 12.00 1.00 - - - - - - - vsqrtpd %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - 12.00 1.00 - 0.50 0.50 - - - - vsqrtpd (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - 12.00 1.00 - 0.50 0.50 - - - - vsqrtpd (%rax){1to4}, %ymm19 {%k1} {z} +# CHECK-NEXT: - 3.00 1.00 - - - - - - - vsqrtps %xmm16, %xmm19 +# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vsqrtps (%rax), %xmm19 +# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vsqrtps (%rax){1to4}, %xmm19 +# CHECK-NEXT: - 3.00 1.00 - - - - - - - vsqrtps %xmm16, %xmm19 {%k1} +# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vsqrtps (%rax), %xmm19 {%k1} +# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vsqrtps (%rax){1to4}, %xmm19 {%k1} +# CHECK-NEXT: - 3.00 1.00 - - - - - - - vsqrtps %xmm16, %xmm19 {%k1} {z} +# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vsqrtps (%rax), %xmm19 {%k1} {z} +# CHECK-NEXT: - 3.00 1.00 - 0.50 0.50 - - - - vsqrtps (%rax){1to4}, %xmm19 {%k1} {z} +# CHECK-NEXT: - 6.00 1.00 - - - - - - - vsqrtps %ymm16, %ymm19 +# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - vsqrtps (%rax), %ymm19 +# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - vsqrtps (%rax){1to8}, %ymm19 +# CHECK-NEXT: - 6.00 1.00 - - - - - - - vsqrtps %ymm16, %ymm19 {%k1} +# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - vsqrtps (%rax), %ymm19 {%k1} +# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - vsqrtps (%rax){1to8}, %ymm19 {%k1} +# CHECK-NEXT: - 6.00 1.00 - - - - - - - vsqrtps %ymm16, %ymm19 {%k1} {z} +# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - vsqrtps (%rax), %ymm19 {%k1} {z} +# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - vsqrtps (%rax){1to8}, %ymm19 {%k1} {z} # CHECK-NEXT: - - 0.50 0.50 - - - - - - vsubpd %xmm16, %xmm17, %xmm19 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vsubpd (%rax), %xmm17, %xmm19 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vsubpd (%rax){1to2}, %xmm17, %xmm19