-
Notifications
You must be signed in to change notification settings - Fork 13.3k
mips64
crashes or hangs on 128 bit division
#116440
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Is this a duplicate of #116177? (Are we using shifts to do the division) |
yes shifts are used internally, but when I saw that issue I assumed it only applied to the 32 bit version, if 64 bit MIPS is also affected it should be noted |
I ran the reproducer for #116177 and as far as I can tell it succeeds on |
maybe the reproducer needs to have its widths doubled to a 128 bit shift, a 64 bit shift would need a single instruction on mips64 |
I adjusted the reproducer for the other issue a bit into this, which does not pass the assert with your use std::hint::black_box;
const SHIFTVALUE: i128 = u64::MAX as i128;
fn main() {
fn shiftleft(a: i128, b: i128) -> i128 {
a << b
}
assert_eq!(
shiftleft(black_box(SHIFTVALUE), black_box(2)),
SHIFTVALUE << 2
);
} So I now think this is a duplicate of #116177. Do you agree? |
yes, this should be closed then and the 64 bit version mentioned in the other thread? |
This target either crashes or hangs with different arguments to a 128 bit division
this happens with
cross run --target mips64-unknown-linux-gnuabi64 -Z build-std=core,alloc,proc_macro,std
, but I don't know how to get the version thatcross
is using, also #115218 .The text was updated successfully, but these errors were encountered: