Generalize vector shuffling to accept any operand.

The arguments get legalized to Reg or Mem, so we can allow constants
as well (including undef values). This change makes all instruction's
source arguments Ice::Operands.

BUG=swiftshader:24

Change-Id: I1659cdfdb1b8a12c4acc7c473211d8a67bfd5868
Reviewed-on: https://chromium-review.googlesource.com/418504
Reviewed-by: Jim Stichnoth <stichnot@chromium.org>
5 files changed