summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/InstCombine/2011-05-02-VectorBoolean.ll
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2011-05-02 18:51:41 +0000
committerDuncan Sands <baldrick@free.fr>2011-05-02 18:51:41 +0000
commitf91c5ab3418be94dc13a116af85a0797c5302f99 (patch)
treed0328c183bb6890c9ce3950ae3657e12fa3e6bbf /llvm/test/Transforms/InstCombine/2011-05-02-VectorBoolean.ll
parent6b699f863fd067ef44255c88742674cb55c2bfa1 (diff)
downloadbcm5719-llvm-f91c5ab3418be94dc13a116af85a0797c5302f99.tar.gz
bcm5719-llvm-f91c5ab3418be94dc13a116af85a0797c5302f99.zip
Fix PR9579: when simplifying a compare to "true" or "false", and it was
a vector compare, generate a vector result rather than i1 (and crashing). llvm-svn: 130706
Diffstat (limited to 'llvm/test/Transforms/InstCombine/2011-05-02-VectorBoolean.ll')
-rw-r--r--llvm/test/Transforms/InstCombine/2011-05-02-VectorBoolean.ll15
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/2011-05-02-VectorBoolean.ll b/llvm/test/Transforms/InstCombine/2011-05-02-VectorBoolean.ll
new file mode 100644
index 00000000000..02b64e3bb8d
--- /dev/null
+++ b/llvm/test/Transforms/InstCombine/2011-05-02-VectorBoolean.ll
@@ -0,0 +1,15 @@
+; RUN: opt < %s -instcombine
+; PR9579
+
+define <2 x i16> @entry(<2 x i16> %a) nounwind {
+entry:
+ %a.addr = alloca <2 x i16>, align 4
+ %.compoundliteral = alloca <2 x i16>, align 4
+ store <2 x i16> %a, <2 x i16>* %a.addr, align 4
+ %tmp = load <2 x i16>* %a.addr, align 4
+ store <2 x i16> zeroinitializer, <2 x i16>* %.compoundliteral
+ %tmp1 = load <2 x i16>* %.compoundliteral
+ %cmp = icmp uge <2 x i16> %tmp, %tmp1
+ %sext = sext <2 x i1> %cmp to <2 x i16>
+ ret <2 x i16> %sext
+}
OpenPOWER on IntegriCloud