macro_rules! wrap_bitshift {
    ($lhs:ident, $rhs:ident, {$simd_call:ident}, $int:ident) => { ... };
}
🔬This is a nightly-only experimental API. (portable_simd #86656)
Expand description

SAFETY: This macro should not be used for anything except Shl or Shr, and passed the appropriate shift intrinsic. It handles performing a bitand in addition to calling the shift operator, so that the result is well-defined: LLVM can return a poison value if you shl, lshr, or ashr if rhs >= <Int>::BITS At worst, this will maybe add another instruction and cycle, at best, it may open up more optimization opportunities, or simply be elided entirely, especially for SIMD ISAs which default to this.