1; These tests should not contain a sign extend. 2; RUN: llc < %s -march=ppc32 | not grep extsh 3; RUN: llc < %s -march=ppc32 | not grep extsb 4 5define i32 @test1(i32 %mode.0.i.0) { 6 %tmp.79 = trunc i32 %mode.0.i.0 to i16 7 %tmp.80 = sext i16 %tmp.79 to i32 8 %tmp.81 = and i32 %tmp.80, 24 9 ret i32 %tmp.81 10} 11 12define signext i16 @test2(i16 signext %X, i16 signext %x) { 13 %tmp = sext i16 %X to i32 14 %tmp1 = sext i16 %x to i32 15 %tmp2 = add i32 %tmp, %tmp1 16 %tmp4 = ashr i32 %tmp2, 1 17 %tmp5 = trunc i32 %tmp4 to i16 18 %tmp45 = sext i16 %tmp5 to i32 19 %retval = trunc i32 %tmp45 to i16 20 ret i16 %retval 21} 22 23define signext i16 @test3(i32 zeroext %X) { 24 %tmp1 = lshr i32 %X, 16 25 %tmp2 = trunc i32 %tmp1 to i16 26 ret i16 %tmp2 27} 28 29