-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
ICE with simd_cast #39720
Comments
This appears to be an LLVM bug. The following reduced LLVM IR file triggers the crash on both Rust's LLVM fork, and LLVM 3.9. It appears to be fixed on LLVM 4.0
From what I've discovered so far, the bug is related to LLVM's x86 platform code performing this optimization on the LLVM selection DAG:
I'm going to investigate this further, and see if I can determine what was changed in LLVM 4.0 to fix this. |
It turns out that this bug was already fixed in LLVM: See https://reviews.llvm.org/D25790 and https://reviews.llvm.org/D25268. The rust-llvm-2016-10-29 branch of Rust's LLVM fork doesn't include these fixes, however, the rust-llvm-2017-04-13. I don't know exactly what the Rust team's procedure is for updating LLVM, but this issue should be resolved when the rust-llvm-2017-04-13 branch is in use. |
Cannot reproduce today (we are on llvm 4.0 now), marking E-needstest. I believe this'll need a run-pass test since compile-fail with rustc_error I believe doesn't run LLVM (which is where the problem occurs, presumably). |
…lacrum Add tests for issues with the E-needstest label Fixes rust-lang#19181. Fixes rust-lang#29516. Fixes rust-lang#29798. Fixes rust-lang#33504. Fixes rust-lang#34780. Fixes rust-lang#39211. Fixes rust-lang#39467. Fixes rust-lang#39720.
When casting from i8x3 -> i16x3 there's an ICE on
rustc 1.17.0-nightly (24a70eb59 2017-02-09)
Test case: https://gist.github.com/rawrasaur/27a3e624e5a6e071bc4e9059795fd97b
It seems to trigger when the width is 3, the source is not a float, and in size is smaller than the out size. Clang handles this case fine in its __builtin_convertvector.
The text was updated successfully, but these errors were encountered: