; All of these routines should be perform optimal load of constants.
; RUN: llc < %s -march=ppc32 | \
; RUN:   grep lis | count 5
; RUN: llc < %s -march=ppc32 | \
; RUN:   grep ori | count 3
; RUN: llc < %s -march=ppc32 | \
; RUN:   grep "li " | count 4

define i32 @f1() {
entry:
	ret i32 1
}

define i32 @f2() {
entry:
	ret i32 -1
}

define i32 @f3() {
entry:
	ret i32 0
}

define i32 @f4() {
entry:
	ret i32 32767
}

define i32 @f5() {
entry:
	ret i32 65535
}

define i32 @f6() {
entry:
	ret i32 65536
}

define i32 @f7() {
entry:
	ret i32 131071
}

define i32 @f8() {
entry:
	ret i32 2147483647
}

define i32 @f9() {
entry:
	ret i32 -2147483648
}
