summaryrefslogtreecommitdiff
path: root/test/Transforms/InstCombine
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-07-11 04:20:58 +0000
committerChris Lattner <sabre@nondot.org>2008-07-11 04:20:58 +0000
commit85b5eb050572f787331cc6af573b7f72bd174d79 (patch)
tree298fabb64846804129505d59c99d95c1f6205c5d /test/Transforms/InstCombine
parentf299184565f5f0ff9e3bbb94dad184fd5a690c2c (diff)
downloadllvm-85b5eb050572f787331cc6af573b7f72bd174d79.tar.gz
llvm-85b5eb050572f787331cc6af573b7f72bd174d79.tar.bz2
llvm-85b5eb050572f787331cc6af573b7f72bd174d79.tar.xz
Fix folding of icmp's of i1 where the comparison is signed. The code
was using the algorithm for folding unsigned comparisons which is completely wrong. This has been broken since the signless types change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53444 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/InstCombine')
-rw-r--r--test/Transforms/InstCombine/2008-07-10-CastSextBool.ll11
1 files changed, 10 insertions, 1 deletions
diff --git a/test/Transforms/InstCombine/2008-07-10-CastSextBool.ll b/test/Transforms/InstCombine/2008-07-10-CastSextBool.ll
index f5efefb0a0..205e57d797 100644
--- a/test/Transforms/InstCombine/2008-07-10-CastSextBool.ll
+++ b/test/Transforms/InstCombine/2008-07-10-CastSextBool.ll
@@ -1,8 +1,17 @@
; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {%C = xor i1 %A, true}
+; RUN: llvm-as < %s | opt -instcombine | llvm-dis | grep {ret i1 false}
; PR2539
-define i1 @test(i1 %A) {
+define i1 @test1(i1 %A) {
%B = zext i1 %A to i32
%C = icmp slt i32 %B, 1
ret i1 %C
}
+
+
+define i1 @test2(i1 zeroext %b) {
+entry:
+ %cmptmp = icmp slt i1 %b, true ; <i1> [#uses=1]
+ ret i1 %cmptmp
+}
+