summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/vec_cast.ll
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2010-03-02 02:14:38 +0000
committerDan Gohman <gohman@apple.com>2010-03-02 02:14:38 +0000
commit4cec5439522410706badcf73769cbce0195f8033 (patch)
tree9f8176fb1016268372c73e8e9fd9f7a569672034 /llvm/test/CodeGen/X86/vec_cast.ll
parent52f55639732cffc7615f71d4f7521a19c1db43d8 (diff)
downloadbcm5719-llvm-4cec5439522410706badcf73769cbce0195f8033.tar.gz
bcm5719-llvm-4cec5439522410706badcf73769cbce0195f8033.zip
Fix several places to handle vector operands properly.
Based on a patch by Micah Villmow for PR6438. llvm-svn: 97538
Diffstat (limited to 'llvm/test/CodeGen/X86/vec_cast.ll')
-rw-r--r--llvm/test/CodeGen/X86/vec_cast.ll18
1 files changed, 13 insertions, 5 deletions
diff --git a/llvm/test/CodeGen/X86/vec_cast.ll b/llvm/test/CodeGen/X86/vec_cast.ll
index 1f899b3c20a..6f18d13cc9d 100644
--- a/llvm/test/CodeGen/X86/vec_cast.ll
+++ b/llvm/test/CodeGen/X86/vec_cast.ll
@@ -31,11 +31,10 @@ define <1 x i32> @f(<1 x i16> %a) nounwind {
ret <1 x i32> %c
}
-; TODO: Legalize doesn't yet handle this.
-;define <8 x i16> @g(<8 x i32> %a) nounwind {
-; %c = trunc <8 x i32> %a to <8 x i16>
-; ret <8 x i16> %c
-;}
+define <8 x i16> @g(<8 x i32> %a) nounwind {
+ %c = trunc <8 x i32> %a to <8 x i16>
+ ret <8 x i16> %c
+}
define <3 x i16> @h(<3 x i32> %a) nounwind {
%c = trunc <3 x i32> %a to <3 x i16>
@@ -46,3 +45,12 @@ define <1 x i16> @i(<1 x i32> %a) nounwind {
%c = trunc <1 x i32> %a to <1 x i16>
ret <1 x i16> %c
}
+
+; PR6438
+define void @__OpenCL_math_kernel4_kernel() nounwind {
+ %tmp12.i = and <4 x i32> zeroinitializer, <i32 2139095040, i32 2139095040, i32 2139095040, i32 2139095040> ; <<4 x i32>> [#uses=1]
+ %cmp13.i = icmp eq <4 x i32> %tmp12.i, <i32 2139095040, i32 2139095040, i32 2139095040, i32 2139095040> ; <<4 x i1>> [#uses=2]
+ %cmp.ext14.i = sext <4 x i1> %cmp13.i to <4 x i32> ; <<4 x i32>> [#uses=0]
+ %tmp2110.i = and <4 x i1> %cmp13.i, zeroinitializer ; <<4 x i1>> [#uses=0]
+ ret void
+}
OpenPOWER on IntegriCloud