When performing unsigned multiplication on Linux/GCC, the code incorrectly cast constant.i64 (which is a signed int64_t) to unsigned __int128. This caused sign extension when the value should be treated as unsigned.
When performing unsigned multiplication on Linux/GCC, the code incorrectly cast constant.i64 (which is a signed int64_t) to unsigned __int128. This caused sign extension when the value should be treated as unsigned.