aboutsummaryrefslogtreecommitdiffstats
path: root/test/ExecutionEngine/2007-05-12-APInt-Shl.ll
blob: cbea4076ea1ef76500af9de73c7cb1d64f96f7b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
; RUN: llvm-as %s -f -o %t.bc
; RUN: lli -force-interpreter=true %t.bc | tee %t.out | grep 10

; Test that APInt shift left works when bitwidth > 64 and shiftamt == 0

declare i32 @putchar(i32)

define void @putBit(i65 %x, i65 %bitnum) {
  %tmp1 = shl i65 1, %bitnum
  %tmp2 = and i65 %x, %tmp1
  %cond = icmp ne i65 %tmp2, 0
  br i1 %cond, label %cond_true, label %cond_false

cond_true:
  call i32 @putchar(i32 49)
  br label %cond_next

cond_false:
  call i32 @putchar(i32 48)
  br label %cond_next

cond_next:
  ret void
}

define i32 @main() {
  call void @putBit(i65 1, i65 0)
  call void @putBit(i65 0, i65 0)
  ret i32 0
}