; These tests should not contain a sign extend.
; RUN: llc < %s -march=ppc32 | not grep extsh
; RUN: llc < %s -march=ppc32 | not grep extsb

define i32 @test1(i32 %mode.0.i.0) {
        %tmp.79 = trunc i32 %mode.0.i.0 to i16
        %tmp.80 = sext i16 %tmp.79 to i32
        %tmp.81 = and i32 %tmp.80, 24
        ret i32 %tmp.81
}

define signext i16 @test2(i16 signext %X, i16 signext %x)  {
        %tmp = sext i16 %X to i32
        %tmp1 = sext i16 %x to i32
        %tmp2 = add i32 %tmp, %tmp1
        %tmp4 = ashr i32 %tmp2, 1
        %tmp5 = trunc i32 %tmp4 to i16
        %tmp45 = sext i16 %tmp5 to i32
        %retval = trunc i32 %tmp45 to i16
        ret i16 %retval
}

define signext i16 @test3(i32 zeroext %X)  {
        %tmp1 = lshr i32 %X, 16
        %tmp2 = trunc i32 %tmp1 to i16
        ret i16 %tmp2
}

