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; +}