-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
hexagon: Add HVX target features #151500
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
hexagon: Add HVX target features #151500
Conversation
This comment has been minimized.
This comment has been minimized.
This will be used in order to emit HVX intrinsics
4d4740c to
8c1e51f
Compare
|
@rustbot reroll |
|
@rustbot reroll |
|
r? me |
|
These are added for use in We've had some trouble with feature flags that influence ABI in the past (e.g. vector registers, softfloat). Do any of these features change the ABI at all? (doesn't look like it, just checking) |
The existing Not sure if I covered the concern but I can clarify in more detail and refer to the ABI spec and the backend behavior to help cover anything I left out. |
|
Right, that one's already in. A different way to phrase what I'm asking: for each of these new features, if I had an object that was compiled with the feature, and one without (but it still enables implied features), and linked them together, would that cause UB? For vector registers that is the case, because the two sides would disagree on how vector values are passed. But it sounds like |
It's safe to mix object files of varying
Yes, exactly. Footnote/aside - there's a clang feature that's pending that will distinguish between some of the HVX Vector types, it rejects assignments among float/integer types because of some precision loss when they're used with certain opcodes. The precision that's lost in this case is uarch state beyond the scope of the architecturally-visible vector register, so again here should be no impact to the ABI. I'll see about making a corresponding Rust feature and types when that lands in clang. |
|
Cool, this should be good then @bors r+ |
…r=folkertdev hexagon: Add HVX target features This will be used in order to emit HVX intrinsics
Rollup of 8 pull requests Successful merges: - #150556 (Add Tier 3 Thumb-mode targets for Armv7-A, Armv7-R and Armv8-R) - #151346 (add `simd_splat` intrinsic) - #151500 (hexagon: Add HVX target features) - #151505 (Various refactors to the proc_macro bridge) - #151517 (Enable reproducible binary builds with debuginfo on Linux) - #151482 (Add "Skip to main content" link for keyboard navigation in rustdoc) - #151489 (constify boolean methods) - #151551 (Don't use default build-script fingerprinting in `test`) r? @ghost
…r=folkertdev hexagon: Add HVX target features This will be used in order to emit HVX intrinsics
Rollup of 8 pull requests Successful merges: - #150556 (Add Tier 3 Thumb-mode targets for Armv7-A, Armv7-R and Armv8-R) - #151500 (hexagon: Add HVX target features) - #151505 (Various refactors to the proc_macro bridge) - #151517 (Enable reproducible binary builds with debuginfo on Linux) - #151482 (Add "Skip to main content" link for keyboard navigation in rustdoc) - #151489 (constify boolean methods) - #151551 (Don't use default build-script fingerprinting in `test`) - #151555 (Fix compilation of std/src/sys/pal/uefi/tests.rs) r? @ghost
…r=folkertdev hexagon: Add HVX target features This will be used in order to emit HVX intrinsics
…uwer Rollup of 8 pull requests Successful merges: - #150556 (Add Tier 3 Thumb-mode targets for Armv7-A, Armv7-R and Armv8-R) - #151259 (Fix is_ascii performance regression on AVX-512 CPUs when compiling with -C target-cpu=native) - #151500 (hexagon: Add HVX target features) - #151517 (Enable reproducible binary builds with debuginfo on Linux) - #151482 (Add "Skip to main content" link for keyboard navigation in rustdoc) - #151489 (constify boolean methods) - #151551 (Don't use default build-script fingerprinting in `test`) - #151555 (Fix compilation of std/src/sys/pal/uefi/tests.rs) r? @ghost
Rollup merge of #151500 - androm3da:bcain/hexagon_hvx_feat, r=folkertdev hexagon: Add HVX target features This will be used in order to emit HVX intrinsics
This will be used in order to emit HVX intrinsics