diff options
author | Duncan Sands <baldrick@free.fr> | 2011-05-02 18:51:41 +0000 |
---|---|---|
committer | Duncan Sands <baldrick@free.fr> | 2011-05-02 18:51:41 +0000 |
commit | f91c5ab3418be94dc13a116af85a0797c5302f99 (patch) | |
tree | d0328c183bb6890c9ce3950ae3657e12fa3e6bbf /llvm/test/Transforms/InstCombine/2011-05-02-VectorBoolean.ll | |
parent | 6b699f863fd067ef44255c88742674cb55c2bfa1 (diff) | |
download | bcm5719-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.ll | 15 |
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 +} |