Subzero. Rematerializes shufflevector instructions.

This CL is a first step towards optimizing vector shuffles in
Subzero.

PNaCl bitcode does not support the shufflevector instruction,
so pnacl-clang emits a series of extractelement/insertelement.
pnacl-llc is then responsible for performing a pattern match
on the output bitcode and rematerialize the shufflevector.

With this CL, we enable shufflevector rematerialization in
Subzero. To keep this CL simple, we introduce no efficient
shufflevector lowering. Instead, we scalarize the
rematerialized instructions.

BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4136
R=stichnot@chromium.org

Review URL: https://codereview.chromium.org/1897243002 .
diff --git a/src/IceTargetLowering.h b/src/IceTargetLowering.h
index 2c7adc8..88de3d5 100644
--- a/src/IceTargetLowering.h
+++ b/src/IceTargetLowering.h
@@ -387,6 +387,7 @@
   virtual void lowerPhi(const InstPhi *Instr) = 0;
   virtual void lowerRet(const InstRet *Instr) = 0;
   virtual void lowerSelect(const InstSelect *Instr) = 0;
+  virtual void lowerShuffleVector(const InstShuffleVector *Instr) = 0;
   virtual void lowerStore(const InstStore *Instr) = 0;
   virtual void lowerSwitch(const InstSwitch *Instr) = 0;
   virtual void lowerUnreachable(const InstUnreachable *Instr) = 0;