Closed
Description
this function:
declare void @mumble(i32)
define i32 @f(i32 %0) {
%2 = sub nuw i32 0, %0
call void @mumble(i32 %2)
%3 = sub i32 1, %0
%4 = sub i32 3, %0
%5 = mul i32 %0, 1
%6 = add i32 %3, %5
%7 = add i32 %6, %4
ret i32 %7
}
is getting lowered to always return 4:
_f:
stp x29, x30, [sp, #-16]!
mov w0, wzr
bl _mumble
mov w0, #4
ldp x29, x30, [sp], #16
ret
but that's not right. for example, f(9)
should give -5