Test codegen for repr(packed,simd) -> repr(simd)#125904
Test codegen for repr(packed,simd) -> repr(simd)#125904bors merged 1 commit intorust-lang:masterfrom
repr(packed,simd) -> repr(simd)#125904Conversation
0692047 to
485add7
Compare
|
thank you for taking care of all the codegen |
…, r=calebzulawski Test codegen for `repr(packed,simd)` -> `repr(simd)` This adds the codegen test originally requested in rust-lang#117116 but exploiting the collection of features in FileCheck and compiletest to make it more resilient to expectations being broken by optimization levels. Mostly by presetting optimization levels for each revision of the tests. I do not think the dereferenceable attribute's presence or absence is that important. r? `@calebzulawski`
This comment has been minimized.
This comment has been minimized.
|
💔 Test failed - checks-actions |
|
fascinating. |
485fa43 to
9987363
Compare
|
Slight tweak to manage the nopt builder having an even-more-unexpected test configuration. |
|
@bors r=calebzulawski |
|
☀️ Test successful - checks-actions |
|
Finished benchmarking commit (621e957): comparison URL. Overall result: ✅ improvements - no action needed@rustbot label: -perf-regression Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)Results (primary 3.4%, secondary 3.1%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResults (primary -1.0%, secondary 2.5%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 667.71s -> 670.518s (0.42%) |
doubt.jpg |
| // CHECK: [[VREG:%[a-z0-9_]+]] = fmul <3 x float> | ||
| // CHECK-NEXT: store <3 x float> [[VREG]], ptr [[RET_VREG]], [[RET_ALIGN]] | ||
| // CHECK-NEXT: ret void | ||
| unsafe { intrinsics::simd_mul(x, x) } |
There was a problem hiding this comment.
This calls simd_mul on FullSimd, which is not what rust-lang/portable-simd#422 does I think -- there the intrinsics are called on packed SIMD types. Conveniently that means they work without any other adjustments in Miri. ;)
Is there any need for simd_mul and other intrinsics to be used on types with padding?
There was a problem hiding this comment.
There are some crates that use length-3 vectors with the repr_simd unstable feature. I've also played around with the idea of making the layout configurable in std::simd, though I haven't really decided if that's actually beneficial. So, I'd lean towards not necessary but a possibility
There was a problem hiding this comment.
It's a nightly-only feature so breaking those crates is an option. I guess the question is whether there's any advantage to the types that have padding.
Is that tracked anywhere? If not, can you open an issue?
This adds the codegen test originally requested in #117116 but exploiting the collection of features in FileCheck and compiletest to make it more resilient to expectations being broken by optimization levels. Mostly by presetting optimization levels for each revision of the tests.
I do not think the dereferenceable attribute's presence or absence is that important.
r? @calebzulawski