blob: de80ade57ddb128a19beb358013580280b165133 [file] [log] [blame]
/*
* 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"
int main() {
test_alu_b_vx("vsll.b.vx", 0x89, 0x00, 0x89);
test_alu_b_vx("vsll.b.vx", 0x89, 0x01, 0x12);
test_alu_b_vx("vsll.b.vx", 0x89, 0x02, 0x24);
test_alu_b_vx("vsll.b.vx", 0x89, 0x04, 0x90);
test_alu_b_vx("vsll.b.vx", 0x89, 0x07, 0x80);
test_alu_b_vx("vsll.b.vx", 0x89, 0xf8, 0x89);
test_alu_h_vx("vsll.h.vx", 0x6789, 0x00, 0x6789);
test_alu_h_vx("vsll.h.vx", 0x6789, 0x01, 0xcf12);
test_alu_h_vx("vsll.h.vx", 0x6789, 0x02, 0x9e24);
test_alu_h_vx("vsll.h.vx", 0x6789, 0x04, 0x7890);
test_alu_h_vx("vsll.h.vx", 0x6789, 0x08, 0x8900);
test_alu_h_vx("vsll.h.vx", 0x6789, 0x0f, 0x8000);
test_alu_h_vx("vsll.h.vx", 0x6789, 0xf0, 0x6789);
test_alu_w_vx("vsll.w.vx", 0x23456789, 0x00, 0x23456789);
test_alu_w_vx("vsll.w.vx", 0x23456789, 0x01, 0x468acf12);
test_alu_w_vx("vsll.w.vx", 0x23456789, 0x02, 0x8d159e24);
test_alu_w_vx("vsll.w.vx", 0x23456789, 0x04, 0x34567890);
test_alu_w_vx("vsll.w.vx", 0x23456789, 0x08, 0x45678900);
test_alu_w_vx("vsll.w.vx", 0x23456789, 0x10, 0x67890000);
test_alu_w_vx("vsll.w.vx", 0x23456789, 0x1f, 0x80000000);
test_alu_w_vx("vsll.w.vx", 0x23456789, 0xe0, 0x23456789);
test_alu_b_vx("vsra.b.vx", 0x67, 0x00, 0x67);
test_alu_b_vx("vsra.b.vx", 0x67, 0x01, 0x33);
test_alu_b_vx("vsra.b.vx", 0x67, 0x02, 0x19);
test_alu_b_vx("vsra.b.vx", 0x67, 0x04, 0x06);
test_alu_b_vx("vsra.b.vx", 0x67, 0x07, 0x00);
test_alu_b_vx("vsra.b.vx", 0x67, 0xf8, 0x67);
test_alu_b_vx("vsra.b.vx", 0x98, 0x00, 0x98);
test_alu_b_vx("vsra.b.vx", 0x98, 0x01, 0xcc);
test_alu_b_vx("vsra.b.vx", 0x98, 0x02, 0xe6);
test_alu_b_vx("vsra.b.vx", 0x98, 0x04, 0xf9);
test_alu_b_vx("vsra.b.vx", 0x98, 0x07, 0xff);
test_alu_b_vx("vsra.b.vx", 0x98, 0xf8, 0x98);
test_alu_h_vx("vsra.h.vx", 0x6789, 0x00, 0x6789);
test_alu_h_vx("vsra.h.vx", 0x6789, 0x01, 0x33c4);
test_alu_h_vx("vsra.h.vx", 0x6789, 0x02, 0x19e2);
test_alu_h_vx("vsra.h.vx", 0x6789, 0x04, 0x0678);
test_alu_h_vx("vsra.h.vx", 0x6789, 0x08, 0x0067);
test_alu_h_vx("vsra.h.vx", 0x6789, 0x0f, 0x0000);
test_alu_h_vx("vsra.h.vx", 0x6789, 0xf0, 0x6789);
test_alu_h_vx("vsra.h.vx", 0x9876, 0x00, 0x9876);
test_alu_h_vx("vsra.h.vx", 0x9876, 0x01, 0xcc3b);
test_alu_h_vx("vsra.h.vx", 0x9876, 0x02, 0xe61d);
test_alu_h_vx("vsra.h.vx", 0x9876, 0x04, 0xf987);
test_alu_h_vx("vsra.h.vx", 0x9876, 0x08, 0xff98);
test_alu_h_vx("vsra.h.vx", 0x9876, 0x0f, 0xffff);
test_alu_h_vx("vsra.h.vx", 0x9876, 0xf0, 0x9876);
test_alu_w_vx("vsra.w.vx", 0x23456789, 0x00, 0x23456789);
test_alu_w_vx("vsra.w.vx", 0x23456789, 0x01, 0x11a2b3c4);
test_alu_w_vx("vsra.w.vx", 0x23456789, 0x02, 0x08d159e2);
test_alu_w_vx("vsra.w.vx", 0x23456789, 0x04, 0x02345678);
test_alu_w_vx("vsra.w.vx", 0x23456789, 0x08, 0x00234567);
test_alu_w_vx("vsra.w.vx", 0x23456789, 0x10, 0x00002345);
test_alu_w_vx("vsra.w.vx", 0x23456789, 0x1f, 0x00000000);
test_alu_w_vx("vsra.w.vx", 0x23456789, 0xe0, 0x23456789);
test_alu_w_vx("vsra.w.vx", 0x98765432, 0x00, 0x98765432);
test_alu_w_vx("vsra.w.vx", 0x98765432, 0x01, 0xcc3b2a19);
test_alu_w_vx("vsra.w.vx", 0x98765432, 0x02, 0xe61d950c);
test_alu_w_vx("vsra.w.vx", 0x98765432, 0x04, 0xf9876543);
test_alu_w_vx("vsra.w.vx", 0x98765432, 0x08, 0xff987654);
test_alu_w_vx("vsra.w.vx", 0x98765432, 0x10, 0xffff9876);
test_alu_w_vx("vsra.w.vx", 0x98765432, 0x1f, 0xffffffff);
test_alu_w_vx("vsra.w.vx", 0x98765432, 0xe0, 0x98765432);
test_alu_b_vx("vsrl.b.vx", 0x67, 0x00, 0x67);
test_alu_b_vx("vsrl.b.vx", 0x67, 0x01, 0x33);
test_alu_b_vx("vsrl.b.vx", 0x67, 0x02, 0x19);
test_alu_b_vx("vsrl.b.vx", 0x67, 0x04, 0x06);
test_alu_b_vx("vsrl.b.vx", 0x67, 0x07, 0x00);
test_alu_b_vx("vsrl.b.vx", 0x67, 0xf8, 0x67);
test_alu_b_vx("vsrl.b.vx", 0x98, 0x00, 0x98);
test_alu_b_vx("vsrl.b.vx", 0x98, 0x01, 0x4c);
test_alu_b_vx("vsrl.b.vx", 0x98, 0x02, 0x26);
test_alu_b_vx("vsrl.b.vx", 0x98, 0x04, 0x09);
test_alu_b_vx("vsrl.b.vx", 0x98, 0x07, 0x01);
test_alu_b_vx("vsrl.b.vx", 0x98, 0xf8, 0x98);
test_alu_h_vx("vsrl.h.vx", 0x6789, 0x00, 0x6789);
test_alu_h_vx("vsrl.h.vx", 0x6789, 0x01, 0x33c4);
test_alu_h_vx("vsrl.h.vx", 0x6789, 0x02, 0x19e2);
test_alu_h_vx("vsrl.h.vx", 0x6789, 0x04, 0x0678);
test_alu_h_vx("vsrl.h.vx", 0x6789, 0x08, 0x0067);
test_alu_h_vx("vsrl.h.vx", 0x6789, 0x0f, 0x0000);
test_alu_h_vx("vsrl.h.vx", 0x6789, 0xf0, 0x6789);
test_alu_h_vx("vsrl.h.vx", 0x9876, 0x00, 0x9876);
test_alu_h_vx("vsrl.h.vx", 0x9876, 0x01, 0x4c3b);
test_alu_h_vx("vsrl.h.vx", 0x9876, 0x02, 0x261d);
test_alu_h_vx("vsrl.h.vx", 0x9876, 0x04, 0x0987);
test_alu_h_vx("vsrl.h.vx", 0x9876, 0x08, 0x0098);
test_alu_h_vx("vsrl.h.vx", 0x9876, 0x0f, 0x0001);
test_alu_h_vx("vsrl.h.vx", 0x9876, 0xf0, 0x9876);
test_alu_w_vx("vsrl.w.vx", 0x23456789, 0x00, 0x23456789);
test_alu_w_vx("vsrl.w.vx", 0x23456789, 0x01, 0x11a2b3c4);
test_alu_w_vx("vsrl.w.vx", 0x23456789, 0x02, 0x08d159e2);
test_alu_w_vx("vsrl.w.vx", 0x23456789, 0x04, 0x02345678);
test_alu_w_vx("vsrl.w.vx", 0x23456789, 0x08, 0x00234567);
test_alu_w_vx("vsrl.w.vx", 0x23456789, 0x10, 0x00002345);
test_alu_w_vx("vsrl.w.vx", 0x23456789, 0x1f, 0x00000000);
test_alu_w_vx("vsrl.w.vx", 0x23456789, 0xe0, 0x23456789);
test_alu_w_vx("vsrl.w.vx", 0x98765432, 0x00, 0x98765432);
test_alu_w_vx("vsrl.w.vx", 0x98765432, 0x01, 0x4c3b2a19);
test_alu_w_vx("vsrl.w.vx", 0x98765432, 0x02, 0x261d950c);
test_alu_w_vx("vsrl.w.vx", 0x98765432, 0x04, 0x09876543);
test_alu_w_vx("vsrl.w.vx", 0x98765432, 0x08, 0x00987654);
test_alu_w_vx("vsrl.w.vx", 0x98765432, 0x10, 0x00009876);
test_alu_w_vx("vsrl.w.vx", 0x98765432, 0x1f, 0x00000001);
test_alu_w_vx("vsrl.w.vx", 0x98765432, 0xe0, 0x98765432);
test_alu_b_vx("vsha.b.vx", 0x12, 0x00, 0x12);
test_alu_b_vx("vsha.b.vx", 0x12, 0x01, 0x09);
test_alu_b_vx("vsha.b.vx", 0x12, 0xff, 0x24);
test_alu_b_vx("vsha.b.vx", 0x12, 0x02, 0x04);
test_alu_b_vx("vsha.b.vx", 0x12, 0xfe, 0x48);
test_alu_b_vx("vsha.b.vx", 0x12, 0x04, 0x01);
test_alu_b_vx("vsha.b.vx", 0x12, 0xfc, 0x7f);
test_alu_b_vx("vsha.b.vx", 0x12, 0x07, 0x00);
test_alu_b_vx("vsha.b.vx", 0x12, 0xf9, 0x7f);
test_alu_b_vx("vsha.b.vx", 0x12, 0x08, 0x00);
test_alu_b_vx("vsha.b.vx", 0x12, 0xf8, 0x7f);
test_alu_b_vx("vsha.b.vx", 0x12, 0x09, 0x00);
test_alu_b_vx("vsha.b.vx", 0x12, 0xf7, 0x7f);
test_alu_b_vx("vsha.b.vx", 0xed, 0x00, 0xed);
test_alu_b_vx("vsha.b.vx", 0xed, 0x01, 0xf6);
test_alu_b_vx("vsha.b.vx", 0xed, 0xff, 0xda);
test_alu_b_vx("vsha.b.vx", 0xed, 0x02, 0xfb);
test_alu_b_vx("vsha.b.vx", 0xed, 0xfe, 0xb4);
test_alu_b_vx("vsha.b.vx", 0xed, 0x04, 0xfe);
test_alu_b_vx("vsha.b.vx", 0xed, 0xfc, 0x80);
test_alu_b_vx("vsha.b.vx", 0xed, 0x07, 0xff);
test_alu_b_vx("vsha.b.vx", 0xed, 0xf9, 0x80);
test_alu_b_vx("vsha.b.vx", 0xed, 0x08, 0xff);
test_alu_b_vx("vsha.b.vx", 0xed, 0xf8, 0x80);
test_alu_b_vx("vsha.b.vx", 0xed, 0x09, 0xff);
test_alu_b_vx("vsha.b.vx", 0xed, 0xf7, 0x80);
test_alu_b_vx("vsha.b.vx", 0x00, 0x07, 0x00);
test_alu_b_vx("vsha.b.vx", 0x00, 0xf9, 0x00);
test_alu_b_vx("vsha.b.vx", 0x00, 0x08, 0x00);
test_alu_b_vx("vsha.b.vx", 0x00, 0xf8, 0x00);
test_alu_b_vx("vsha.b.vx", 0x00, 0x09, 0x00);
test_alu_b_vx("vsha.b.vx", 0x00, 0xf7, 0x00);
test_alu_b_vx("vsha.b.vx", 0x01, 0x06, 0x00);
test_alu_b_vx("vsha.b.vx", 0x01, 0xfa, 0x40);
test_alu_b_vx("vsha.b.vx", 0x01, 0x07, 0x00);
test_alu_b_vx("vsha.b.vx", 0x01, 0xf9, 0x7f);
test_alu_b_vx("vsha.b.vx", 0x01, 0x08, 0x00);
test_alu_b_vx("vsha.b.vx", 0x01, 0xf8, 0x7f);
test_alu_b_vx("vsha.b.vx", 0x01, 0x09, 0x00);
test_alu_b_vx("vsha.b.vx", 0x01, 0xf7, 0x7f);
test_alu_b_vx("vsha.b.vx", 0xff, 0x06, 0xff);
test_alu_b_vx("vsha.b.vx", 0xff, 0xfa, 0xc0);
test_alu_b_vx("vsha.b.vx", 0xff, 0x07, 0xff);
test_alu_b_vx("vsha.b.vx", 0xff, 0xf9, 0x80);
test_alu_b_vx("vsha.b.vx", 0xff, 0x08, 0xff);
test_alu_b_vx("vsha.b.vx", 0xff, 0xf8, 0x80);
test_alu_b_vx("vsha.b.vx", 0xff, 0x09, 0xff);
test_alu_b_vx("vsha.b.vx", 0xff, 0xf7, 0x80);
test_alu_h_vx("vsha.h.vx", 0x0012, 0x0000, 0x0012);
test_alu_h_vx("vsha.h.vx", 0x0012, 0x0001, 0x0009);
test_alu_h_vx("vsha.h.vx", 0x0012, 0xffff, 0x0024);
test_alu_h_vx("vsha.h.vx", 0x0012, 0x0002, 0x0004);
test_alu_h_vx("vsha.h.vx", 0x0012, 0xfffe, 0x0048);
test_alu_h_vx("vsha.h.vx", 0x0012, 0x0004, 0x0001);
test_alu_h_vx("vsha.h.vx", 0x0012, 0xfffc, 0x0120);
test_alu_h_vx("vsha.h.vx", 0x0012, 0x0008, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0012, 0xfff8, 0x1200);
test_alu_h_vx("vsha.h.vx", 0x0012, 0x000f, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0012, 0xfff1, 0x7fff);
test_alu_h_vx("vsha.h.vx", 0x0012, 0x0010, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0012, 0xfff0, 0x7fff);
test_alu_h_vx("vsha.h.vx", 0x0012, 0x0011, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0012, 0xffef, 0x7fff);
test_alu_h_vx("vsha.h.vx", 0xffed, 0x0000, 0xffed);
test_alu_h_vx("vsha.h.vx", 0xffed, 0x0001, 0xfff6);
test_alu_h_vx("vsha.h.vx", 0xffed, 0xffff, 0xffda);
test_alu_h_vx("vsha.h.vx", 0xffed, 0x0002, 0xfffb);
test_alu_h_vx("vsha.h.vx", 0xffed, 0xfffe, 0xffb4);
test_alu_h_vx("vsha.h.vx", 0xffed, 0x0004, 0xfffe);
test_alu_h_vx("vsha.h.vx", 0xffed, 0xfffc, 0xfed0);
test_alu_h_vx("vsha.h.vx", 0xffed, 0x0008, 0xffff);
test_alu_h_vx("vsha.h.vx", 0xffed, 0xfff8, 0xed00);
test_alu_h_vx("vsha.h.vx", 0xffed, 0x000f, 0xffff);
test_alu_h_vx("vsha.h.vx", 0xffed, 0xfff1, 0x8000);
test_alu_h_vx("vsha.h.vx", 0xffed, 0x0010, 0xffff);
test_alu_h_vx("vsha.h.vx", 0xffed, 0xfff0, 0x8000);
test_alu_h_vx("vsha.h.vx", 0xffed, 0x0011, 0xffff);
test_alu_h_vx("vsha.h.vx", 0xffed, 0xffef, 0x8000);
test_alu_h_vx("vsha.h.vx", 0x0000, 0x0007, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0000, 0xfff9, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0000, 0x0008, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0000, 0xfff8, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0000, 0x0009, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0000, 0xfff7, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0000, 0x000e, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0000, 0xfff2, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0000, 0x000f, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0000, 0xfff1, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0000, 0x0010, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0000, 0xfff0, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0000, 0x0011, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0000, 0xffef, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0001, 0x0007, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0001, 0xfff9, 0x0080);
test_alu_h_vx("vsha.h.vx", 0x0001, 0x0008, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0001, 0xfff8, 0x0100);
test_alu_h_vx("vsha.h.vx", 0x0001, 0x0009, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0001, 0xfff7, 0x0200);
test_alu_h_vx("vsha.h.vx", 0x0001, 0x000e, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0001, 0xfff2, 0x4000);
test_alu_h_vx("vsha.h.vx", 0x0001, 0x000f, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0001, 0xfff1, 0x7fff);
test_alu_h_vx("vsha.h.vx", 0x0001, 0x0010, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0001, 0xfff0, 0x7fff);
test_alu_h_vx("vsha.h.vx", 0x0001, 0x0011, 0x0000);
test_alu_h_vx("vsha.h.vx", 0x0001, 0xffef, 0x7fff);
test_alu_h_vx("vsha.h.vx", 0xffff, 0x0007, 0xffff);
test_alu_h_vx("vsha.h.vx", 0xffff, 0xfff9, 0xff80);
test_alu_h_vx("vsha.h.vx", 0xffff, 0x0008, 0xffff);
test_alu_h_vx("vsha.h.vx", 0xffff, 0xfff8, 0xff00);
test_alu_h_vx("vsha.h.vx", 0xffff, 0x0009, 0xffff);
test_alu_h_vx("vsha.h.vx", 0xffff, 0xfff7, 0xfe00);
test_alu_h_vx("vsha.h.vx", 0xffff, 0x000e, 0xffff);
test_alu_h_vx("vsha.h.vx", 0xffff, 0xfff2, 0xc000);
test_alu_h_vx("vsha.h.vx", 0xffff, 0x000f, 0xffff);
test_alu_h_vx("vsha.h.vx", 0xffff, 0xfff1, 0x8000);
test_alu_h_vx("vsha.h.vx", 0xffff, 0x0010, 0xffff);
test_alu_h_vx("vsha.h.vx", 0xffff, 0xfff0, 0x8000);
test_alu_h_vx("vsha.h.vx", 0xffff, 0x0011, 0xffff);
test_alu_h_vx("vsha.h.vx", 0xffff, 0xffef, 0x8000);
test_alu_w_vx("vsha.w.vx", 0x00000012, 0x00000000, 0x00000012);
test_alu_w_vx("vsha.w.vx", 0x00000012, 0x00000001, 0x00000009);
test_alu_w_vx("vsha.w.vx", 0x00000012, 0xffffffff, 0x00000024);
test_alu_w_vx("vsha.w.vx", 0x00000012, 0x00000002, 0x00000004);
test_alu_w_vx("vsha.w.vx", 0x00000012, 0xfffffffe, 0x00000048);
test_alu_w_vx("vsha.w.vx", 0x00000012, 0x00000004, 0x00000001);
test_alu_w_vx("vsha.w.vx", 0x00000012, 0xfffffffc, 0x00000120);
test_alu_w_vx("vsha.w.vx", 0x00000012, 0x00000008, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000012, 0xfffffff8, 0x00001200);
test_alu_w_vx("vsha.w.vx", 0x00000012, 0x0000000f, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000012, 0xfffffff1, 0x00090000);
test_alu_w_vx("vsha.w.vx", 0x00000012, 0x00000010, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000012, 0xfffffff0, 0x00120000);
test_alu_w_vx("vsha.w.vx", 0x00000012, 0x00000011, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000012, 0xffffffef, 0x00240000);
test_alu_w_vx("vsha.w.vx", 0xffffffed, 0x00000000, 0xffffffed);
test_alu_w_vx("vsha.w.vx", 0xffffffed, 0x00000001, 0xfffffff6);
test_alu_w_vx("vsha.w.vx", 0xffffffed, 0xffffffff, 0xffffffda);
test_alu_w_vx("vsha.w.vx", 0xffffffed, 0x00000002, 0xfffffffb);
test_alu_w_vx("vsha.w.vx", 0xffffffed, 0xfffffffe, 0xffffffb4);
test_alu_w_vx("vsha.w.vx", 0xffffffed, 0x00000004, 0xfffffffe);
test_alu_w_vx("vsha.w.vx", 0xffffffed, 0xfffffffc, 0xfffffed0);
test_alu_w_vx("vsha.w.vx", 0xffffffed, 0x00000008, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffed, 0xfffffff8, 0xffffed00);
test_alu_w_vx("vsha.w.vx", 0xffffffed, 0x0000000f, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffed, 0xfffffff1, 0xfff68000);
test_alu_w_vx("vsha.w.vx", 0xffffffed, 0x00000010, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffed, 0xfffffff0, 0xffed0000);
test_alu_w_vx("vsha.w.vx", 0xffffffed, 0x00000011, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffed, 0xffffffef, 0xffda0000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0x00000007, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0xfffffff9, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0x00000008, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0xfffffff8, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0x00000009, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0xfffffff7, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0x0000000e, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0xfffffff2, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0x0000000f, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0xfffffff1, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0x00000010, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0xfffffff0, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0x00000011, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0xffffffef, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0x0000001e, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0xffffffe2, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0x0000001f, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0xffffffe1, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0x00000020, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0xffffffe0, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0x00000021, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0xffffffdf, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0x0000003e, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0xffffffc2, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0x0000003f, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0xffffffc1, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0x00000040, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0xffffffc0, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0x00000041, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000000, 0xffffffbf, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x00000001, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xffffffff, 0x00000002);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x00000002, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xfffffffe, 0x00000004);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x00000007, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xfffffff9, 0x00000080);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x00000008, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xfffffff8, 0x00000100);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x00000009, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xfffffff7, 0x00000200);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x0000000e, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xfffffff2, 0x00004000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x0000000f, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xfffffff1, 0x00008000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x00000010, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xfffffff0, 0x00010000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x00000011, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xffffffef, 0x00020000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x0000001e, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xffffffe2, 0x40000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x0000001f, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xffffffe1, 0x7fffffff);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x00000020, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xffffffe0, 0x7fffffff);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x00000021, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xffffffdf, 0x7fffffff);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x0000003e, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xffffffc2, 0x7fffffff);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x0000003f, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xffffffc1, 0x7fffffff);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x00000040, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xffffffc0, 0x7fffffff);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0x00000041, 0x00000000);
test_alu_w_vx("vsha.w.vx", 0x00000001, 0xffffffbf, 0x7fffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0x00000007, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0xfffffff9, 0xffffff80);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0x00000008, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0xfffffff8, 0xffffff00);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0x00000009, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0xfffffff7, 0xfffffe00);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0x0000000e, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0xfffffff2, 0xffffc000);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0x0000000f, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0xfffffff1, 0xffff8000);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0x00000010, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0xfffffff0, 0xffff0000);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0x00000011, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0xffffffef, 0xfffe0000);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0x0000001e, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0xffffffe2, 0xc0000000);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0x0000001f, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0xffffffe1, 0x80000000);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0x00000020, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0xffffffe0, 0x80000000);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0x00000021, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0xffffffdf, 0x80000000);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0x0000003e, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0xffffffc2, 0x80000000);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0x0000003f, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0xffffffc1, 0x80000000);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0x00000040, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0xffffffc0, 0x80000000);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0x00000041, 0xffffffff);
test_alu_w_vx("vsha.w.vx", 0xffffffff, 0xffffffbf, 0x80000000);
test_alu_b_vx("vsha.b.r.vx", 0x12, 0x00, 0x12);
test_alu_b_vx("vsha.b.r.vx", 0x12, 0x01, 0x09);
test_alu_b_vx("vsha.b.r.vx", 0x12, 0xff, 0x24);
test_alu_b_vx("vsha.b.r.vx", 0x12, 0x02, 0x05);
test_alu_b_vx("vsha.b.r.vx", 0x12, 0xfe, 0x48);
test_alu_b_vx("vsha.b.r.vx", 0x12, 0x04, 0x01);
test_alu_b_vx("vsha.b.r.vx", 0x12, 0xfc, 0x7f);
test_alu_b_vx("vsha.b.r.vx", 0x12, 0x07, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0x12, 0xf9, 0x7f);
test_alu_b_vx("vsha.b.r.vx", 0x12, 0x08, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0x12, 0xf8, 0x7f);
test_alu_b_vx("vsha.b.r.vx", 0x12, 0x09, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0x12, 0xf7, 0x7f);
test_alu_b_vx("vsha.b.r.vx", 0xed, 0x00, 0xed);
test_alu_b_vx("vsha.b.r.vx", 0xed, 0x01, 0xf7);
test_alu_b_vx("vsha.b.r.vx", 0xed, 0xff, 0xda);
test_alu_b_vx("vsha.b.r.vx", 0xed, 0x02, 0xfb);
test_alu_b_vx("vsha.b.r.vx", 0xed, 0xfe, 0xb4);
test_alu_b_vx("vsha.b.r.vx", 0xed, 0x04, 0xff);
test_alu_b_vx("vsha.b.r.vx", 0xed, 0xfc, 0x80);
test_alu_b_vx("vsha.b.r.vx", 0xed, 0x07, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0xed, 0xf9, 0x80);
test_alu_b_vx("vsha.b.r.vx", 0xed, 0x08, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0xed, 0xf8, 0x80);
test_alu_b_vx("vsha.b.r.vx", 0xed, 0x09, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0xed, 0xf7, 0x80);
test_alu_b_vx("vsha.b.r.vx", 0x00, 0x07, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0x00, 0xf9, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0x00, 0x08, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0x00, 0xf8, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0x00, 0x09, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0x00, 0xf7, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0x01, 0x06, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0x01, 0xfa, 0x40);
test_alu_b_vx("vsha.b.r.vx", 0x01, 0x07, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0x01, 0xf9, 0x7f);
test_alu_b_vx("vsha.b.r.vx", 0x01, 0x08, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0x01, 0xf8, 0x7f);
test_alu_b_vx("vsha.b.r.vx", 0x01, 0x09, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0x01, 0xf7, 0x7f);
test_alu_b_vx("vsha.b.r.vx", 0xff, 0x06, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0xff, 0xfa, 0xc0);
test_alu_b_vx("vsha.b.r.vx", 0xff, 0x07, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0xff, 0xf9, 0x80);
test_alu_b_vx("vsha.b.r.vx", 0xff, 0x08, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0xff, 0xf8, 0x80);
test_alu_b_vx("vsha.b.r.vx", 0xff, 0x09, 0x00);
test_alu_b_vx("vsha.b.r.vx", 0xff, 0xf7, 0x80);
test_alu_h_vx("vsha.h.r.vx", 0x0012, 0x0000, 0x0012);
test_alu_h_vx("vsha.h.r.vx", 0x0012, 0x0001, 0x0009);
test_alu_h_vx("vsha.h.r.vx", 0x0012, 0xffff, 0x0024);
test_alu_h_vx("vsha.h.r.vx", 0x0012, 0x0002, 0x0005);
test_alu_h_vx("vsha.h.r.vx", 0x0012, 0xfffe, 0x0048);
test_alu_h_vx("vsha.h.r.vx", 0x0012, 0x0004, 0x0001);
test_alu_h_vx("vsha.h.r.vx", 0x0012, 0xfffc, 0x0120);
test_alu_h_vx("vsha.h.r.vx", 0x0012, 0x0008, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0012, 0xfff8, 0x1200);
test_alu_h_vx("vsha.h.r.vx", 0x0012, 0x000f, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0012, 0xfff1, 0x7fff);
test_alu_h_vx("vsha.h.r.vx", 0x0012, 0x0010, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0012, 0xfff0, 0x7fff);
test_alu_h_vx("vsha.h.r.vx", 0x0012, 0x0011, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0012, 0xffef, 0x7fff);
test_alu_h_vx("vsha.h.r.vx", 0xffed, 0x0000, 0xffed);
test_alu_h_vx("vsha.h.r.vx", 0xffed, 0x0001, 0xfff7);
test_alu_h_vx("vsha.h.r.vx", 0xffed, 0xffff, 0xffda);
test_alu_h_vx("vsha.h.r.vx", 0xffed, 0x0002, 0xfffb);
test_alu_h_vx("vsha.h.r.vx", 0xffed, 0xfffe, 0xffb4);
test_alu_h_vx("vsha.h.r.vx", 0xffed, 0x0004, 0xffff);
test_alu_h_vx("vsha.h.r.vx", 0xffed, 0xfffc, 0xfed0);
test_alu_h_vx("vsha.h.r.vx", 0xffed, 0x0008, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0xffed, 0xfff8, 0xed00);
test_alu_h_vx("vsha.h.r.vx", 0xffed, 0x000f, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0xffed, 0xfff1, 0x8000);
test_alu_h_vx("vsha.h.r.vx", 0xffed, 0x0010, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0xffed, 0xfff0, 0x8000);
test_alu_h_vx("vsha.h.r.vx", 0xffed, 0x0011, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0xffed, 0xffef, 0x8000);
test_alu_h_vx("vsha.h.r.vx", 0x0000, 0x0007, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0000, 0xfff9, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0000, 0x0008, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0000, 0xfff8, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0000, 0x0009, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0000, 0xfff7, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0000, 0x000e, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0000, 0xfff2, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0000, 0x000f, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0000, 0xfff1, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0000, 0x0010, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0000, 0xfff0, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0000, 0x0011, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0000, 0xffef, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0001, 0x0007, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0001, 0xfff9, 0x0080);
test_alu_h_vx("vsha.h.r.vx", 0x0001, 0x0008, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0001, 0xfff8, 0x0100);
test_alu_h_vx("vsha.h.r.vx", 0x0001, 0x0009, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0001, 0xfff7, 0x0200);
test_alu_h_vx("vsha.h.r.vx", 0x0001, 0x000e, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0001, 0xfff2, 0x4000);
test_alu_h_vx("vsha.h.r.vx", 0x0001, 0x000f, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0001, 0xfff1, 0x7fff);
test_alu_h_vx("vsha.h.r.vx", 0x0001, 0x0010, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0001, 0xfff0, 0x7fff);
test_alu_h_vx("vsha.h.r.vx", 0x0001, 0x0011, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0x0001, 0xffef, 0x7fff);
test_alu_h_vx("vsha.h.r.vx", 0xffff, 0x0007, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0xffff, 0xfff9, 0xff80);
test_alu_h_vx("vsha.h.r.vx", 0xffff, 0x0008, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0xffff, 0xfff8, 0xff00);
test_alu_h_vx("vsha.h.r.vx", 0xffff, 0x0009, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0xffff, 0xfff7, 0xfe00);
test_alu_h_vx("vsha.h.r.vx", 0xffff, 0x000e, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0xffff, 0xfff2, 0xc000);
test_alu_h_vx("vsha.h.r.vx", 0xffff, 0x000f, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0xffff, 0xfff1, 0x8000);
test_alu_h_vx("vsha.h.r.vx", 0xffff, 0x0010, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0xffff, 0xfff0, 0x8000);
test_alu_h_vx("vsha.h.r.vx", 0xffff, 0x0011, 0x0000);
test_alu_h_vx("vsha.h.r.vx", 0xffff, 0xffef, 0x8000);
test_alu_w_vx("vsha.w.r.vx", 0x00000012, 0x00000000, 0x00000012);
test_alu_w_vx("vsha.w.r.vx", 0x00000012, 0x00000001, 0x00000009);
test_alu_w_vx("vsha.w.r.vx", 0x00000012, 0xffffffff, 0x00000024);
test_alu_w_vx("vsha.w.r.vx", 0x00000012, 0x00000002, 0x00000005);
test_alu_w_vx("vsha.w.r.vx", 0x00000012, 0xfffffffe, 0x00000048);
test_alu_w_vx("vsha.w.r.vx", 0x00000012, 0x00000004, 0x00000001);
test_alu_w_vx("vsha.w.r.vx", 0x00000012, 0xfffffffc, 0x00000120);
test_alu_w_vx("vsha.w.r.vx", 0x00000012, 0x00000008, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000012, 0xfffffff8, 0x00001200);
test_alu_w_vx("vsha.w.r.vx", 0x00000012, 0x0000000f, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000012, 0xfffffff1, 0x00090000);
test_alu_w_vx("vsha.w.r.vx", 0x00000012, 0x00000010, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000012, 0xfffffff0, 0x00120000);
test_alu_w_vx("vsha.w.r.vx", 0x00000012, 0x00000011, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000012, 0xffffffef, 0x00240000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffed, 0x00000000, 0xffffffed);
test_alu_w_vx("vsha.w.r.vx", 0xffffffed, 0x00000001, 0xfffffff7);
test_alu_w_vx("vsha.w.r.vx", 0xffffffed, 0xffffffff, 0xffffffda);
test_alu_w_vx("vsha.w.r.vx", 0xffffffed, 0x00000002, 0xfffffffb);
test_alu_w_vx("vsha.w.r.vx", 0xffffffed, 0xfffffffe, 0xffffffb4);
test_alu_w_vx("vsha.w.r.vx", 0xffffffed, 0x00000004, 0xffffffff);
test_alu_w_vx("vsha.w.r.vx", 0xffffffed, 0xfffffffc, 0xfffffed0);
test_alu_w_vx("vsha.w.r.vx", 0xffffffed, 0x00000008, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffed, 0xfffffff8, 0xffffed00);
test_alu_w_vx("vsha.w.r.vx", 0xffffffed, 0x0000000f, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffed, 0xfffffff1, 0xfff68000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffed, 0x00000010, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffed, 0xfffffff0, 0xffed0000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffed, 0x00000011, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffed, 0xffffffef, 0xffda0000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0x00000007, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0xfffffff9, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0x00000008, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0xfffffff8, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0x00000009, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0xfffffff7, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0x0000000e, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0xfffffff2, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0x0000000f, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0xfffffff1, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0x00000010, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0xfffffff0, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0x00000011, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0xffffffef, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0x0000001e, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0xffffffe2, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0x0000001f, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0xffffffe1, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0x00000020, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0xffffffe0, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0x00000021, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0xffffffdf, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0x0000003e, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0xffffffc2, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0x0000003f, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0xffffffc1, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0x00000040, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0xffffffc0, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0x00000041, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000000, 0xffffffbf, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x00000001, 0x00000001);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xffffffff, 0x00000002);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x00000002, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xfffffffe, 0x00000004);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x00000007, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xfffffff9, 0x00000080);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x00000008, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xfffffff8, 0x00000100);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x00000009, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xfffffff7, 0x00000200);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x0000000e, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xfffffff2, 0x00004000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x0000000f, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xfffffff1, 0x00008000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x00000010, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xfffffff0, 0x00010000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x00000011, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xffffffef, 0x00020000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x0000001e, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xffffffe2, 0x40000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x0000001f, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xffffffe1, 0x7fffffff);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x00000020, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xffffffe0, 0x7fffffff);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x00000021, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xffffffdf, 0x7fffffff);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xffffffc3, 0x7fffffff);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x0000003e, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xffffffc2, 0x7fffffff);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x0000003f, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xffffffc1, 0x7fffffff);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x00000040, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xffffffc0, 0x7fffffff);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0x00000041, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0x00000001, 0xffffffbf, 0x7fffffff);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0x00000007, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0xfffffff9, 0xffffff80);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0x00000008, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0xfffffff8, 0xffffff00);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0x00000009, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0xfffffff7, 0xfffffe00);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0x0000000e, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0xfffffff2, 0xffffc000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0x0000000f, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0xfffffff1, 0xffff8000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0x00000010, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0xfffffff0, 0xffff0000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0x00000011, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0xffffffef, 0xfffe0000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0x0000001e, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0xffffffe2, 0xc0000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0x0000001f, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0xffffffe1, 0x80000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0x00000020, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0xffffffe0, 0x80000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0x00000021, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0xffffffdf, 0x80000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0x0000003e, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0xffffffc2, 0x80000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0x0000003f, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0xffffffc1, 0x80000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0x00000040, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0xffffffc0, 0x80000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0x00000041, 0x00000000);
test_alu_w_vx("vsha.w.r.vx", 0xffffffff, 0xffffffbf, 0x80000000);
test_alu_b_vx("vshl.b.vx", 0x12, 0x00, 0x12);
test_alu_b_vx("vshl.b.vx", 0x12, 0x01, 0x09);
test_alu_b_vx("vshl.b.vx", 0x12, 0xff, 0x24);
test_alu_b_vx("vshl.b.vx", 0x12, 0x02, 0x04);
test_alu_b_vx("vshl.b.vx", 0x12, 0xfe, 0x48);
test_alu_b_vx("vshl.b.vx", 0x12, 0x04, 0x01);
test_alu_b_vx("vshl.b.vx", 0x12, 0xfc, 0xff);
test_alu_b_vx("vshl.b.vx", 0x12, 0x07, 0x00);
test_alu_b_vx("vshl.b.vx", 0x12, 0xf9, 0xff);
test_alu_b_vx("vshl.b.vx", 0x12, 0x08, 0x00);
test_alu_b_vx("vshl.b.vx", 0x12, 0xf8, 0xff);
test_alu_b_vx("vshl.b.vx", 0x12, 0x09, 0x00);
test_alu_b_vx("vshl.b.vx", 0x12, 0xf7, 0xff);
test_alu_b_vx("vshl.b.vx", 0xed, 0x00, 0xed);
test_alu_b_vx("vshl.b.vx", 0xed, 0x01, 0x76);
test_alu_b_vx("vshl.b.vx", 0xed, 0xff, 0xff);
test_alu_b_vx("vshl.b.vx", 0xed, 0x02, 0x3b);
test_alu_b_vx("vshl.b.vx", 0xed, 0xfe, 0xff);
test_alu_b_vx("vshl.b.vx", 0xed, 0x04, 0x0e);
test_alu_b_vx("vshl.b.vx", 0xed, 0xfc, 0xff);
test_alu_b_vx("vshl.b.vx", 0xed, 0x07, 0x01);
test_alu_b_vx("vshl.b.vx", 0xed, 0xf9, 0xff);
test_alu_b_vx("vshl.b.vx", 0xed, 0x08, 0x00);
test_alu_b_vx("vshl.b.vx", 0xed, 0xf8, 0xff);
test_alu_b_vx("vshl.b.vx", 0xed, 0x09, 0x00);
test_alu_b_vx("vshl.b.vx", 0xed, 0xf7, 0xff);
test_alu_b_vx("vshl.b.vx", 0x00, 0x07, 0x00);
test_alu_b_vx("vshl.b.vx", 0x00, 0xf9, 0x00);
test_alu_b_vx("vshl.b.vx", 0x00, 0x08, 0x00);
test_alu_b_vx("vshl.b.vx", 0x00, 0xf8, 0x00);
test_alu_b_vx("vshl.b.vx", 0x00, 0x09, 0x00);
test_alu_b_vx("vshl.b.vx", 0x00, 0xf7, 0x00);
test_alu_b_vx("vshl.b.vx", 0x01, 0x06, 0x00);
test_alu_b_vx("vshl.b.vx", 0x01, 0xfa, 0x40);
test_alu_b_vx("vshl.b.vx", 0x01, 0x07, 0x00);
test_alu_b_vx("vshl.b.vx", 0x01, 0xf9, 0x80);
test_alu_b_vx("vshl.b.vx", 0x01, 0x08, 0x00);
test_alu_b_vx("vshl.b.vx", 0x01, 0xf8, 0xff);
test_alu_b_vx("vshl.b.vx", 0x01, 0x09, 0x00);
test_alu_b_vx("vshl.b.vx", 0x01, 0xf7, 0xff);
test_alu_b_vx("vshl.b.vx", 0xff, 0x06, 0x03);
test_alu_b_vx("vshl.b.vx", 0xff, 0xfa, 0xff);
test_alu_b_vx("vshl.b.vx", 0xff, 0x07, 0x01);
test_alu_b_vx("vshl.b.vx", 0xff, 0xf9, 0xff);
test_alu_b_vx("vshl.b.vx", 0xff, 0x08, 0x00);
test_alu_b_vx("vshl.b.vx", 0xff, 0xf8, 0xff);
test_alu_b_vx("vshl.b.vx", 0xff, 0x09, 0x00);
test_alu_b_vx("vshl.b.vx", 0xff, 0xf7, 0xff);
test_alu_h_vx("vshl.h.vx", 0x0012, 0x0000, 0x0012);
test_alu_h_vx("vshl.h.vx", 0x0012, 0x0001, 0x0009);
test_alu_h_vx("vshl.h.vx", 0x0012, 0xffff, 0x0024);
test_alu_h_vx("vshl.h.vx", 0x0012, 0x0002, 0x0004);
test_alu_h_vx("vshl.h.vx", 0x0012, 0xfffe, 0x0048);
test_alu_h_vx("vshl.h.vx", 0x0012, 0x0004, 0x0001);
test_alu_h_vx("vshl.h.vx", 0x0012, 0xfffc, 0x0120);
test_alu_h_vx("vshl.h.vx", 0x0012, 0x0008, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0012, 0xfff8, 0x1200);
test_alu_h_vx("vshl.h.vx", 0x0012, 0x000f, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0012, 0xfff1, 0xffff);
test_alu_h_vx("vshl.h.vx", 0x0012, 0x0010, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0012, 0xfff0, 0xffff);
test_alu_h_vx("vshl.h.vx", 0x0012, 0x0011, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0012, 0xffef, 0xffff);
test_alu_h_vx("vshl.h.vx", 0xffed, 0x0000, 0xffed);
test_alu_h_vx("vshl.h.vx", 0xffed, 0x0001, 0x7ff6);
test_alu_h_vx("vshl.h.vx", 0xffed, 0xffff, 0xffff);
test_alu_h_vx("vshl.h.vx", 0xffed, 0x0002, 0x3ffb);
test_alu_h_vx("vshl.h.vx", 0xffed, 0xfffe, 0xffff);
test_alu_h_vx("vshl.h.vx", 0xffed, 0x0004, 0x0ffe);
test_alu_h_vx("vshl.h.vx", 0xffed, 0xfffc, 0xffff);
test_alu_h_vx("vshl.h.vx", 0xffed, 0x0008, 0x00ff);
test_alu_h_vx("vshl.h.vx", 0xffed, 0xfff8, 0xffff);
test_alu_h_vx("vshl.h.vx", 0xffed, 0x000f, 0x0001);
test_alu_h_vx("vshl.h.vx", 0xffed, 0xfff1, 0xffff);
test_alu_h_vx("vshl.h.vx", 0xffed, 0x0010, 0x0000);
test_alu_h_vx("vshl.h.vx", 0xffed, 0xfff0, 0xffff);
test_alu_h_vx("vshl.h.vx", 0xffed, 0x0011, 0x0000);
test_alu_h_vx("vshl.h.vx", 0xffed, 0xffef, 0xffff);
test_alu_h_vx("vshl.h.vx", 0x0000, 0x0007, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0000, 0xfff9, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0000, 0x0008, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0000, 0xfff8, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0000, 0x0009, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0000, 0xfff7, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0000, 0x000e, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0000, 0xfff2, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0000, 0x000f, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0000, 0xfff1, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0000, 0x0010, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0000, 0xfff0, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0000, 0x0011, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0000, 0xffef, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0001, 0x0007, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0001, 0xfff9, 0x0080);
test_alu_h_vx("vshl.h.vx", 0x0001, 0x0008, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0001, 0xfff8, 0x0100);
test_alu_h_vx("vshl.h.vx", 0x0001, 0x0009, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0001, 0xfff7, 0x0200);
test_alu_h_vx("vshl.h.vx", 0x0001, 0x000e, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0001, 0xfff2, 0x4000);
test_alu_h_vx("vshl.h.vx", 0x0001, 0x000f, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0001, 0xfff1, 0x8000);
test_alu_h_vx("vshl.h.vx", 0x0001, 0x0010, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0001, 0xfff0, 0xffff);
test_alu_h_vx("vshl.h.vx", 0x0001, 0x0011, 0x0000);
test_alu_h_vx("vshl.h.vx", 0x0001, 0xffef, 0xffff);
test_alu_h_vx("vshl.h.vx", 0xffff, 0x0007, 0x01ff);
test_alu_h_vx("vshl.h.vx", 0xffff, 0xfff9, 0xffff);
test_alu_h_vx("vshl.h.vx", 0xffff, 0x0008, 0x00ff);
test_alu_h_vx("vshl.h.vx", 0xffff, 0xfff8, 0xffff);
test_alu_h_vx("vshl.h.vx", 0xffff, 0x0009, 0x007f);
test_alu_h_vx("vshl.h.vx", 0xffff, 0xfff7, 0xffff);
test_alu_h_vx("vshl.h.vx", 0xffff, 0x000e, 0x0003);
test_alu_h_vx("vshl.h.vx", 0xffff, 0xfff2, 0xffff);
test_alu_h_vx("vshl.h.vx", 0xffff, 0x000f, 0x0001);
test_alu_h_vx("vshl.h.vx", 0xffff, 0xfff1, 0xffff);
test_alu_h_vx("vshl.h.vx", 0xffff, 0x0010, 0x0000);
test_alu_h_vx("vshl.h.vx", 0xffff, 0xfff0, 0xffff);
test_alu_h_vx("vshl.h.vx", 0xffff, 0x0011, 0x0000);
test_alu_h_vx("vshl.h.vx", 0xffff, 0xffef, 0xffff);
test_alu_w_vx("vshl.w.vx", 0x00000012, 0x00000000, 0x00000012);
test_alu_w_vx("vshl.w.vx", 0x00000012, 0x00000001, 0x00000009);
test_alu_w_vx("vshl.w.vx", 0x00000012, 0xffffffff, 0x00000024);
test_alu_w_vx("vshl.w.vx", 0x00000012, 0x00000002, 0x00000004);
test_alu_w_vx("vshl.w.vx", 0x00000012, 0xfffffffe, 0x00000048);
test_alu_w_vx("vshl.w.vx", 0x00000012, 0x00000004, 0x00000001);
test_alu_w_vx("vshl.w.vx", 0x00000012, 0xfffffffc, 0x00000120);
test_alu_w_vx("vshl.w.vx", 0x00000012, 0x00000008, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000012, 0xfffffff8, 0x00001200);
test_alu_w_vx("vshl.w.vx", 0x00000012, 0x0000000f, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000012, 0xfffffff1, 0x00090000);
test_alu_w_vx("vshl.w.vx", 0x00000012, 0x00000010, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000012, 0xfffffff0, 0x00120000);
test_alu_w_vx("vshl.w.vx", 0x00000012, 0x00000011, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000012, 0xffffffef, 0x00240000);
test_alu_w_vx("vshl.w.vx", 0xffffffed, 0x00000000, 0xffffffed);
test_alu_w_vx("vshl.w.vx", 0xffffffed, 0x00000001, 0x7ffffff6);
test_alu_w_vx("vshl.w.vx", 0xffffffed, 0xffffffff, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffed, 0x00000002, 0x3ffffffb);
test_alu_w_vx("vshl.w.vx", 0xffffffed, 0xfffffffe, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffed, 0x00000004, 0x0ffffffe);
test_alu_w_vx("vshl.w.vx", 0xffffffed, 0xfffffffc, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffed, 0x00000008, 0x00ffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffed, 0xfffffff8, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffed, 0x0000000f, 0x0001ffff);
test_alu_w_vx("vshl.w.vx", 0xffffffed, 0xfffffff1, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffed, 0x00000010, 0x0000ffff);
test_alu_w_vx("vshl.w.vx", 0xffffffed, 0xfffffff0, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffed, 0x00000011, 0x00007fff);
test_alu_w_vx("vshl.w.vx", 0xffffffed, 0xffffffef, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0x00000007, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0xfffffff9, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0x00000008, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0xfffffff8, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0x00000009, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0xfffffff7, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0x0000000e, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0xfffffff2, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0x0000000f, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0xfffffff1, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0x00000010, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0xfffffff0, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0x00000011, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0xffffffef, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0x0000001e, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0xffffffe2, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0x0000001f, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0xffffffe1, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0x00000020, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0xffffffe0, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0x00000021, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0xffffffdf, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0x0000003e, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0xffffffc2, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0x0000003f, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0xffffffc1, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0x00000040, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0xffffffc0, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0x00000041, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000000, 0xffffffbf, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x00000001, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xffffffff, 0x00000002);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x00000002, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xfffffffe, 0x00000004);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x00000007, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xfffffff9, 0x00000080);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x00000008, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xfffffff8, 0x00000100);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x00000009, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xfffffff7, 0x00000200);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x0000000e, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xfffffff2, 0x00004000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x0000000f, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xfffffff1, 0x00008000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x00000010, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xfffffff0, 0x00010000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x00000011, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xffffffef, 0x00020000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x0000001e, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xffffffe2, 0x40000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x0000001f, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xffffffe1, 0x80000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x00000020, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xffffffe0, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x00000021, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xffffffdf, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x0000003e, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xffffffc2, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x0000003f, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xffffffc1, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x00000040, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xffffffc0, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0x00000041, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0x00000001, 0xffffffbf, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0x00000007, 0x01ffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0xfffffff9, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0x00000008, 0x00ffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0xfffffff8, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0x00000009, 0x007fffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0xfffffff7, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0x0000000e, 0x0003ffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0xfffffff2, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0x0000000f, 0x0001ffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0xfffffff1, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0x00000010, 0x0000ffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0xfffffff0, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0x00000011, 0x00007fff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0xffffffef, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0x0000001e, 0x00000003);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0xffffffe2, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0x0000001f, 0x00000001);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0xffffffe1, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0x00000020, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0xffffffe0, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0x00000021, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0xffffffdf, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0x0000003e, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0xffffffc2, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0x0000003f, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0xffffffc1, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0x00000040, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0xffffffc0, 0xffffffff);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0x00000041, 0x00000000);
test_alu_w_vx("vshl.w.vx", 0xffffffff, 0xffffffbf, 0xffffffff);
test_alu_b_vx("vshl.b.r.vx", 0x12, 0x00, 0x12);
test_alu_b_vx("vshl.b.r.vx", 0x12, 0x01, 0x09);
test_alu_b_vx("vshl.b.r.vx", 0x12, 0xff, 0x24);
test_alu_b_vx("vshl.b.r.vx", 0x12, 0x02, 0x05);
test_alu_b_vx("vshl.b.r.vx", 0x12, 0xfe, 0x48);
test_alu_b_vx("vshl.b.r.vx", 0x12, 0x04, 0x01);
test_alu_b_vx("vshl.b.r.vx", 0x12, 0xfc, 0xff);
test_alu_b_vx("vshl.b.r.vx", 0x12, 0x07, 0x00);
test_alu_b_vx("vshl.b.r.vx", 0x12, 0xf9, 0xff);
test_alu_b_vx("vshl.b.r.vx", 0x12, 0x08, 0x00);
test_alu_b_vx("vshl.b.r.vx", 0x12, 0xf8, 0xff);
test_alu_b_vx("vshl.b.r.vx", 0x12, 0x09, 0x00);
test_alu_b_vx("vshl.b.r.vx", 0x12, 0xf7, 0xff);
test_alu_b_vx("vshl.b.r.vx", 0xed, 0x00, 0xed);
test_alu_b_vx("vshl.b.r.vx", 0xed, 0x01, 0x77);
test_alu_b_vx("vshl.b.r.vx", 0xed, 0xff, 0xff);
test_alu_b_vx("vshl.b.r.vx", 0xed, 0x02, 0x3b);
test_alu_b_vx("vshl.b.r.vx", 0xed, 0xfe, 0xff);
test_alu_b_vx("vshl.b.r.vx", 0xed, 0x04, 0x0f);
test_alu_b_vx("vshl.b.r.vx", 0xed, 0xfc, 0xff);
test_alu_b_vx("vshl.b.r.vx", 0xed, 0x07, 0x02);
test_alu_b_vx("vshl.b.r.vx", 0xed, 0xf9, 0xff);
test_alu_b_vx("vshl.b.r.vx", 0xed, 0x08, 0x01);
test_alu_b_vx("vshl.b.r.vx", 0xed, 0xf8, 0xff);
test_alu_b_vx("vshl.b.r.vx", 0xed, 0x09, 0x00);
test_alu_b_vx("vshl.b.r.vx", 0xed, 0xf7, 0xff);
test_alu_b_vx("vshl.b.r.vx", 0x00, 0x07, 0x00);
test_alu_b_vx("vshl.b.r.vx", 0x00, 0xf9, 0x00);
test_alu_b_vx("vshl.b.r.vx", 0x00, 0x08, 0x00);
test_alu_b_vx("vshl.b.r.vx", 0x00, 0xf8, 0x00);
test_alu_b_vx("vshl.b.r.vx", 0x00, 0x09, 0x00);
test_alu_b_vx("vshl.b.r.vx", 0x00, 0xf7, 0x00);
test_alu_b_vx("vshl.b.r.vx", 0x01, 0x06, 0x00);
test_alu_b_vx("vshl.b.r.vx", 0x01, 0xfa, 0x40);
test_alu_b_vx("vshl.b.r.vx", 0x01, 0x07, 0x00);
test_alu_b_vx("vshl.b.r.vx", 0x01, 0xf9, 0x80);
test_alu_b_vx("vshl.b.r.vx", 0x01, 0x08, 0x00);
test_alu_b_vx("vshl.b.r.vx", 0x01, 0xf8, 0xff);
test_alu_b_vx("vshl.b.r.vx", 0x01, 0x09, 0x00);
test_alu_b_vx("vshl.b.r.vx", 0x01, 0xf7, 0xff);
test_alu_b_vx("vshl.b.r.vx", 0xff, 0x06, 0x04);
test_alu_b_vx("vshl.b.r.vx", 0xff, 0xfa, 0xff);
test_alu_b_vx("vshl.b.r.vx", 0xff, 0x07, 0x02);
test_alu_b_vx("vshl.b.r.vx", 0xff, 0xf9, 0xff);
test_alu_b_vx("vshl.b.r.vx", 0xff, 0x08, 0x01);
test_alu_b_vx("vshl.b.r.vx", 0xff, 0xf8, 0xff);
test_alu_b_vx("vshl.b.r.vx", 0xff, 0x09, 0x00);
test_alu_b_vx("vshl.b.r.vx", 0xff, 0xf7, 0xff);
test_alu_h_vx("vshl.h.r.vx", 0x0012, 0x0000, 0x0012);
test_alu_h_vx("vshl.h.r.vx", 0x0012, 0x0001, 0x0009);
test_alu_h_vx("vshl.h.r.vx", 0x0012, 0xffff, 0x0024);
test_alu_h_vx("vshl.h.r.vx", 0x0012, 0x0002, 0x0005);
test_alu_h_vx("vshl.h.r.vx", 0x0012, 0xfffe, 0x0048);
test_alu_h_vx("vshl.h.r.vx", 0x0012, 0x0004, 0x0001);
test_alu_h_vx("vshl.h.r.vx", 0x0012, 0xfffc, 0x0120);
test_alu_h_vx("vshl.h.r.vx", 0x0012, 0x0008, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0012, 0xfff8, 0x1200);
test_alu_h_vx("vshl.h.r.vx", 0x0012, 0x000f, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0012, 0xfff1, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0x0012, 0x0010, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0012, 0xfff0, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0x0012, 0x0011, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0012, 0xffef, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0xffed, 0x0000, 0xffed);
test_alu_h_vx("vshl.h.r.vx", 0xffed, 0x0001, 0x7ff7);
test_alu_h_vx("vshl.h.r.vx", 0xffed, 0xffff, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0xffed, 0x0002, 0x3ffb);
test_alu_h_vx("vshl.h.r.vx", 0xffed, 0xfffe, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0xffed, 0x0004, 0x0fff);
test_alu_h_vx("vshl.h.r.vx", 0xffed, 0xfffc, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0xffed, 0x0008, 0x0100);
test_alu_h_vx("vshl.h.r.vx", 0xffed, 0xfff8, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0xffed, 0x000f, 0x0002);
test_alu_h_vx("vshl.h.r.vx", 0xffed, 0xfff1, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0xffed, 0x0010, 0x0001);
test_alu_h_vx("vshl.h.r.vx", 0xffed, 0xfff0, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0xffed, 0x0011, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0xffed, 0xffef, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0x0000, 0x0007, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0000, 0xfff9, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0000, 0x0008, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0000, 0xfff8, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0000, 0x0009, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0000, 0xfff7, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0000, 0x000e, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0000, 0xfff2, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0000, 0x000f, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0000, 0xfff1, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0000, 0x0010, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0000, 0xfff0, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0000, 0x0011, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0000, 0xffef, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0001, 0x0007, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0001, 0xfff9, 0x0080);
test_alu_h_vx("vshl.h.r.vx", 0x0001, 0x0008, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0001, 0xfff8, 0x0100);
test_alu_h_vx("vshl.h.r.vx", 0x0001, 0x0009, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0001, 0xfff7, 0x0200);
test_alu_h_vx("vshl.h.r.vx", 0x0001, 0x000e, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0001, 0xfff2, 0x4000);
test_alu_h_vx("vshl.h.r.vx", 0x0001, 0x000f, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0001, 0xfff1, 0x8000);
test_alu_h_vx("vshl.h.r.vx", 0x0001, 0x0010, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0001, 0xfff0, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0x0001, 0x0011, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0x0001, 0xffef, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0xffff, 0x0007, 0x0200);
test_alu_h_vx("vshl.h.r.vx", 0xffff, 0xfff9, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0xffff, 0x0008, 0x0100);
test_alu_h_vx("vshl.h.r.vx", 0xffff, 0xfff8, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0xffff, 0x0009, 0x0080);
test_alu_h_vx("vshl.h.r.vx", 0xffff, 0xfff7, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0xffff, 0x000e, 0x0004);
test_alu_h_vx("vshl.h.r.vx", 0xffff, 0xfff2, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0xffff, 0x000f, 0x0002);
test_alu_h_vx("vshl.h.r.vx", 0xffff, 0xfff1, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0xffff, 0x0010, 0x0001);
test_alu_h_vx("vshl.h.r.vx", 0xffff, 0xfff0, 0xffff);
test_alu_h_vx("vshl.h.r.vx", 0xffff, 0x0011, 0x0000);
test_alu_h_vx("vshl.h.r.vx", 0xffff, 0xffef, 0xffff);
test_alu_w_vx("vshl.w.r.vx", 0x00000012, 0x00000000, 0x00000012);
test_alu_w_vx("vshl.w.r.vx", 0x00000012, 0x00000001, 0x00000009);
test_alu_w_vx("vshl.w.r.vx", 0x00000012, 0xffffffff, 0x00000024);
test_alu_w_vx("vshl.w.r.vx", 0x00000012, 0x00000002, 0x00000005);
test_alu_w_vx("vshl.w.r.vx", 0x00000012, 0xfffffffe, 0x00000048);
test_alu_w_vx("vshl.w.r.vx", 0x00000012, 0x00000004, 0x00000001);
test_alu_w_vx("vshl.w.r.vx", 0x00000012, 0xfffffffc, 0x00000120);
test_alu_w_vx("vshl.w.r.vx", 0x00000012, 0x00000008, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000012, 0xfffffff8, 0x00001200);
test_alu_w_vx("vshl.w.r.vx", 0x00000012, 0x0000000f, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000012, 0xfffffff1, 0x00090000);
test_alu_w_vx("vshl.w.r.vx", 0x00000012, 0x00000010, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000012, 0xfffffff0, 0x00120000);
test_alu_w_vx("vshl.w.r.vx", 0x00000012, 0x00000011, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000012, 0xffffffef, 0x00240000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffed, 0x00000000, 0xffffffed);
test_alu_w_vx("vshl.w.r.vx", 0xffffffed, 0x00000001, 0x7ffffff7);
test_alu_w_vx("vshl.w.r.vx", 0xffffffed, 0xffffffff, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffed, 0x00000002, 0x3ffffffb);
test_alu_w_vx("vshl.w.r.vx", 0xffffffed, 0xfffffffe, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffed, 0x00000004, 0x0fffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffed, 0xfffffffc, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffed, 0x00000008, 0x01000000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffed, 0xfffffff8, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffed, 0x0000000f, 0x00020000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffed, 0xfffffff1, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffed, 0x00000010, 0x00010000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffed, 0xfffffff0, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffed, 0x00000011, 0x00008000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffed, 0xffffffef, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0x00000007, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0xfffffff9, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0x00000008, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0xfffffff8, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0x00000009, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0xfffffff7, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0x0000000e, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0xfffffff2, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0x0000000f, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0xfffffff1, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0x00000010, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0xfffffff0, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0x00000011, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0xffffffef, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0x0000001e, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0xffffffe2, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0x0000001f, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0xffffffe1, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0x00000020, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0xffffffe0, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0x00000021, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0xffffffdf, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0x0000003e, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0xffffffc2, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0x0000003f, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0xffffffc1, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0x00000040, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0xffffffc0, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0x00000041, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000000, 0xffffffbf, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x00000001, 0x00000001);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xffffffff, 0x00000002);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x00000002, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xfffffffe, 0x00000004);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x00000007, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xfffffff9, 0x00000080);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x00000008, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xfffffff8, 0x00000100);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x00000009, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xfffffff7, 0x00000200);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x0000000e, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xfffffff2, 0x00004000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x0000000f, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xfffffff1, 0x00008000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x00000010, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xfffffff0, 0x00010000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x00000011, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xffffffef, 0x00020000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x0000001e, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xffffffe2, 0x40000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x0000001f, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xffffffe1, 0x80000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x00000020, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xffffffe0, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x00000021, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xffffffdf, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xffffffc3, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x0000003e, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xffffffc2, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x0000003f, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xffffffc1, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x00000040, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xffffffc0, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0x00000041, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0x00000001, 0xffffffbf, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0x00000007, 0x02000000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0xfffffff9, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0x00000008, 0x01000000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0xfffffff8, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0x00000009, 0x00800000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0xfffffff7, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0x0000000e, 0x00040000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0xfffffff2, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0x0000000f, 0x00020000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0xfffffff1, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0x00000010, 0x00010000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0xfffffff0, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0x00000011, 0x00008000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0xffffffef, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0x0000001e, 0x00000004);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0xffffffe2, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0x0000001f, 0x00000002);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0xffffffe1, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0x00000020, 0x00000001);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0xffffffe0, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0x00000021, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0xffffffdf, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0x0000003e, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0xffffffc2, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0x0000003f, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0xffffffc1, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0x00000040, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0xffffffc0, 0xffffffff);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0x00000041, 0x00000000);
test_alu_w_vx("vshl.w.r.vx", 0xffffffff, 0xffffffbf, 0xffffffff);
// New tests.
test_alu_h_vx("vsha.h.vx", 0x85fb, 0x3bec, 0xffff);
test_alu_h_vx("vsha.h.r.vx", 0x85fb, 0x3bec, 0x0000);
return 0;
}