summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2018-03-23 15:17:50 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2018-03-23 15:17:50 +0000
commit1335b9c0ca1f9fa8c6d05fc274fa0ba13003ba7b (patch)
tree2c7fa76b9d8c891c6e4c0befc076c873e8e19ca7
parent713ca3d36a25f06d694bc993b11da71d82efddfa (diff)
downloadbcm5719-llvm-1335b9c0ca1f9fa8c6d05fc274fa0ba13003ba7b.tar.gz
bcm5719-llvm-1335b9c0ca1f9fa8c6d05fc274fa0ba13003ba7b.zip
[X86][Btver2] Cleanup DPPS/DPPD instructions to use JFPA/JFPM function units
llvm-svn: 328324
-rw-r--r--llvm/lib/Target/X86/X86ScheduleBtVer2.td24
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s24
-rw-r--r--llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s138
3 files changed, 93 insertions, 93 deletions
diff --git a/llvm/lib/Target/X86/X86ScheduleBtVer2.td b/llvm/lib/Target/X86/X86ScheduleBtVer2.td
index 3b67d4770f9..4b5cec6c427 100644
--- a/llvm/lib/Target/X86/X86ScheduleBtVer2.td
+++ b/llvm/lib/Target/X86/X86ScheduleBtVer2.td
@@ -388,30 +388,30 @@ defm : JWriteResFpuPair<WriteCLMul, [JFPU0, JVIMUL], 2>;
// SSE4.1 instructions.
////////////////////////////////////////////////////////////////////////////////
-def JWriteDPPS: SchedWriteRes<[JFPU0, JFPU1]> {
+def JWriteDPPS: SchedWriteRes<[JFPU1, JFPM, JFPA]> {
let Latency = 11;
- let ResourceCycles = [3, 3];
+ let ResourceCycles = [1, 3, 3];
let NumMicroOps = 5;
}
def : InstRW<[JWriteDPPS], (instrs DPPSrri, VDPPSrri)>;
-def JWriteDPPSLd: SchedWriteRes<[JLAGU, JFPU0, JFPU1]> {
+def JWriteDPPSLd: SchedWriteRes<[JLAGU, JFPU1, JFPM, JFPA]> {
let Latency = 16;
- let ResourceCycles = [1, 3, 3];
+ let ResourceCycles = [1, 1, 3, 3];
let NumMicroOps = 5;
}
def : InstRW<[JWriteDPPSLd], (instrs DPPSrmi, VDPPSrmi)>;
-def JWriteDPPD: SchedWriteRes<[JFPU0, JFPU1]> {
+def JWriteDPPD: SchedWriteRes<[JFPU1, JFPM, JFPA]> {
let Latency = 9;
- let ResourceCycles = [3, 3];
+ let ResourceCycles = [1, 3, 3];
let NumMicroOps = 3;
}
def : InstRW<[JWriteDPPD], (instrs DPPDrri, VDPPDrri)>;
-def JWriteDPPDLd: SchedWriteRes<[JLAGU, JFPU0, JFPU1]> {
+def JWriteDPPDLd: SchedWriteRes<[JLAGU, JFPU1, JFPM, JFPA]> {
let Latency = 14;
- let ResourceCycles = [1, 3, 3];
+ let ResourceCycles = [1, 1, 3, 3];
let NumMicroOps = 3;
}
def : InstRW<[JWriteDPPDLd], (instrs DPPDrmi, VDPPDrmi)>;
@@ -515,16 +515,16 @@ def : InstRW<[JWriteFLogicYLd], (instrs VORPDYrm, VORPSYrm,
VANDPDYrm, VANDPSYrm,
VANDNPDYrm, VANDNPSYrm)>;
-def JWriteVDPPSY: SchedWriteRes<[JFPU1, JFPU0]> {
+def JWriteVDPPSY: SchedWriteRes<[JFPU1, JFPM, JFPA]> {
let Latency = 12;
- let ResourceCycles = [6, 6];
+ let ResourceCycles = [1, 6, 6];
let NumMicroOps = 10;
}
def : InstRW<[JWriteVDPPSY], (instrs VDPPSYrri)>;
-def JWriteVDPPSYLd: SchedWriteRes<[JLAGU, JFPU1, JFPU0]> {
+def JWriteVDPPSYLd: SchedWriteRes<[JLAGU, JFPU1, JFPM, JFPA]> {
let Latency = 17;
- let ResourceCycles = [1, 6, 6];
+ let ResourceCycles = [1, 1, 6, 6];
let NumMicroOps = 10;
}
def : InstRW<[JWriteVDPPSYLd, ReadAfterLd], (instrs VDPPSYrmi)>;
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 1ce8f447052..6a39a485ed6 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-avx1.s
@@ -1173,16 +1173,16 @@ vzeroupper
# CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - vdivsd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - - 19.00 - 1.00 - - - - - - - vdivss %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - - 19.00 - 1.00 1.00 - - - - - - vdivss (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 3.00 3.00 - - - - - - - vdppd $22, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 3.00 3.00 1.00 - - - - - - vdppd $22, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 3.00 3.00 - - - - - - - vdpps $22, %xmm0, %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 3.00 3.00 1.00 - - - - - - vdpps $22, (%rax), %xmm1, %xmm2
-# CHECK-NEXT: - - - - - 6.00 6.00 - - - - - - - vdpps $22, %ymm0, %ymm1, %ymm2
-# CHECK-NEXT: - - - - - 6.00 6.00 1.00 - - - - - - vdpps $22, (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - 3.00 3.00 - 1.00 - - - - - - - vdppd $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - 3.00 3.00 - 1.00 1.00 - - - - - - vdppd $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 3.00 3.00 - 1.00 - - - - - - - vdpps $22, %xmm0, %xmm1, %xmm2
+# CHECK-NEXT: - - - 3.00 3.00 - 1.00 1.00 - - - - - - vdpps $22, (%rax), %xmm1, %xmm2
+# CHECK-NEXT: - - - 6.00 6.00 - 1.00 - - - - - - - vdpps $22, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - 6.00 6.00 - 1.00 1.00 - - - - - - vdpps $22, (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vextractf128 $1, %ymm0, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - - - 1.00 - - - - vextractf128 $1, %ymm0, (%rax)
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vextractps $1, %xmm0, %ecx
-# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - 1.00 - - - - vextractps $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - 1.00 - 1.00 1.00 - 1.00 - - - - vextractps $1, %xmm0, (%rax)
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vhaddpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vhaddpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - 2.00 - 2.00 - - - - - - - - vhaddpd %ymm0, %ymm1, %ymm2
@@ -1208,13 +1208,13 @@ vzeroupper
# CHECK-NEXT: - - - - - - - 1.00 - - - - - - vldmxcsr (%rax)
# CHECK-NEXT: - - - - - - 1.00 - - 1.00 - 0.50 0.50 - vmaskmovdqu %xmm0, %xmm1
# CHECK-NEXT: - - - - 2.00 - 1.00 1.00 - - - - - - vmaskmovpd (%rax), %xmm0, %xmm2
-# CHECK-NEXT: - - - 4.00 - 1.00 - 1.00 - - - - - - vmaskmovpd (%rax), %ymm0, %ymm2
-# CHECK-NEXT: - - - - 4.00 - 1.00 - - 1.00 - - - - vmaskmovpd %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: - - - - 4.00 - 1.00 1.00 - - - - - - vmaskmovpd (%rax), %ymm0, %ymm2
+# CHECK-NEXT: - - - 4.00 - 1.00 - - - 1.00 - - - - vmaskmovpd %xmm0, %xmm1, (%rax)
# CHECK-NEXT: - - - 4.00 - 1.00 - - - 1.00 - - - - vmaskmovpd %ymm0, %ymm1, (%rax)
# CHECK-NEXT: - - - - 2.00 - 1.00 1.00 - - - - - - vmaskmovps (%rax), %xmm0, %xmm2
-# CHECK-NEXT: - - - - 4.00 1.00 - 1.00 - - - - - - vmaskmovps (%rax), %ymm0, %ymm2
-# CHECK-NEXT: - - - 4.00 - - 1.00 - - 1.00 - - - - vmaskmovps %xmm0, %xmm1, (%rax)
-# CHECK-NEXT: - - - - 4.00 1.00 - - - 1.00 - - - - vmaskmovps %ymm0, %ymm1, (%rax)
+# CHECK-NEXT: - - - 4.00 - 1.00 - 1.00 - - - - - - vmaskmovps (%rax), %ymm0, %ymm2
+# CHECK-NEXT: - - - - 4.00 - 1.00 - - 1.00 - - - - vmaskmovps %xmm0, %xmm1, (%rax)
+# CHECK-NEXT: - - - 4.00 - 1.00 - - - 1.00 - - - - vmaskmovps %ymm0, %ymm1, (%rax)
# CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - vmaxpd %xmm0, %xmm1, %xmm2
# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - vmaxpd (%rax), %xmm1, %xmm2
# CHECK-NEXT: - - - 2.00 - 1.00 - - - - - - - - vmaxpd %ymm0, %ymm1, %ymm2
diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s
index 7c041551469..c3fcf8a834f 100644
--- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s
+++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse41.s
@@ -171,80 +171,80 @@ roundss $1, (%rax), %xmm2
# CHECK-NEXT: - - - 0.06 3.94 1.00 - 1.00 - - - - - - blendvpd %xmm0, (%rax), %xmm2
# CHECK-NEXT: - - - 4.00 - 0.99 0.01 - - - - - - - blendvps %xmm0, %xmm0, %xmm2
# CHECK-NEXT: - - - - 4.00 0.01 0.99 1.00 - - - - - - blendvps %xmm0, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 3.00 3.00 - - - - - - - dppd $22, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 3.00 3.00 1.00 - - - - - - dppd $22, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 3.00 3.00 - - - - - - - dpps $22, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 3.00 3.00 1.00 - - - - - - dpps $22, (%rax), %xmm2
+# CHECK-NEXT: - - - 3.00 3.00 - 1.00 - - - - - - - dppd $22, %xmm0, %xmm2
+# CHECK-NEXT: - - - 3.00 3.00 - 1.00 1.00 - - - - - - dppd $22, (%rax), %xmm2
+# CHECK-NEXT: - - - 3.00 3.00 - 1.00 - - - - - - - dpps $22, %xmm0, %xmm2
+# CHECK-NEXT: - - - 3.00 3.00 - 1.00 1.00 - - - - - - dpps $22, (%rax), %xmm2
# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - extractps $1, %xmm0, %ecx
-# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - 1.00 - - - - extractps $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - 1.00 - 1.00 - - - - - - - insertps $1, %xmm0, %xmm2
-# CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - insertps $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - 0.99 0.01 - movntdqa (%rax), %xmm2
+# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - 1.00 - - - - extractps $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - 1.00 1.00 - - - - - - - - insertps $1, %xmm0, %xmm2
+# CHECK-NEXT: - - - 1.00 - - 1.00 1.00 - - - - - - insertps $1, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - 0.50 0.50 - movntdqa (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 2.00 mpsadbw $1, %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 2.00 mpsadbw $1, (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 0.99 0.01 - packusdw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.01 0.99 - packusdw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 4.00 - - pblendvb %xmm0, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 0.99 0.01 1.00 - - - - 4.00 - pblendvb %xmm0, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pblendw $11, %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pblendw $11, (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pcmpeqq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pcmpeqq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 0.01 0.99 - pextrb $1, %xmm0, %ecx
-# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 1.00 - - pextrb $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - 1.00 - - - - 0.99 0.01 - pextrd $1, %xmm0, %ecx
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - 1.00 - - 1.00 - pextrd $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - 1.00 - - - - - 0.01 0.99 - pextrq $1, %xmm0, %rcx
-# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 1.00 - - pextrq $1, %xmm0, (%rax)
-# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - - 1.00 - pextrw $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - packusdw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - packusdw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 2.00 2.00 - pblendvb %xmm0, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 2.00 2.00 - pblendvb %xmm0, (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pblendw $11, %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pblendw $11, (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pcmpeqq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pcmpeqq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pextrb $1, %xmm0, %ecx
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - 1.00 - 0.50 0.50 - pextrb $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 0.01 0.99 - - - - 0.50 0.50 - pextrd $1, %xmm0, %ecx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 0.50 0.50 - pextrd $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 0.50 0.50 - pextrq $1, %xmm0, %rcx
+# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 0.50 0.50 - pextrq $1, %xmm0, (%rax)
+# CHECK-NEXT: - - - - - - 1.00 1.00 - 1.00 - 0.50 0.50 - pextrw $1, %xmm0, (%rax)
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 phminposuw %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 phminposuw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 0.99 0.01 - pinsrb $1, %eax, %xmm1
-# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - - 1.00 - pinsrb $1, (%rax), %xmm1
-# CHECK-NEXT: - - - - - 0.01 0.99 - - - - 0.01 0.99 - pinsrd $1, %eax, %xmm1
-# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - 1.00 - - pinsrd $1, (%rax), %xmm1
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pinsrq $1, %rax, %xmm1
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pinsrq $1, (%rax), %xmm1
-# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 0.99 0.01 - pmaxsb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmaxsb (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pmaxsd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmaxsd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pmaxud %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmaxud (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pmaxuw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmaxuw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pminsb %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pminsb (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pminsd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pminsd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - - 1.00 - pminud %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pminud (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - - 1.00 - pminuw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pminuw (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pmovsxbd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmovsxbd (%rax), %xmm2
-# CHECK-NEXT: - - - - - 1.00 - - - - - 1.00 - - pmovsxbq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmovsxbq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovsxbw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pmovsxbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovsxdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pmovsxdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovsxwd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pmovsxwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovsxwq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pmovsxwq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovzxbd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pmovzxbd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovzxbq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pmovzxbq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovzxbw %xmm0, %xmm2
-# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - 1.00 - pmovzxbw (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovzxdq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pmovzxdq (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovzxwd %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 1.00 - - pmovzxwd (%rax), %xmm2
-# CHECK-NEXT: - - - - - - 1.00 - - - - 1.00 - - pmovzxwq %xmm0, %xmm2
-# CHECK-NEXT: - - - - - - 1.00 1.00 - - - - 1.00 - pmovzxwq (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pinsrb $1, %eax, %xmm1
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - 0.50 0.50 - pinsrb $1, (%rax), %xmm1
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pinsrd $1, %eax, %xmm1
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pinsrd $1, (%rax), %xmm1
+# CHECK-NEXT: - - - - - 0.01 0.99 - - - - 0.50 0.50 - pinsrq $1, %rax, %xmm1
+# CHECK-NEXT: - - - - - 0.99 0.01 1.00 - - - 0.50 0.50 - pinsrq $1, (%rax), %xmm1
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pmaxsb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pmaxsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pmaxsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pmaxsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pmaxud %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - 0.50 0.50 - pmaxud (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 0.51 0.49 - pmaxuw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pmaxuw (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pminsb %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pminsb (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pminsd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pminsd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pminud %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pminud (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pminuw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.51 0.49 - pminuw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 0.50 0.50 - pmovsxbd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - 0.49 0.51 - pmovsxbd (%rax), %xmm2
+# CHECK-NEXT: - - - - - - 1.00 - - - - 0.50 0.50 - pmovsxbq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pmovsxbq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pmovsxbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pmovsxbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pmovsxdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pmovsxdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pmovsxwd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pmovsxwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 0.49 0.51 - pmovsxwq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - 0.51 0.49 - pmovsxwq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 0.49 0.51 - pmovzxbd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - 0.51 0.49 - pmovzxbd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 0.49 0.51 - pmovzxbq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - 0.51 0.49 - pmovzxbq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 - - - - 0.49 0.51 - pmovzxbw %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.01 0.99 1.00 - - - 0.51 0.49 - pmovzxbw (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pmovzxdq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 0.99 0.01 1.00 - - - 0.49 0.51 - pmovzxdq (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pmovzxwd %xmm0, %xmm2
+# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - 0.50 0.50 - pmovzxwd (%rax), %xmm2
+# CHECK-NEXT: - - - - - 1.00 - - - - - 0.50 0.50 - pmovzxwq %xmm0, %xmm2
+# CHECK-NEXT: - - - - - - 1.00 1.00 - - - 0.50 0.50 - pmovzxwq (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmuldq %xmm0, %xmm2
# CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pmuldq (%rax), %xmm2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmulld %xmm0, %xmm2
OpenPOWER on IntegriCloud