-
Notifications
You must be signed in to change notification settings - Fork 89
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: Kani compiler crashes when initializing a SIMD struct #2590
Comments
We will be moving exclusively to the arrays in the future as our internal representation of these types, per this accepted MCP: Just a bit of work to do to make that actually happen. |
That's good to know. I have to say, it is much cleaner. Thanks @workingjubilee for the heads up! |
We've also discussed (rust-lang/stdarch#1422 (comment)) disallowing field projections into SIMD entirely, thus requiring it to go through If you think that would be good or bad for you, please let us know. |
Hi @scottmcm, from our tool perspective, this will simplify our code generation. From a Rust user perspective, I'm curious to see how this restriction will look like, but I also think it's probably for the best since it will forbid a bunch of invalid usages that we've seen so far. |
I tried this code:
using the following command line invocation:
with Kani version: 0.31.0 (dev)
I expected to see this happen: Harness should succeed
Instead, this happened: Kani failed to compile the code due to an ICE.
Stack backtrace:
It seems that inside
codegen_rvalue_aggregate
we are assuming that the SIMD structure hasLANES
elements of typeT
. However, it is legal for the type to have an array[T; LANES]
.For example, that is how portable-simd uses the SIMD representation:
The text was updated successfully, but these errors were encountered: