miri::shims::x86

Function 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.