This should always be signed chars, so use int8_t. This fixes a miscompile when
[llvm/stm8.git] / test / CodeGen / X86 / 2009-04-25-CoalescerBug.ll
blob94d3eb21ceccadfaaea28cb903e06d4f1ededd76
1 ; RUN: llc < %s -march=x86-64 | grep mov | count 2
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* %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