summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2019-10-12 00:00:59 +0000
committerCraig Topper <craig.topper@intel.com>2019-10-12 00:00:59 +0000
commit7dcd440d44ddaf5c31f99128b1869e9dea5b767c (patch)
tree63ed6d409036e9aeac87e54124a78566c4c02c5b
parentde9aa37bf061abce87d0fbca68959a79e0cc7c51 (diff)
downloadbcm5719-llvm-7dcd440d44ddaf5c31f99128b1869e9dea5b767c.tar.gz
bcm5719-llvm-7dcd440d44ddaf5c31f99128b1869e9dea5b767c.zip
[X86] Add test case showing missing opportunity to fold vmovsdb into a store after type legalization. NFC
llvm-svn: 374614
-rw-r--r--llvm/test/CodeGen/X86/avx512-trunc.ll20
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/avx512-trunc.ll b/llvm/test/CodeGen/X86/avx512-trunc.ll
index 065a55fe7c5..c8eb139a144 100644
--- a/llvm/test/CodeGen/X86/avx512-trunc.ll
+++ b/llvm/test/CodeGen/X86/avx512-trunc.ll
@@ -1044,3 +1044,23 @@ define void @negative_test2_smax_usat_trunc_wb_256_mem(<16 x i16> %i, <16 x i8>*
store <16 x i8> %x6, <16 x i8>* %res, align 1
ret void
}
+
+define void @ssat_trunc_db_1024_mem(<32 x i32> %i, <32 x i8>* %p) {
+; ALL-LABEL: ssat_trunc_db_1024_mem:
+; ALL: ## %bb.0:
+; ALL-NEXT: vpmovsdb %zmm0, %xmm0
+; ALL-NEXT: vpmovsdb %zmm1, %xmm1
+; ALL-NEXT: vmovdqu %xmm1, 16(%rdi)
+; ALL-NEXT: vmovdqu %xmm0, (%rdi)
+; ALL-NEXT: vzeroupper
+; ALL-NEXT: retq
+ %x1 = icmp sgt <32 x i32> %i, <i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32
+-128, i32 -128>
+ %x2 = select <32 x i1> %x1, <32 x i32> %i, <32 x i32> <i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128, i32 -128>
+ %x3 = icmp slt <32 x i32> %x2, <i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127>
+ %x5 = select <32 x i1> %x3, <32 x i32> %x2, <32 x i32> <i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127, i32 127>
+ %x6 = trunc <32 x i32> %x5 to <32 x i8>
+ store <32 x i8>%x6, <32 x i8>* %p, align 1
+ ret void
+}
+
OpenPOWER on IntegriCloud