[NVPTX] SHL.64 $r, 31 cannot be converted to a mulwide.s32
In order to convert to mulwide.s32, we compute the 2nd operand as MulWide.32 $r, (1 << 31). (1 << 31) is interpreted as a negative number, and is not equivalent to the original instruction. The code `int64_t r = (int64_t)a << 31;` incorrectly compiled to `mul.wide.s32 %rd7, %r1, -2147483648;` Reviewed By: jchlanda Differential Revision: https://reviews.llvm.org/D132516
Loading
Please sign in to comment