fn permute2<'tcx>(
ecx: &mut MiriInterpCx<'tcx>,
left: &OpTy<'tcx>,
indices: &OpTy<'tcx>,
right: &OpTy<'tcx>,
dest: &MPlaceTy<'tcx>,
) -> InterpResult<'tcx, ()>Expand description
Shuffle elements from two source registers (left and right) using
the corresponding index in indices, and store the results in dest.
For a vector with N lanes, the low log2(N) bits of each index select a
lane within a source vector. Bit log2(N) selects the source vector (0 =>
left, 1 => right), and all higher bits are ignored.
Equivalently, lane i of the result is copied from
src[indices[i] & (N - 1)] where
src = if indices[i] & N == 0 { left } else { right }.