preseve SIMD element type information#155005
Draft
folkertdev wants to merge 1 commit intorust-lang:mainfrom
Draft
preseve SIMD element type information#155005folkertdev wants to merge 1 commit intorust-lang:mainfrom
folkertdev wants to merge 1 commit intorust-lang:mainfrom
Conversation
This comment has been minimized.
This comment has been minimized.
c1444a0 to
05b0368
Compare
This comment has been minimized.
This comment has been minimized.
and provide it to LLVM for better optimization
05b0368 to
93d1e47
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Preserve the SIMD element type and provide it to LLVM for better optimization.
This is relevant for AArch64 types like
int16x4x2_t, see also llvm/llvm-project#181514. Such types are defined like so:Previously this would be translated to the opaque
[2 x <8 x i8>], with this PR it is instead[2 x <4 x i16>]. That change is not relevant for the ABI, but using the correct type prevents bitcasts that can (indeed, do) confuse the LLVM pattern matcher.This change will make it possible to implement the deinterleaving loads on AArch64 in a portable way (without neon-specific intrinsics), which means that e.g. Miri or the cranelift backend can run them without additional support.