summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2019-10-10 06:25:00 +0000
committerCraig Topper <craig.topper@intel.com>2019-10-10 06:25:00 +0000
commit0a84576262e9dbfafbedc327c6a6f83c50b61f10 (patch)
tree6de25f88d11589e90805f594ee5c8d603ab37612
parent1c2afae7dcf66ee0efa5a2ffcb3222ea72dc95ba (diff)
downloadbcm5719-llvm-0a84576262e9dbfafbedc327c6a6f83c50b61f10.tar.gz
bcm5719-llvm-0a84576262e9dbfafbedc327c6a6f83c50b61f10.zip
[X86] Add test case for trunc_packus_v16i32_v16i8 with avx512vl+avx512bw and prefer-vector-width=256 and min-legal-vector-width=256. NFC
llvm-svn: 374283
-rw-r--r--llvm/test/CodeGen/X86/min-legal-vector-width.ll20
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/min-legal-vector-width.ll b/llvm/test/CodeGen/X86/min-legal-vector-width.ll
index e3c66e83c83..62d181f7cbc 100644
--- a/llvm/test/CodeGen/X86/min-legal-vector-width.ll
+++ b/llvm/test/CodeGen/X86/min-legal-vector-width.ll
@@ -1079,3 +1079,23 @@ define void @vselect_split_v16i16_setcc(<16 x i16> %s, <16 x i16> %t, <16 x i32>
store <16 x i32> %b, <16 x i32>* %r
ret void
}
+
+define <16 x i8> @trunc_packus_v16i32_v16i8(<16 x i32>* %p, <16 x i8>* %q) "min-legal-vector-width"="256" {
+; CHECK-LABEL: trunc_packus_v16i32_v16i8:
+; CHECK: # %bb.0:
+; CHECK-NEXT: vpxor %xmm0, %xmm0, %xmm0
+; CHECK-NEXT: vpmaxsd 32(%rdi), %ymm0, %ymm1
+; CHECK-NEXT: vpmovusdb %ymm1, %xmm1
+; CHECK-NEXT: vpmaxsd (%rdi), %ymm0, %ymm0
+; CHECK-NEXT: vpmovusdb %ymm0, %xmm0
+; CHECK-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
+; CHECK-NEXT: vzeroupper
+; CHECK-NEXT: retq
+ %a = load <16 x i32>, <16 x i32>* %p
+ %b = icmp slt <16 x i32> %a, <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
+ %c = select <16 x i1> %b, <16 x i32> %a, <16 x i32> <i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255, i32 255>
+ %d = icmp sgt <16 x i32> %c, zeroinitializer
+ %e = select <16 x i1> %d, <16 x i32> %c, <16 x i32> zeroinitializer
+ %f = trunc <16 x i32> %e to <16 x i8>
+ ret <16 x i8> %f
+}
OpenPOWER on IntegriCloud