From e5b51f6786f9846e8eab233df1bfa30c071297e1 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Thu, 22 Mar 2018 17:25:38 +0000 Subject: [PATCH] [X86][Btver2] FMUL ymm instructions are double pumped on the JFPM functional pipe llvm-svn: 328217 --- llvm/lib/Target/X86/X86ScheduleBtVer2.td | 24 +- .../tools/llvm-mca/X86/BtVer2/resources-avx1.s | 496 ++++++++++----------- .../tools/llvm-mca/X86/BtVer2/resources-sse2.s | 14 +- 3 files changed, 267 insertions(+), 267 deletions(-) diff --git a/llvm/lib/Target/X86/X86ScheduleBtVer2.td b/llvm/lib/Target/X86/X86ScheduleBtVer2.td index c092e60..462c2f0 100644 --- a/llvm/lib/Target/X86/X86ScheduleBtVer2.td +++ b/llvm/lib/Target/X86/X86ScheduleBtVer2.td @@ -557,39 +557,39 @@ def JWriteFDivYLd: SchedWriteRes<[JLAGU, JFPU1, JFPM]> { } def : InstRW<[JWriteFDivYLd, ReadAfterLd], (instrs VDIVPDYrm, VDIVPSYrm)>; -def JWriteVMULYPD: SchedWriteRes<[JFPU1]> { +def JWriteVMULYPD: SchedWriteRes<[JFPU1, JFPM]> { let Latency = 4; - let ResourceCycles = [4]; + let ResourceCycles = [1, 4]; } def : InstRW<[JWriteVMULYPD], (instrs VMULPDYrr)>; -def JWriteVMULYPDLd: SchedWriteRes<[JLAGU, JFPU1]> { +def JWriteVMULYPDLd: SchedWriteRes<[JLAGU, JFPU1, JFPM]> { let Latency = 9; - let ResourceCycles = [1, 4]; + let ResourceCycles = [1, 1, 4]; } def : InstRW<[JWriteVMULYPDLd, ReadAfterLd], (instrs VMULPDYrm)>; -def JWriteVMULYPS: SchedWriteRes<[JFPU1]> { +def JWriteVMULYPS: SchedWriteRes<[JFPU1, JFPM]> { let Latency = 2; - let ResourceCycles = [2]; + let ResourceCycles = [1, 2]; } def : InstRW<[JWriteVMULYPS], (instrs VMULPSYrr, VRCPPSYr, VRSQRTPSYr)>; -def JWriteVMULYPSLd: SchedWriteRes<[JLAGU, JFPU1]> { +def JWriteVMULYPSLd: SchedWriteRes<[JLAGU, JFPU1, JFPM]> { let Latency = 7; - let ResourceCycles = [1, 2]; + let ResourceCycles = [1, 1, 2]; } def : InstRW<[JWriteVMULYPSLd, ReadAfterLd], (instrs VMULPSYrm, VRCPPSYm, VRSQRTPSYm)>; -def JWriteVMULPD: SchedWriteRes<[JFPU1]> { +def JWriteVMULPD: SchedWriteRes<[JFPU1, JFPM]> { let Latency = 4; - let ResourceCycles = [2]; + let ResourceCycles = [1, 2]; } def : InstRW<[JWriteVMULPD], (instrs MULPDrr, MULSDrr, VMULPDrr, VMULSDrr)>; -def JWriteVMULPDLd: SchedWriteRes<[JLAGU, JFPU1]> { +def JWriteVMULPDLd: SchedWriteRes<[JLAGU, JFPU1, JFPM]> { let Latency = 9; - let ResourceCycles = [1, 2]; + let ResourceCycles = [1, 1, 2]; } def : InstRW<[JWriteVMULPDLd], (instrs MULPDrm, MULSDrm, VMULPDrm, VMULSDrm)>; diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s index 71c3277..948f014 100644 --- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s +++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s @@ -1293,7 +1293,7 @@ vzeroupper # CHECK-NEXT: - - - - - - - - - 1.00 2.00 - - - vmovntpd %ymm0, (%rax) # CHECK-NEXT: - - - - - - - - - 1.00 1.00 - - - vmovntps %xmm0, (%rax) # CHECK-NEXT: - - - - - - - - - 1.00 2.00 - - - vmovntps %ymm0, (%rax) -# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vmovq %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vmovq %xmm0, %xmm2 # CHECK-NEXT: - 1.00 - - - - - - - - - - - - vmovq %rax, %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovq (%rax), %xmm2 # CHECK-NEXT: 1.00 - - - - - - - - - - - - - vmovq %xmm0, %rcx @@ -1326,189 +1326,189 @@ vzeroupper # CHECK-NEXT: - - - - - - - 1.00 - - - - - - vmovups (%rax), %ymm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - - 2.00 vmpsadbw $1, %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 2.00 vmpsadbw $1, (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vmulpd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vmulpd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 4.00 - - - - - - - vmulpd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - 4.00 1.00 - - - - - - vmulpd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - - 2.00 - 1.00 - - - - - - - vmulpd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - 2.00 - 1.00 1.00 - - - - - - vmulpd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - 4.00 - 1.00 - - - - - - - vmulpd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - - 4.00 - 1.00 1.00 - - - - - - vmulpd (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vmulps %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmulps (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vmulps %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vmulps (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vmulsd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vmulsd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - 2.00 - 1.00 - - - - - - - vmulps %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - - 2.00 - 1.00 1.00 - - - - - - vmulps (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - - 2.00 - 1.00 - - - - - - - vmulsd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - 2.00 - 1.00 1.00 - - - - - - vmulsd (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vmulss %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vmulss (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vorpd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - 1.00 1.00 - 1.00 - - - - - - vorpd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - - - - - - vorpd (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - 2.00 - 2.00 - - - - - - - - vorpd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - 2.00 2.00 - 1.00 - - - - - - vorpd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - 2.00 - 2.00 - 1.00 - - - - - - vorpd (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vorps %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vorps (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - 2.00 - 2.00 - - - - - - - - vorps %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - 2.00 2.00 - 1.00 - - - - - - vorps (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpabsb %xmm0, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpabsb (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpabsd %xmm0, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpabsd (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - vpabsw %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpabsw (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpackssdw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpackssdw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpacksswb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpacksswb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpackusdw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpackusdw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpackuswb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpackuswb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpaddb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpaddb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpaddd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpaddd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpaddq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpaddq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpaddsb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpaddsb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpaddsw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpaddsw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpaddusb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpaddusb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpaddusw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpaddusw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpaddw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpaddw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpalignr $1, %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpalignr $1, (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpand %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpand (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpandn %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpandn (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpavgb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpavgb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpavgw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpavgw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 4.00 - vpblendvb %xmm3, %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 4.00 - - vpblendvb %xmm3, (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpblendw $11, %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpblendw $11, (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - 2.00 - 2.00 - 1.00 - - - - - - vorps (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpabsb %xmm0, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpabsb (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpabsd %xmm0, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpabsd (%rax), %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpabsw %xmm0, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpabsw (%rax), %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpackssdw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpackssdw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpacksswb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpacksswb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpackusdw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpackusdw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpackuswb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpackuswb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddsb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddsb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddsw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddsw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddusb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddusb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddusw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddusw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpaddw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpaddw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpalignr $1, %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpalignr $1, (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpand %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpand (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpandn %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpandn (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpavgb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpavgb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpavgw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpavgw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 2.00 2.00 - vpblendvb %xmm3, %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 2.00 2.00 - vpblendvb %xmm3, (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpblendw $11, %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpblendw $11, (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vpclmulqdq $11, %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vpclmulqdq $11, (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpcmpeqb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpcmpeqb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpcmpeqd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpcmpeqd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpcmpeqq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpcmpeqq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpcmpeqw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpcmpeqw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpcmpgtb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpcmpgtb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpcmpgtd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpcmpgtd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpcmpgtq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpcmpgtq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpcmpgtw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpcmpgtw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - - - vperm2f128 $1, %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - 1.00 1.00 - 1.00 - - - - - - vperm2f128 $1, (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - - - vpermilpd $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - 1.00 1.00 - 1.00 - - - - - - vpermilpd $1, (%rax), %xmm2 -# CHECK-NEXT: - - - - - - 4.00 - - - - - - - vpermilpd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 4.00 - 1.00 - - - - - - vpermilpd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vpermilpd $1, %ymm0, %ymm2 -# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vpermilpd $1, (%rax), %ymm2 -# CHECK-NEXT: - - - - - - 6.00 - - - - - - - vpermilpd %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - - 6.00 - 1.00 - - - - - - vpermilpd (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - 1.00 - - 1.00 - - - - - - - vpermilps $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - 1.00 1.00 - 1.00 - - - - - - vpermilps $1, (%rax), %xmm2 -# CHECK-NEXT: - - - - - - 4.00 - - - - - - - vpermilps %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 4.00 - 1.00 - - - - - - vpermilps (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vpermilps $1, %ymm0, %ymm2 -# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vpermilps $1, (%rax), %ymm2 -# CHECK-NEXT: - - - - - - 6.00 - - - - - - - vpermilps %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - - 6.00 - 1.00 - - - - - - vpermilps (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpextrb $1, %xmm0, %ecx -# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 1.00 - - vpextrb $1, %xmm0, (%rax) -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpextrd $1, %xmm0, %ecx -# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 1.00 - - vpextrd $1, %xmm0, (%rax) -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpextrq $1, %xmm0, %rcx -# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 1.00 - - vpextrq $1, %xmm0, (%rax) -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpextrw $1, %xmm0, %ecx -# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 1.00 - - vpextrw $1, %xmm0, (%rax) -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vphaddd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vphaddd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vphaddsw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vphaddsw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vphaddw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vphaddw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpcmpeqb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpeqb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpcmpeqd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpeqd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpcmpeqq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpeqq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpcmpeqw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpeqw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpcmpgtb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpgtb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpcmpgtd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpgtd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpcmpgtq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpgtq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpcmpgtw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpcmpgtw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vperm2f128 $1, %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vperm2f128 $1, (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vpermilpd $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vpermilpd $1, (%rax), %xmm2 +# CHECK-NEXT: - - - - - 4.00 - - - - - - - - vpermilpd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 4.00 1.00 - - - - - - vpermilpd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vpermilpd $1, %ymm0, %ymm2 +# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vpermilpd $1, (%rax), %ymm2 +# CHECK-NEXT: - - - - - 6.00 - - - - - - - - vpermilpd %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - - - - 6.00 1.00 - - - - - - vpermilpd (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vpermilps $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vpermilps $1, (%rax), %xmm2 +# CHECK-NEXT: - - - - - 4.00 - - - - - - - - vpermilps %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 4.00 1.00 - - - - - - vpermilps (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 2.00 - - - - - - - - vpermilps $1, %ymm0, %ymm2 +# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vpermilps $1, (%rax), %ymm2 +# CHECK-NEXT: - - - - - 6.00 - - - - - - - - vpermilps %ymm0, %ymm1, %ymm2 +# CHECK-NEXT: - - - - - - 6.00 1.00 - - - - - - vpermilps (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpextrb $1, %xmm0, %ecx +# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 0.50 0.50 - vpextrb $1, %xmm0, (%rax) +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpextrd $1, %xmm0, %ecx +# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 0.50 0.50 - vpextrd $1, %xmm0, (%rax) +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpextrq $1, %xmm0, %rcx +# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 0.50 0.50 - vpextrq $1, %xmm0, (%rax) +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpextrw $1, %xmm0, %ecx +# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 0.50 0.50 - vpextrw $1, %xmm0, (%rax) +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vphaddd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vphaddd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vphaddsw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vphaddsw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vphaddw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vphaddw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vphminposuw %xmm0, %xmm2 # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vphminposuw (%rax), %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vphsubd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vphsubd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vphsubsw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vphsubsw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vphsubw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vphsubw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpinsrb $1, %eax, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpinsrb $1, (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpinsrd $1, %eax, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpinsrd $1, (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpinsrq $1, %rax, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpinsrq $1, (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpinsrw $1, %eax, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpinsrw $1, (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vphsubd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vphsubd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vphsubsw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vphsubsw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vphsubw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vphsubw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpinsrb $1, %eax, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpinsrb $1, (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpinsrd $1, %eax, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpinsrd $1, (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpinsrq $1, %rax, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpinsrq $1, (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpinsrw $1, %eax, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpinsrw $1, (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vpmaddubsw %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vpmaddubsw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vpmaddwd %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vpmaddwd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmaxsb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmaxsb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpmaxsd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmaxsd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpmaxsw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmaxsw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmaxub %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmaxub (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmaxud %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmaxud (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmaxuw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmaxuw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpminsb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpminsb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpminsd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpminsd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpminsw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpminsw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpminub %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpminub (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpminud %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpminud (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpminuw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpminuw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovmskb %xmm0, %ecx -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovsxbd %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovsxbd (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovsxbq %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovsxbq (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovsxbw %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovsxbw (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovsxdq %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovsxdq (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovsxwd %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovsxwd (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovsxwq %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovsxwq (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovzxbd %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovzxbd (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovzxbq %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovzxbq (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovzxbw %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovzxbw (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovzxdq %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovzxdq (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovzxwd %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - vpmovzxwd (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpmovzxwq %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpmovzxwq (%rax), %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpmaxsb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmaxsb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpmaxsd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmaxsd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmaxsw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmaxsw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmaxub %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmaxub (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmaxud %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmaxud (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmaxuw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmaxuw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpminsb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpminsb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpminsd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpminsd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpminsw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpminsw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpminub %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpminub (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpminud %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpminud (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpminuw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpminuw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovmskb %xmm0, %ecx +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovsxbd %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovsxbd (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovsxbq %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovsxbq (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovsxbw %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovsxbw (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovsxdq %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovsxdq (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovsxwd %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovsxwd (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovsxwq %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovsxwq (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovzxbd %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovzxbd (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovzxbq %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovzxbq (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovzxbw %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovzxbw (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovzxdq %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovzxdq (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovzxwd %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovzxwd (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpmovzxwq %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpmovzxwq (%rax), %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vpmuldq %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vpmuldq (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vpmulhrsw %xmm0, %xmm1, %xmm2 @@ -1523,92 +1523,92 @@ vzeroupper # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vpmullw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vpmuludq %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vpmuludq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpor %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpor (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpor %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpor (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 vpsadbw %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 vpsadbw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - - 4.00 - - - - - - - vpshufb %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - - - 4.00 1.00 - - - - - - vpshufb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpshufd $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - vpshufd $1, (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpshufhw $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpshufhw $1, (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpshuflw $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpshuflw $1, (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsignb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpsignb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsignd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpsignd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsignw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpsignw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpslld $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpslld %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpslld (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpslldq $1, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsllq $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpsllq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpsllq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpsllw $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsllw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpsllw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsrad $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpsrad %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpsrad (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpsraw $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsraw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpsraw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsrld $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpsrld %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpsrld (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpsrldq $1, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsrlq $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpsrlq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - vpsrlq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - vpsrlw $1, %xmm0, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsrlw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpsrlw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsubb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpsubb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsubd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpsubd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsubq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpsubq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsubsb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpsubsb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsubsw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpsubsw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsubusb %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpsubusb (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsubusw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpsubusw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpsubw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpsubw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpshufd $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpshufd $1, (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpshufhw $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpshufhw $1, (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpshuflw $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpshuflw $1, (%rax), %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsignb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsignb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsignd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsignd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsignw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsignw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpslld $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpslld %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpslld (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpslldq $1, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsllq $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsllq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsllq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsllw $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsllw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsllw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsrad $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsrad %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsrad (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsraw $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsraw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsraw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsrld $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsrld %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsrld (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsrldq $1, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsrlq $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsrlq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - vpsrlq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpsrlw $1, %xmm0, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsrlw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsrlw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsubb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsubb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsubd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsubd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsubq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsubq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsubsb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsubsb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsubsw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsubsw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsubusb %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsubusb (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsubusw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsubusw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpsubw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpsubw (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - - - vptest %xmm0, %xmm1 # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - - vptest (%rax), %xmm1 # CHECK-NEXT: - - - - - 2.00 2.00 - - - - - - - vptest %ymm0, %ymm1 # CHECK-NEXT: - - - - - 2.00 2.00 1.00 - - - - - - vptest (%rax), %ymm1 -# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - vpunpckhbw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpckhbw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpunpckhdq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpckhdq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpunpckhqdq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpckhqdq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpunpckhwd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpckhwd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpunpcklbw %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpcklbw (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpunpckldq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpckldq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpunpcklqdq %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpcklqdq (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpunpcklwd %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpunpcklwd (%rax), %xmm1, %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - vpxor %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - vpxor (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - vpunpckhbw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpckhbw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpunpckhdq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpckhdq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpunpckhqdq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpckhqdq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpunpckhwd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpckhwd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpunpcklbw %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpcklbw (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpunpckldq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpckldq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpunpcklqdq %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpcklqdq (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpunpcklwd %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpunpcklwd (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - vpxor %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - vpxor (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vrcpps %xmm0, %xmm2 # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vrcpps (%rax), %xmm2 -# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vrcpps %ymm0, %ymm2 -# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vrcpps (%rax), %ymm2 +# CHECK-NEXT: - - - - 2.00 - 1.00 - - - - - - - vrcpps %ymm0, %ymm2 +# CHECK-NEXT: - - - - 2.00 - 1.00 1.00 - - - - - - vrcpps (%rax), %ymm2 # CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vrcpss %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vrcpss (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vroundpd $1, %xmm0, %xmm2 @@ -1625,16 +1625,16 @@ vzeroupper # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vroundss $1, (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vrsqrtps %xmm0, %xmm2 # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vrsqrtps (%rax), %xmm2 -# CHECK-NEXT: - - - - - - 2.00 - - - - - - - vrsqrtps %ymm0, %ymm2 -# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vrsqrtps (%rax), %ymm2 +# CHECK-NEXT: - - - - 2.00 - 1.00 - - - - - - - vrsqrtps %ymm0, %ymm2 +# CHECK-NEXT: - - - - 2.00 - 1.00 1.00 - - - - - - vrsqrtps (%rax), %ymm2 # CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - vrsqrtss %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - vrsqrtss (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vshufpd $1, %xmm0, %xmm1, %xmm2 # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vshufpd $1, (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - 2.00 - - - - - - - - vshufpd $1, %ymm0, %ymm1, %ymm2 -# CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vshufpd $1, (%rax), %ymm1, %ymm2 -# CHECK-NEXT: - - - - 1.00 1.00 - - - - - - - - vshufps $1, %xmm0, %xmm1, %xmm2 -# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - - - - - - vshufps $1, (%rax), %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - vshufpd $1, (%rax), %ymm1, %ymm2 +# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vshufps $1, %xmm0, %xmm1, %xmm2 +# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vshufps $1, (%rax), %xmm1, %xmm2 # CHECK-NEXT: - - - - - 2.00 - - - - - - - - vshufps $1, %ymm0, %ymm1, %ymm2 # CHECK-NEXT: - - - - - 2.00 - 1.00 - - - - - - vshufps $1, (%rax), %ymm1, %ymm2 # CHECK-NEXT: - - - - 21.00 - 1.00 - - - - - - - vsqrtpd %xmm0, %xmm2 diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s index ccdb446..e3c8d5b 100644 --- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s +++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s @@ -485,17 +485,17 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - 1.00 - - - - - - - movupd %xmm0, %xmm2 # CHECK-NEXT: - - - - - - - - - 1.00 - - - - movupd %xmm0, (%rax) # CHECK-NEXT: - - - - - - - 1.00 - - - - - - movupd (%rax), %xmm2 -# CHECK-NEXT: - - - - - - 2.00 - - - - - - - mulpd %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - mulpd (%rax), %xmm2 -# CHECK-NEXT: - - - - - - 2.00 - - - - - - - mulsd %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 2.00 1.00 - - - - - - mulsd (%rax), %xmm2 +# CHECK-NEXT: - - - - 2.00 - 1.00 - - - - - - - mulpd %xmm0, %xmm2 +# CHECK-NEXT: - - - - 2.00 - 1.00 1.00 - - - - - - mulpd (%rax), %xmm2 +# CHECK-NEXT: - - - - 2.00 - 1.00 - - - - - - - mulsd %xmm0, %xmm2 +# CHECK-NEXT: - - - - 2.00 - 1.00 1.00 - - - - - - mulsd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - orpd %xmm0, %xmm2 -# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - - - - - - orpd (%rax), %xmm2 +# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - - - - - - orpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - pabsb %xmm0, %xmm2 # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pabsb (%rax), %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pabsd %xmm0, %xmm2 -# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pabsd (%rax), %xmm2 -# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pabsw %xmm0, %xmm2 +# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pabsd (%rax), %xmm2 +# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pabsw %xmm0, %xmm2 # CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pabsw (%rax), %xmm2 # CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - packssdw %xmm0, %xmm2 # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 1.00 - - packssdw (%rax), %xmm2 -- 2.7.4