This allows us to compile:
register short X;
{
int Y;
return 1+X+Y;
into:
%tmp = load i16* %X ; <i16> [#uses=1]
%promote = sext i16 %tmp to i32 ; <i32> [#uses=1]
%tmp1 = add i32 1, %promote ; <i32> [#uses=1]
%tmp2 = load i32* %Y ; <i32> [#uses=1]
%tmp3 = add i32 %tmp1, %tmp2 ; <i32> [#uses=1]
ret i32 %tmp3
Look at the amazing sign extension, so much happier than an assertion failure. :)
llvm-svn: 39565
9.4 KiB
9.4 KiB