1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-01 16:33:37 +01:00
llvm-mirror/test/Transforms/InstCombine/2010-01-28-NegativeSRem.ll
Duncan Sands a3395c61b5 Fix PR6165. The bug was that LHSKnownZero was being and'd with DemandedMask
when it should have been and'd with LowBits.  Fix that and while there beef
up the logic in the case of a negative LHS.

llvm-svn: 94745
2010-01-28 17:22:42 +00:00

20 lines
544 B
LLVM

; RUN: opt < %s -instcombine -S | FileCheck %s
; PR6165
define i32 @f() {
entry:
br label %BB1
BB1: ; preds = %BB1, %entry
; CHECK: BB1:
%x = phi i32 [ -29, %entry ], [ 0, %BB1 ] ; <i32> [#uses=2]
%rem = srem i32 %x, 2 ; <i32> [#uses=1]
%t = icmp eq i32 %rem, -1 ; <i1> [#uses=1]
br i1 %t, label %BB2, label %BB1
; CHECK-NOT: br i1 false
BB2: ; preds = %BB1
; CHECK: BB2:
ret i32 %x
}