about summary refs log tree commit diff homepage
path: root/test/Concrete/Shifts.ll
blob: 2430f879e3f1ef9be10185b622bb13292195f32a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
declare void @print_i32(i32)

define i32 @main() {
	%amt = add i8 2, 5
	%a = shl i8 1, 5
	%b = lshr i8 %a, 5
	%c = shl i8 %b, %amt
	%d = lshr i8 %c, %amt
	%e = shl i8 %d, 7
	%f = ashr i8 %e, 7
	%g = shl i8 %f, %amt
	%h = ashr i8 %g, %amt
	%test = icmp eq i8 %h, -1
	br i1 %test, label %exitTrue, label %exitFalse
exitTrue:
	call void @print_i32(i32 1)
	ret i32 0
exitFalse:
	call void @print_i32(i32 0)
	ret i32 0
}