Work around an issue where usize and isize can sometimes (but not
always) get canonicalized to their corresponding integer type. This
causes shuffle_vector to panic, since the types of the vectors it got
passed aren't the same.
Also insert a cast on the mask element, since we might get passed a
signed integer of any size, not just i32. For now, we always cast to
i32.
Signed-off-by: Andy Sadler <andrewsadler122@gmail.com>