; RUN: llc < %s -march=ppc32 | not grep {extsh\\|rlwinm}

declare signext i16 @foo()  

define i32 @test1(i16 signext %X) {
	%Y = sext i16 %X to i32  ;; dead
	ret i32 %Y
}

define i32 @test2(i16 zeroext %X) {
	%Y = sext i16 %X to i32
	%Z = and i32 %Y, 65535      ;; dead
	ret i32 %Z
}

define void @test3() {
	%tmp.0 = call signext i16 @foo()             ;; no extsh!
	%tmp.1 = icmp slt i16 %tmp.0, 1234
	br i1 %tmp.1, label %then, label %UnifiedReturnBlock

then:	
	call i32 @test1(i16 signext 0)
	ret void
UnifiedReturnBlock:
	ret void
}

define i32 @test4(i16* %P) {
        %tmp.1 = load i16* %P
        %tmp.2 = zext i16 %tmp.1 to i32
        %tmp.3 = and i32 %tmp.2, 255
        ret i32 %tmp.3
}

define i32 @test5(i16* %P) {
        %tmp.1 = load i16* %P
        %tmp.2 = bitcast i16 %tmp.1 to i16
        %tmp.3 = zext i16 %tmp.2 to i32
        %tmp.4 = and i32 %tmp.3, 255
        ret i32 %tmp.4
}

define i32 @test6(i32* %P) {
        %tmp.1 = load i32* %P
        %tmp.2 = and i32 %tmp.1, 255
        ret i32 %tmp.2
}

define zeroext i16 @test7(float %a)  {
        %tmp.1 = fptoui float %a to i16
        ret i16 %tmp.1
}
