# Function miri::shims::x86::shift_simd_by_scalar

source ยท ```
fn shift_simd_by_scalar<'tcx>(
this: &mut MiriInterpCx<'tcx>,
left: &OpTy<'tcx>,
right: &OpTy<'tcx>,
which: ShiftOp,
dest: &MPlaceTy<'tcx>,
) -> InterpResult<'tcx, ()>
```

## Expand description

Shifts each element of `left`

by a scalar amount. The shift amount
is determined by the lowest 64 bits of `right`

(which is a 128-bit vector).

For logic shifts, when right is larger than BITS - 1, zero is produced. For arithmetic right-shifts, when right is larger than BITS - 1, the sign bit is copied to all bits.