[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / X86 / 2009-04-25-CoalescerBug.ll
blobf6b5ecef6e3bec0868cfa7dbe977ce8289f49545
1 ; RUN: llc < %s -mtriple=x86_64-- | grep mov | count 1
2 ; rdar://6806252
4 define i64 @test(i32* %tmp13) nounwind {
5 entry:
6         br label %while.cond
8 while.cond:             ; preds = %while.cond, %entry
9         %tmp15 = load i32, i32* %tmp13          ; <i32> [#uses=2]
10         %bf.lo = lshr i32 %tmp15, 1             ; <i32> [#uses=1]
11         %bf.lo.cleared = and i32 %bf.lo, 2147483647             ; <i32> [#uses=1]
12         %conv = zext i32 %bf.lo.cleared to i64          ; <i64> [#uses=1]
13         %bf.lo.cleared25 = and i32 %tmp15, 1            ; <i32> [#uses=1]
14         %tobool = icmp ne i32 %bf.lo.cleared25, 0               ; <i1> [#uses=1]
15         br i1 %tobool, label %while.cond, label %while.end
17 while.end:              ; preds = %while.cond
18         ret i64 %conv