In r131488 I misunderstood how VREV works. It splits the vector in half and splits each half. Therefore, the real problem was that we were using a VREV64 for a 4xi16, when we should have been using a VREV32.
Updated test case and reverted change to the PerfectShuffle Table.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131529 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/PerfectShuffle/PerfectShuffle.cpp b/utils/PerfectShuffle/PerfectShuffle.cpp
index dd48180..98f8f4c 100644
--- a/utils/PerfectShuffle/PerfectShuffle.cpp
+++ b/utils/PerfectShuffle/PerfectShuffle.cpp
@@ -520,7 +520,7 @@
 };
 
 struct vrev : public Operator {
-  vrev() : Operator(0x3210, "vrev", OP_VREV) {}
+  vrev() : Operator(0x1032, "vrev", OP_VREV) {}
 } the_vrev;
 
 template<unsigned Elt>