Skip to content

Conversation

folkertdev
Copy link
Contributor

r? @sayantn

btw the tracking issue mentions wrapping_funnel_{shl,shr} but those are not actually implemented (yet?).

unsafe fn vec_sld<const C: u32>(self, b: Self) -> Self {
static_assert_uimm_bits!(C, 4);
transmute(funnel_shl_u128(transmute(self), transmute(b), const { C as u128 * 8 }))
transmute(u128::funnel_shl(transmute(self), transmute(b), const { C * 8 }))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these const blocks needed here? Is LLVM not propagating const status?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that's a bit of an artifact of using the s390x intrinsic originally, where you had to manually make sure that you passed a const or else llvm would panic. It looks like they can be removed now, everything still works without them (as expected, really).

@folkertdev folkertdev force-pushed the s390x-vector-funnel-shift branch from 33b732a to d8c08f7 Compare September 6, 2025 12:31
@folkertdev folkertdev force-pushed the s390x-vector-funnel-shift branch from d8c08f7 to 9985832 Compare September 6, 2025 12:33
@sayantn sayantn added this pull request to the merge queue Sep 6, 2025
Merged via the queue into rust-lang:master with commit edcf75d Sep 6, 2025
63 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants