Add vsrn and vzip unit tests
Part of the vsrn tests are not introduced for now due to HW bug.
Bug: 307590638
Change-Id: I7478afd55a9eb375581dc2ffbf6c3f530276fa84
diff --git a/tests/kelvin_isa/BUILD b/tests/kelvin_isa/BUILD
index 0ea0bc7..5320b6f 100644
--- a/tests/kelvin_isa/BUILD
+++ b/tests/kelvin_isa/BUILD
@@ -221,3 +221,24 @@
":kelvin_test",
],
)
+
+kelvin_test(
+ name = "vsrn",
+ srcs = [
+ "vsrn.cc",
+ ],
+ deps = [
+ ":kelvin_test",
+ ],
+)
+
+kelvin_test(
+ name = "vzip",
+ srcs = [
+ "vzip.cc",
+ ],
+ hw_test_size = "small",
+ deps = [
+ ":kelvin_test",
+ ],
+)
diff --git a/tests/kelvin_isa/vsrn.cc b/tests/kelvin_isa/vsrn.cc
new file mode 100644
index 0000000..f0d6a9c
--- /dev/null
+++ b/tests/kelvin_isa/vsrn.cc
@@ -0,0 +1,1306 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "tests/kelvin_isa/kelvin_test.h"
+
+// clang-format off
+#define test_alun_b_vx(op, in0, in1, ref) \
+{ \
+ uint8_t dut[VLENB] __attribute__((aligned(64))) = {0xcc}; \
+ vdup_h_x(v0, in0); \
+ __asm__ __volatile__(ARGS_F_A_A_A(op, v2, v0, %0) : : "r"(in1)); \
+ vst_b_x(v2, dut); \
+ if (ref != dut[0]) { \
+ printf("**error(%d)[%s] %04x %04x : %02x %02x\n", \
+ __LINE__, op, in0, in1, ref, dut[0]); \
+ exit(-1); \
+ } \
+}
+
+#define test_alun_h_vx(op, in0, in1, ref) \
+{ \
+ uint16_t dut[VLENH] __attribute__((aligned(64))) = {0xcccc}; \
+ vdup_w_x(v0, in0); \
+ __asm__ __volatile__(ARGS_F_A_A_A(op, v2, v0, %0) : : "r"(in1)); \
+ vst_h_x(v2, dut); \
+ if (ref != dut[0]) { \
+ printf("**error(%d)[%s] %08x %08x : %04x %04x\n", \
+ __LINE__, op, in0, in1, ref, dut[0]); \
+ exit(-1); \
+ } \
+}
+
+#define test_aluq_b_vx(op, in0, in1, ref) \
+{ \
+ uint8_t dut[VLENB] __attribute__((aligned(64))) = {0xcc}; \
+ vdup_w_x(v0, in0); \
+ __asm__ __volatile__(ARGS_F_A_A_A(op, v2, v0, %0) : : "r"(in1)); \
+ vst_b_x(v2, dut); \
+ if (ref != dut[0]) { \
+ printf("**error(%d)[%s] %08x %02x : %02x %02x\n", \
+ __LINE__, op, in0, in1, ref, dut[0]); \
+ exit(-1); \
+ } \
+}
+
+// clang-format on
+
+void test_vsraqs() {
+ const uint32_t in[16] = {0x0000006e, 0xffffffda, 0x00000097, 0xfffffcde,
+ 0xffffff66, 0xfffffcba, 0x00000006, 0xffffff64,
+ 0x0000019a, 0x000001b2, 0xffffff9e, 0x00000234,
+ 0xffffff7c, 0x00000013, 0xffffff35, 0x000000a3};
+ const uint8_t ref[16] = {0x03, 0x0d, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x01,
+ 0x05, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x05};
+ uint8_t dut[16];
+
+ vld_w_l_xx(v0, in + 0, 4);
+ vld_w_l_xx(v1, in + 4, 4);
+ vld_w_l_xx(v2, in + 8, 4);
+ vld_w_l_xx(v3, in + 12, 4);
+ vsraqsu_b_r_vx(v0, v0, 5);
+ vst_b_l_xx(v0, dut + 0, 16);
+
+ for (int i = 0; i < 16; ++i) {
+ const uint8_t r = ref[i];
+ const uint8_t d = dut[i];
+ if (r != d) {
+ printf("**test_vsraqs(%d) %02x %02x\n", i, r, d);
+ exit(-1);
+ }
+ }
+}
+
+int main() {
+ // TODO(b/307590638): Re-Enable vsransu/vsraqsu tests.
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x00, 0x7f);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x01, 0x66);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x02, 0x33);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x03, 0x19);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x04, 0x0c);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x05, 0x06);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x06, 0x03);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x07, 0x01);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x08, 0x00);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x09, 0x00);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x0a, 0x00);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x0b, 0x00);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x0c, 0x00);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x0d, 0x00);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x0e, 0x00);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0x0f, 0x00);
+ test_alun_b_vx("vsrans.b.vx", 0x00cd, 0xf0, 0x7f);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x00, 0x7f);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x01, 0x7f);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x02, 0x7f);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x03, 0x7f);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x04, 0x7f);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x05, 0x7f);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x06, 0x7f);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x07, 0x7f);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x08, 0x67);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x09, 0x33);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x0a, 0x19);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x0b, 0x0c);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x0c, 0x06);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x0d, 0x03);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x0e, 0x01);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0x0f, 0x00);
+ test_alun_b_vx("vsrans.b.vx", 0x6789, 0xf0, 0x7f);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x00, 0x80);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x01, 0x80);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x02, 0x80);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x03, 0x80);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x04, 0x80);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x05, 0x80);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x06, 0x80);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x07, 0x80);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x08, 0x98);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x09, 0xcc);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x0a, 0xe6);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x0b, 0xf3);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x0c, 0xf9);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x0d, 0xfc);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x0e, 0xfe);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0x0f, 0xff);
+ test_alun_b_vx("vsrans.b.vx", 0x9876, 0xf0, 0x80);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x00, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x01, 0x65d4);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x02, 0x32ea);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x03, 0x1975);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x04, 0x0cba);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x05, 0x065d);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x06, 0x032e);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x07, 0x0197);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x08, 0x00cb);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x09, 0x0065);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x0a, 0x0032);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x0b, 0x0019);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x0c, 0x000c);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x0d, 0x0006);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x0e, 0x0003);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x0f, 0x0001);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x10, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x11, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x12, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x13, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x14, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x15, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x16, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x17, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x18, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x19, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x1a, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x1b, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x1c, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x1d, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x1e, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0x1f, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x0000cba9, 0xe0, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x00, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x01, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x02, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x03, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x04, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x05, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x06, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x07, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x08, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x09, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x0a, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x0b, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x0c, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x0d, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x0e, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x0f, 0x468a);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x10, 0x2345);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x11, 0x11a2);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x12, 0x08d1);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x13, 0x0468);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x14, 0x0234);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x15, 0x011a);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x16, 0x008d);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x17, 0x0046);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x18, 0x0023);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x19, 0x0011);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x1a, 0x0008);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x1b, 0x0004);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x1c, 0x0002);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x1d, 0x0001);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x1e, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0x1f, 0x0000);
+ test_alun_h_vx("vsrans.h.vx", 0x23456789, 0xe0, 0x7fff);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x00, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x00, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x01, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x02, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x03, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x04, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x05, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x06, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x07, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x08, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x09, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x0a, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x0b, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x0c, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x0d, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x0e, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x0f, 0x8000);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x10, 0x9876);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x11, 0xcc3b);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x12, 0xe61d);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x13, 0xf30e);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x14, 0xf987);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x15, 0xfcc3);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x16, 0xfe61);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x17, 0xff30);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x18, 0xff98);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x19, 0xffcc);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x1a, 0xffe6);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x1b, 0xfff3);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x1c, 0xfff9);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x1d, 0xfffc);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x1e, 0xfffe);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0x1f, 0xffff);
+ test_alun_h_vx("vsrans.h.vx", 0x98765432, 0xe0, 0x8000);
+
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x00, 0x7f);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x01, 0x67);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x02, 0x33);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x03, 0x1a);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x04, 0x0d);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x05, 0x06);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x06, 0x03);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x07, 0x02);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x08, 0x01);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x09, 0x00);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x0a, 0x00);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x0b, 0x00);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x0c, 0x00);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x0d, 0x00);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x0e, 0x00);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0x0f, 0x00);
+ test_alun_b_vx("vsrans.b.r.vx", 0x00cd, 0xf0, 0x7f);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x00, 0x7f);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x01, 0x7f);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x02, 0x7f);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x03, 0x7f);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x04, 0x7f);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x05, 0x7f);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x06, 0x7f);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x07, 0x7f);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x08, 0x68);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x09, 0x34);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x0a, 0x1a);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x0b, 0x0d);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x0c, 0x06);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x0d, 0x03);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x0e, 0x02);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0x0f, 0x01);
+ test_alun_b_vx("vsrans.b.r.vx", 0x6789, 0xf0, 0x7f);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x00, 0x80);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x01, 0x80);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x02, 0x80);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x03, 0x80);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x04, 0x80);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x05, 0x80);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x06, 0x80);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x07, 0x80);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x08, 0x98);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x09, 0xcc);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x0a, 0xe6);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x0b, 0xf3);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x0c, 0xfa);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x0d, 0xfd);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x0e, 0xfe);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0x0f, 0xff);
+ test_alun_b_vx("vsrans.b.r.vx", 0x9876, 0xf0, 0x80);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x00, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x01, 0x65d5);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x02, 0x32ea);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x03, 0x1975);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x04, 0x0cbb);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x05, 0x065d);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x06, 0x032f);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x07, 0x0197);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x08, 0x00cc);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x09, 0x0066);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x0a, 0x0033);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x0b, 0x0019);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x0c, 0x000d);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x0d, 0x0006);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x0e, 0x0003);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x0f, 0x0002);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x10, 0x0001);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x11, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x12, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x13, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x14, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x15, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x16, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x17, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x18, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x19, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x1a, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x1b, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x1c, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x1d, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x1e, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0x1f, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x0000cba9, 0xe0, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x00, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x01, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x02, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x03, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x04, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x05, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x06, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x07, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x08, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x09, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x0a, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x0b, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x0c, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x0d, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x0e, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x0f, 0x468b);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x10, 0x2345);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x11, 0x11a3);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x12, 0x08d1);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x13, 0x0469);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x14, 0x0234);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x15, 0x011a);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x16, 0x008d);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x17, 0x0047);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x18, 0x0023);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x19, 0x0012);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x1a, 0x0009);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x1b, 0x0004);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x1c, 0x0002);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x1d, 0x0001);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x1e, 0x0001);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0x1f, 0x0000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x23456789, 0xe0, 0x7fff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x00, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x00, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x01, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x02, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x03, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x04, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x05, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x06, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x07, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x08, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x09, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x0a, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x0b, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x0c, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x0d, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x0e, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x0f, 0x8000);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x10, 0x9876);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x11, 0xcc3b);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x12, 0xe61e);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x13, 0xf30f);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x14, 0xf987);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x15, 0xfcc4);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x16, 0xfe62);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x17, 0xff31);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x18, 0xff98);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x19, 0xffcc);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x1a, 0xffe6);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x1b, 0xfff3);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x1c, 0xfffa);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x1d, 0xfffd);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x1e, 0xfffe);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0x1f, 0xffff);
+ test_alun_h_vx("vsrans.h.r.vx", 0x98765432, 0xe0, 0x8000);
+
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x00, 0xcd);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x01, 0x66);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x02, 0x33);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x03, 0x19);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x04, 0x0c);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x05, 0x06);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x06, 0x03);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x07, 0x01);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x08, 0x00);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x09, 0x00);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x0a, 0x00);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x0b, 0x00);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x0c, 0x00);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x0d, 0x00);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x0e, 0x00);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0x0f, 0x00);
+ test_alun_b_vx("vsransu.b.vx", 0x00cd, 0xf0, 0xcd);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x00, 0xff);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x01, 0xff);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x02, 0xff);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x03, 0xff);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x04, 0xff);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x05, 0xff);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x06, 0xff);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x07, 0xcf);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x08, 0x67);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x09, 0x33);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x0a, 0x19);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x0b, 0x0c);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x0c, 0x06);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x0d, 0x03);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x0e, 0x01);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0x0f, 0x00);
+ test_alun_b_vx("vsransu.b.vx", 0x6789, 0xf0, 0xff);
+
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x00, 0xcba9);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x01, 0x65d4);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x02, 0x32ea);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x03, 0x1975);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x04, 0x0cba);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x05, 0x065d);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x06, 0x032e);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x07, 0x0197);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x08, 0x00cb);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x09, 0x0065);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x0a, 0x0032);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x0b, 0x0019);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x0c, 0x000c);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x0d, 0x0006);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x0e, 0x0003);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x0f, 0x0001);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x10, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x11, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x12, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x13, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x14, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x15, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x16, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x17, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x18, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x19, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x1a, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x1b, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x1c, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x1d, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x1e, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0x1f, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x0000cba9, 0xe0, 0xcba9);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x00, 0xffff);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x01, 0xffff);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x02, 0xffff);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x03, 0xffff);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x04, 0xffff);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x05, 0xffff);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x06, 0xffff);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x07, 0xffff);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x08, 0xffff);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x09, 0xffff);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x0a, 0xffff);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x0b, 0xffff);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x0c, 0xffff);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x0d, 0xffff);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x0e, 0x8d15);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x0f, 0x468a);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x10, 0x2345);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x11, 0x11a2);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x12, 0x08d1);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x13, 0x0468);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x14, 0x0234);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x15, 0x011a);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x16, 0x008d);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x17, 0x0046);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x18, 0x0023);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x19, 0x0011);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x1a, 0x0008);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x1b, 0x0004);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x1c, 0x0002);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x1d, 0x0001);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x1e, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0x1f, 0x0000);
+ test_alun_h_vx("vsransu.h.vx", 0x23456789, 0xe0, 0xffff);
+
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x00, 0xcd);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x01, 0x67);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x02, 0x33);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x03, 0x1a);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x04, 0x0d);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x05, 0x06);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x06, 0x03);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x07, 0x02);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x08, 0x01);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x09, 0x00);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x0a, 0x00);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x0b, 0x00);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x0c, 0x00);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x0d, 0x00);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x0e, 0x00);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0x0f, 0x00);
+ test_alun_b_vx("vsransu.b.r.vx", 0x00cd, 0xf0, 0xcd);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x00, 0xff);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x01, 0xff);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x02, 0xff);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x03, 0xff);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x04, 0xff);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x05, 0xff);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x06, 0xff);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x07, 0xcf);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x08, 0x68);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x09, 0x34);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x0a, 0x1a);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x0b, 0x0d);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x0c, 0x06);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x0d, 0x03);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x0e, 0x02);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0x0f, 0x01);
+ test_alun_b_vx("vsransu.b.r.vx", 0x6789, 0xf0, 0xff);
+
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x00, 0xcba9);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x01, 0x65d5);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x02, 0x32ea);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x03, 0x1975);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x04, 0x0cbb);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x05, 0x065d);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x06, 0x032f);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x07, 0x0197);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x08, 0x00cc);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x09, 0x0066);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x0a, 0x0033);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x0b, 0x0019);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x0c, 0x000d);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x0d, 0x0006);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x0e, 0x0003);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x0f, 0x0002);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x10, 0x0001);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x11, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x12, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x13, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x14, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x15, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x16, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x17, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x18, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x19, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x1a, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x1b, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x1c, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x1d, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x1e, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0x1f, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x0000cba9, 0xe0, 0xcba9);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x00, 0xffff);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x01, 0xffff);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x02, 0xffff);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x03, 0xffff);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x04, 0xffff);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x05, 0xffff);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x06, 0xffff);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x07, 0xffff);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x08, 0xffff);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x09, 0xffff);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x0a, 0xffff);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x0b, 0xffff);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x0c, 0xffff);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x0d, 0xffff);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x0e, 0x8d16);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x0f, 0x468b);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x10, 0x2345);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x11, 0x11a3);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x12, 0x08d1);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x13, 0x0469);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x14, 0x0234);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x15, 0x011a);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x16, 0x008d);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x17, 0x0047);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x18, 0x0023);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x19, 0x0012);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x1a, 0x0009);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x1b, 0x0004);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x1c, 0x0002);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x1d, 0x0001);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x1e, 0x0001);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0x1f, 0x0000);
+ test_alun_h_vx("vsransu.h.r.vx", 0x23456789, 0xe0, 0xffff);
+
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x00, 0x12);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x01, 0x09);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x02, 0x04);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x03, 0x02);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x04, 0x01);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x05, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x06, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x07, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x08, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x09, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x0a, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x0b, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x0c, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x0d, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x0e, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x0f, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x10, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x11, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x12, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x13, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x14, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x15, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x16, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x17, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x18, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x19, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00000012, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x00, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x01, 0x66);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x02, 0x33);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x03, 0x19);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x04, 0x0c);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x05, 0x06);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x06, 0x03);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x07, 0x01);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x08, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x09, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x0a, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x0b, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x0c, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x0d, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x0e, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x0f, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x10, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x11, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x12, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x13, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x14, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x15, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x16, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x17, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x18, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x19, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x000000cd, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x00, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x01, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x02, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x03, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x04, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x05, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x06, 0x48);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x07, 0x24);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x08, 0x12);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x09, 0x09);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x0a, 0x04);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x0b, 0x02);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x0c, 0x01);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x0d, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x0e, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x0f, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x10, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x11, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x12, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x13, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x14, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x15, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x16, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x17, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x18, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x19, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x00001234, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x00, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x01, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x02, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x03, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x04, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x05, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x06, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x07, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x08, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x09, 0x55);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x0a, 0x2a);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x0b, 0x15);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x0c, 0x0a);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x0d, 0x05);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x0e, 0x02);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x0f, 0x01);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x10, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x11, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x12, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x13, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x14, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x15, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x16, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x17, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x18, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x19, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x0000abcd, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x00, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x01, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x02, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x03, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x04, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x05, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x06, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x07, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x08, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x09, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x0a, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x0b, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x0c, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x0d, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x0e, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x0f, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x10, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x11, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x12, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x13, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x14, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x15, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x16, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x17, 0x7f);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x18, 0x67);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x19, 0x33);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x1a, 0x19);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x1b, 0x0c);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x1c, 0x06);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x1d, 0x03);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x1e, 0x01);
+ test_aluq_b_vx("vsraqs.b.vx", 0x6789abcd, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x00, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x01, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x02, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x03, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x04, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x05, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x06, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x07, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x08, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x09, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x0a, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x0b, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x0c, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x0d, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x0e, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x0f, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x10, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x11, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x12, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x13, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x14, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x15, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x16, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x17, 0x80);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x18, 0xba);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x19, 0xdd);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x1a, 0xee);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x1b, 0xf7);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x1c, 0xfb);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x1d, 0xfd);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x1e, 0xfe);
+ test_aluq_b_vx("vsraqs.b.vx", 0xba987654, 0x1f, 0xff);
+
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x00, 0x12);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x01, 0x09);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x02, 0x05);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x03, 0x02);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x04, 0x01);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x05, 0x01);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x06, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x07, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x08, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x09, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x0a, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x0b, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x0c, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x0d, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x0e, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x0f, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x10, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x11, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x12, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x13, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x14, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x15, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x16, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x17, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x18, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x19, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00000012, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x00, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x01, 0x67);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x02, 0x33);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x03, 0x1a);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x04, 0x0d);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x05, 0x06);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x06, 0x03);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x07, 0x02);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x08, 0x01);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x09, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x0a, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x0b, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x0c, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x0d, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x0e, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x0f, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x10, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x11, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x12, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x13, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x14, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x15, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x16, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x17, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x18, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x19, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x000000cd, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x00, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x01, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x02, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x03, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x04, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x05, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x06, 0x49);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x07, 0x24);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x08, 0x12);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x09, 0x09);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x0a, 0x05);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x0b, 0x02);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x0c, 0x01);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x0d, 0x01);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x0e, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x0f, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x10, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x11, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x12, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x13, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x14, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x15, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x16, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x17, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x18, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x19, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x00001234, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x00, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x01, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x02, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x03, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x04, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x05, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x06, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x07, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x08, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x09, 0x56);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x0a, 0x2b);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x0b, 0x15);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x0c, 0x0b);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x0d, 0x05);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x0e, 0x03);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x0f, 0x01);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x10, 0x01);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x11, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x12, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x13, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x14, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x15, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x16, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x17, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x18, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x19, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x0000abcd, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x00, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x01, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x02, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x03, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x04, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x05, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x06, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x07, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x08, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x09, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x0a, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x0b, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x0c, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x0d, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x0e, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x0f, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x10, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x11, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x12, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x13, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x14, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x15, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x16, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x17, 0x7f);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x18, 0x68);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x19, 0x34);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x1a, 0x1a);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x1b, 0x0d);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x1c, 0x06);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x1d, 0x03);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x1e, 0x02);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0x6789abcd, 0x1f, 0x01);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x00, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x01, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x02, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x03, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x04, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x05, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x06, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x07, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x08, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x09, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x0a, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x0b, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x0c, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x0d, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x0e, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x0f, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x10, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x11, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x12, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x13, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x14, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x15, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x16, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x17, 0x80);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x18, 0xbb);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x19, 0xdd);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x1a, 0xef);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x1b, 0xf7);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x1c, 0xfc);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x1d, 0xfe);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x1e, 0xff);
+ test_aluq_b_vx("vsraqs.b.r.vx", 0xba987654, 0x1f, 0xff);
+
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x00, 0x12);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x01, 0x09);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x02, 0x04);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x03, 0x02);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x04, 0x01);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x05, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x06, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x07, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x08, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x09, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x0a, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x0b, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x0c, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x0d, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x0e, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x0f, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x10, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x11, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x12, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x13, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x14, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x15, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x16, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x17, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x18, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x19, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00000012, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x00, 0xcd);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x01, 0x66);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x02, 0x33);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x03, 0x19);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x04, 0x0c);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x05, 0x06);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x06, 0x03);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x07, 0x01);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x08, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x09, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x0a, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x0b, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x0c, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x0d, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x0e, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x0f, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x10, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x11, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x12, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x13, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x14, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x15, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x16, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x17, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x18, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x19, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x000000cd, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x00, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x01, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x02, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x03, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x04, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x05, 0x91);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x06, 0x48);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x07, 0x24);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x08, 0x12);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x09, 0x09);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x0a, 0x04);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x0b, 0x02);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x0c, 0x01);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x0d, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x0e, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x0f, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x10, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x11, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x12, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x13, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x14, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x15, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x16, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x17, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x18, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x19, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x00001234, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x00, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x01, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x02, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x03, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x04, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x05, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x06, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x07, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x08, 0xab);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x09, 0x55);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x0a, 0x2a);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x0b, 0x15);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x0c, 0x0a);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x0d, 0x05);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x0e, 0x02);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x0f, 0x01);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x10, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x11, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x12, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x13, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x14, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x15, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x16, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x17, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x18, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x19, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x0000abcd, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x00, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x01, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x02, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x03, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x04, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x05, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x06, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x07, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x08, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x09, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x0a, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x0b, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x0c, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x0d, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x0e, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x0f, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x10, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x11, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x12, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x13, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x14, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x15, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x16, 0xff);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x17, 0xcf);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x18, 0x67);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x19, 0x33);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x1a, 0x19);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x1b, 0x0c);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x1c, 0x06);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x1d, 0x03);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x1e, 0x01);
+ test_aluq_b_vx("vsraqsu.b.vx", 0x6789abcd, 0x1f, 0x00);
+
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x00, 0x12);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x01, 0x09);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x02, 0x05);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x03, 0x02);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x04, 0x01);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x05, 0x01);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x06, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x07, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x08, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x09, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x0a, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x0b, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x0c, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x0d, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x0e, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x0f, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x10, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x11, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x12, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x13, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x14, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x15, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x16, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x17, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x18, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x19, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00000012, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x00, 0xcd);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x01, 0x67);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x02, 0x33);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x03, 0x1a);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x04, 0x0d);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x05, 0x06);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x06, 0x03);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x07, 0x02);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x08, 0x01);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x09, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x0a, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x0b, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x0c, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x0d, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x0e, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x0f, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x10, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x11, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x12, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x13, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x14, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x15, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x16, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x17, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x18, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x19, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x000000cd, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x00, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x01, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x02, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x03, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x04, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x05, 0x92);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x06, 0x49);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x07, 0x24);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x08, 0x12);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x09, 0x09);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x0a, 0x05);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x0b, 0x02);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x0c, 0x01);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x0d, 0x01);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x0e, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x0f, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x10, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x11, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x12, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x13, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x14, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x15, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x16, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x17, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x18, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x19, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x00001234, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x00, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x01, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x02, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x03, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x04, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x05, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x06, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x07, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x08, 0xac);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x09, 0x56);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x0a, 0x2b);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x0b, 0x15);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x0c, 0x0b);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x0d, 0x05);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x0e, 0x03);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x0f, 0x01);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x10, 0x01);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x11, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x12, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x13, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x14, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x15, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x16, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x17, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x18, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x19, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x1a, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x1b, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x1c, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x1d, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x1e, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x0000abcd, 0x1f, 0x00);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x00, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x01, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x02, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x03, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x04, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x05, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x06, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x07, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x08, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x09, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x0a, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x0b, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x0c, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x0d, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x0e, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x0f, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x10, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x11, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x12, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x13, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x14, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x15, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x16, 0xff);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x17, 0xcf);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x18, 0x68);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x19, 0x34);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x1a, 0x1a);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x1b, 0x0d);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x1c, 0x06);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x1d, 0x03);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x1e, 0x02);
+ test_aluq_b_vx("vsraqsu.b.r.vx", 0x6789abcd, 0x1f, 0x01);
+
+ return 0;
+}
diff --git a/tests/kelvin_isa/vzip.cc b/tests/kelvin_isa/vzip.cc
new file mode 100644
index 0000000..58c8975
--- /dev/null
+++ b/tests/kelvin_isa/vzip.cc
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "crt/printf_traits.h"
+#include "tests/kelvin_isa/kelvin_test.h"
+
+#define vzip_vv(T, Vd, Vs, Vt) \
+ { \
+ if (sizeof(T) == 1) { \
+ vzip_b_vv(Vd, Vs, Vt); \
+ } \
+ if (sizeof(T) == 2) { \
+ vzip_h_vv(Vd, Vs, Vt); \
+ } \
+ if (sizeof(T) == 4) { \
+ vzip_w_vv(Vd, Vs, Vt); \
+ } \
+ }
+
+#define vzip_vv_m(T, Vd, Vs, Vt) \
+ { \
+ if (sizeof(T) == 1) { \
+ vzip_b_vv_m(Vd, Vs, Vt); \
+ } \
+ if (sizeof(T) == 2) { \
+ vzip_h_vv_m(Vd, Vs, Vt); \
+ } \
+ if (sizeof(T) == 4) { \
+ vzip_w_vv_m(Vd, Vs, Vt); \
+ } \
+ }
+
+template <typename T>
+static void test_vzip() {
+ constexpr int n = sizeof(T);
+ int lanes;
+ getmaxvl(T, lanes);
+
+ T inp[2][lanes] __attribute__((aligned(64)));
+ T ref[2][lanes] __attribute__((aligned(64)));
+ T dut[2][lanes] __attribute__((aligned(64)));
+
+ for (int i = 0; i < lanes; ++i) {
+ inp[0][i] = (0x40 << (8 * (n - 1))) + i;
+ inp[1][i] = (0x80 << (8 * (n - 1))) + i;
+ }
+
+ for (int i = 0; i < lanes; ++i) {
+ int m = i / 2;
+ int n = i / 2 + lanes / 2;
+ ref[0][i] = i & 1 ? inp[1][m] : inp[0][m];
+ ref[1][i] = i & 1 ? inp[1][n] : inp[0][n];
+ }
+
+ vld_x(T, v2, inp[0]);
+ vld_x(T, v3, inp[1]);
+ vzip_vv(T, v0, v2, v3);
+ vst_x(T, v0, dut[0]);
+ vst_x(T, v1, dut[1]);
+
+ for (int j = 0; j < 2; ++j) {
+ for (int i = 0; i < lanes; ++i) {
+ if (ref[j][i] != dut[j][i]) {
+ printf("**error vzip_vv[%d,%d] ", j, i);
+ printf(PrintfTraits<T>::kFmtHex, ref[j][i]);
+ printf(" ");
+ printf(PrintfTraits<T>::kFmtHex, dut[j][i]);
+ printf("\n");
+ exit(-1);
+ }
+ }
+ }
+}
+
+template <typename T>
+static void test_vzip_m() {
+ constexpr int n = sizeof(T);
+ int lanes;
+ getmaxvl_m(T, lanes);
+
+ T inp[2][1024] __attribute__((aligned(64)));
+ T ref[2][1024] __attribute__((aligned(64)));
+ T dut[2][1024] __attribute__((aligned(64)));
+
+ for (int i = 0; i < lanes; ++i) {
+ inp[0][i] = (0x40 << (8 * (n - 1))) + i;
+ inp[1][i] = (0x80 << (8 * (n - 1))) + i;
+ }
+
+ for (int i = 0; i < lanes; ++i) {
+ int m = i / 2;
+ int n = i / 2 + lanes / 2;
+ ref[0][i] = i & 1 ? inp[1][m] : inp[0][m];
+ ref[1][i] = i & 1 ? inp[1][n] : inp[0][n];
+ }
+
+ vld_x_m(T, v8, inp[0]);
+ vld_x_m(T, v12, inp[1]);
+ vzip_vv_m(T, v0, v8, v12);
+ vst_x_m(T, v0, dut[0]);
+ vst_x_m(T, v4, dut[1]);
+
+ for (int j = 0; j < 2; ++j) {
+ for (int i = 0; i < lanes; ++i) {
+ if (ref[j][i] != dut[j][i]) {
+ printf("**error vzip_vv_m[%d,%d] ", j, i);
+ printf(PrintfTraits<T>::kFmtHex, ref[j][i]);
+ printf(" ");
+ printf(PrintfTraits<T>::kFmtHex, dut[j][i]);
+ printf("\n");
+ exit(-1);
+ }
+ }
+ }
+}
+
+int main() {
+ test_vzip<int8_t>();
+ test_vzip<int16_t>();
+ test_vzip<int32_t>();
+
+ test_vzip_m<int8_t>();
+ test_vzip_m<int16_t>();
+ test_vzip_m<int32_t>();
+
+ return 0;
+}