; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | not grep srawi &&
; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | grep blr

int %test1(int %X) {
	%Y = and int %X, 15
	%Z = div int %Y, 4
	ret int %Z
}

int %test2(int %W) {
	%X = and int %W, 15
	%Y = sub int 16, %X
	%Z = div int %Y, 4
	ret int %Z
}

int %test3(int %W) {
	%X = and int %W, 15
	%Y = sub int 15, %X
	%Z = div int %Y, 4
	ret int %Z
}

int %test4(int %W) {
	%X = and int %W, 2
	%Y = sub int 5, %X
	%Z = div int %Y, 2
	ret int %Z
}
