AVX-512: added a lit test for truncate operation
authorElena Demikhovsky <elena.demikhovsky@intel.com>
Thu, 20 Feb 2014 07:34:13 +0000 (07:34 +0000)
committerElena Demikhovsky <elena.demikhovsky@intel.com>
Thu, 20 Feb 2014 07:34:13 +0000 (07:34 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201763 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/X86/avx512-trunc-ext.ll

index 86822a6853bae1f03f659e65e3bcd6672183f710..5e097be04cdfabf0e18ce9059543f604cb8b7fdc 100644 (file)
@@ -133,3 +133,16 @@ define <16 x i16> @trunc_v16i32_to_v16i16(<16 x i32> %x) {
   %1 = trunc <16 x i32> %x to <16 x i16>
   ret <16 x i16> %1
 }
   %1 = trunc <16 x i32> %x to <16 x i16>
   ret <16 x i16> %1
 }
+
+; CHECK-LABEL: trunc_i32_to_i1
+; CHECK: andl
+; CHECK: kmov
+; CHECK: kortest
+; CKECK: orl
+; CHECK: ret
+define i16 @trunc_i32_to_i1(i32 %a) {
+  %a_i = trunc i32 %a to i1
+  %maskv = insertelement <16 x i1> <i1 true, i1 false, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true, i1 true>, i1 %a_i, i32 0
+  %res = bitcast <16 x i1> %maskv to i16
+  ret i16 %res
+}