1e584b0e99b31e6d257cc58c630cd6067550539e3sewardj#include <stdio.h>
2e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
3e584b0e99b31e6d257cc58c630cd6067550539e3sewardj#define TESTINST1(instruction, RSval, RTval, RD, RS, RT) \
4e584b0e99b31e6d257cc58c630cd6067550539e3sewardj{ \
5e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   unsigned int out; \
6e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   __asm__ volatile( \
7e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "li   $" #RD ", 0\n\t"  \
8e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "move $" #RS ", %1\n\t" \
9e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "move $" #RT ", %2\n\t" \
10e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      instruction "\n\t" \
11e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "move %0, $" #RD "\n\t" \
12e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      : "=&r" (out) \
13e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      : "r" (RSval), "r" (RTval) \
14e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      : #RD, #RS, #RT, "cc", "memory" \
15e584b0e99b31e6d257cc58c630cd6067550539e3sewardj        ); \
16e584b0e99b31e6d257cc58c630cd6067550539e3sewardj        printf("%s :: rd 0x%08x rs 0x%08x, rt 0x%08x\n", \
17e584b0e99b31e6d257cc58c630cd6067550539e3sewardj        instruction, out, RSval, RTval); \
18e584b0e99b31e6d257cc58c630cd6067550539e3sewardj}
19e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
20e584b0e99b31e6d257cc58c630cd6067550539e3sewardj#define TESTINST2(instruction, RSval, imm, RT, RS) \
21e584b0e99b31e6d257cc58c630cd6067550539e3sewardj{ \
22e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   unsigned int out; \
23e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   __asm__ volatile( \
24e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "move $" #RS ", %1\n\t" \
25e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      instruction "\n\t" \
26e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "move %0, $" #RT "\n\t" \
27e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      : "=&r" (out) \
28e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      : "r" (RSval) \
29e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      : #RT, #RS, "cc", "memory" \
30e584b0e99b31e6d257cc58c630cd6067550539e3sewardj        ); \
31e584b0e99b31e6d257cc58c630cd6067550539e3sewardj        printf("%s :: rt 0x%08x rs 0x%08x, imm 0x%08x\n", \
32e584b0e99b31e6d257cc58c630cd6067550539e3sewardj        instruction, out, RSval, imm); \
33e584b0e99b31e6d257cc58c630cd6067550539e3sewardj}
34e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
35e584b0e99b31e6d257cc58c630cd6067550539e3sewardj#define TESTINST3(instruction, RSval, RD, RS) \
36e584b0e99b31e6d257cc58c630cd6067550539e3sewardj{ \
37e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   unsigned int out; \
38e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   __asm__ volatile( \
39e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "move $" #RS ", %1\n\t" \
40e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      instruction "\n\t" \
41e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "move %0, $" #RD "\n\t" \
42e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      : "=&r" (out) \
43e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      : "r" (RSval) \
44e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      : #RD, #RS, "cc", "memory" \
45e584b0e99b31e6d257cc58c630cd6067550539e3sewardj        ); \
46e584b0e99b31e6d257cc58c630cd6067550539e3sewardj        printf("%s :: rd 0x%08x rs 0x%08x\n", \
47e584b0e99b31e6d257cc58c630cd6067550539e3sewardj        instruction, out, RSval); \
48e584b0e99b31e6d257cc58c630cd6067550539e3sewardj}
49e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
50e584b0e99b31e6d257cc58c630cd6067550539e3sewardj#define TESTINST3a(instruction, RSval, RTval, RS, RT) \
51e584b0e99b31e6d257cc58c630cd6067550539e3sewardj{ \
52e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   unsigned int HI; \
53e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   unsigned int LO; \
54e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   __asm__ volatile( \
55e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "li $" #RS ", 0x0\n\t" \
56e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "mthi $" #RS"\n\t" \
57e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "mtlo $" #RS"\n\t" \
58e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "move $" #RS ", %2\n\t" \
59e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "move $" #RT ", %3\n\t" \
60e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      instruction "\n\t" \
61e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "mfhi %0 \n\t" \
62e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "mflo %1 \n\t" \
63e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      : "=&r" (HI), "=&r" (LO) \
64e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      : "r" (RSval), "r"(RTval) \
65e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      : #RS, #RT, "cc", "memory" \
66e584b0e99b31e6d257cc58c630cd6067550539e3sewardj        ); \
67e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("%s :: rs 0x%08x rt 0x%08x HI 0x%08x LO 0x%08x \n", \
68e584b0e99b31e6d257cc58c630cd6067550539e3sewardj        instruction, RSval, RTval, HI, LO); \
69e584b0e99b31e6d257cc58c630cd6067550539e3sewardj}
70e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
71e584b0e99b31e6d257cc58c630cd6067550539e3sewardj#define TESTINST4(instruction, RTval, RSval, RT, RS, pos, size) \
72e584b0e99b31e6d257cc58c630cd6067550539e3sewardj{ \
73e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   unsigned int out; \
74e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   __asm__ volatile( \
75e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "move $" #RT ", %1\n\t" \
76e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "move $" #RS ", %2\n\t" \
77e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      instruction "\n\t" \
78e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "move %0, $" #RT "\n\t" \
79e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      : "=&r" (out) \
80e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      : "r" (RTval), "r" (RSval) \
81e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      : #RT, #RS, "cc", "memory" \
82e584b0e99b31e6d257cc58c630cd6067550539e3sewardj        ); \
83e584b0e99b31e6d257cc58c630cd6067550539e3sewardj        printf("%s :: rt 0x%08x rs 0x%08x, pos 0x%08x, size 0x%08x\n", \
84e584b0e99b31e6d257cc58c630cd6067550539e3sewardj        instruction, out, RSval, pos, size); \
85e584b0e99b31e6d257cc58c630cd6067550539e3sewardj}
86e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
87e584b0e99b31e6d257cc58c630cd6067550539e3sewardjconst unsigned int mem[] = {
88e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   0x121f1e1f, 0, 3, -1,
89e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a,
90e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   0x3f343f3e, 0x3e353d3c, 0x363a3c3b, 0x3b373b3a,
91e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   0x454f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c
92e584b0e99b31e6d257cc58c630cd6067550539e3sewardj};
93e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
94e584b0e99b31e6d257cc58c630cd6067550539e3sewardj// load $t0, 0($t1)
95e584b0e99b31e6d257cc58c630cd6067550539e3sewardj#define TESTINSN5LOAD(instruction, RTval, offset, RT) \
96e584b0e99b31e6d257cc58c630cd6067550539e3sewardj{ \
97e584b0e99b31e6d257cc58c630cd6067550539e3sewardj    unsigned int out; \
98e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   __asm__ volatile( \
99e584b0e99b31e6d257cc58c630cd6067550539e3sewardj     "move $t1, %1\n\t" \
100e584b0e99b31e6d257cc58c630cd6067550539e3sewardj     "li $t0, " #RTval"\n\t" \
101e584b0e99b31e6d257cc58c630cd6067550539e3sewardj     instruction "\n\t" \
102e584b0e99b31e6d257cc58c630cd6067550539e3sewardj     "move %0, $" #RT "\n\t" \
103e584b0e99b31e6d257cc58c630cd6067550539e3sewardj     : "=&r" (out) \
104e584b0e99b31e6d257cc58c630cd6067550539e3sewardj	 : "r" (mem), "r" (RTval) \
105e584b0e99b31e6d257cc58c630cd6067550539e3sewardj	 : #RT, "cc", "memory" \
106e584b0e99b31e6d257cc58c630cd6067550539e3sewardj	 ); \
107e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("%s :: rt 0x%08x\n", \
108e584b0e99b31e6d257cc58c630cd6067550539e3sewardj          instruction, out); \
109e584b0e99b31e6d257cc58c630cd6067550539e3sewardj}
110e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
111e584b0e99b31e6d257cc58c630cd6067550539e3sewardj#define TESTINSN_HILO(RSval) \
112e584b0e99b31e6d257cc58c630cd6067550539e3sewardj{ \
113e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   unsigned int HI; \
114e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   unsigned int LO; \
115e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   __asm__ volatile( \
116e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "move $t0, %2\n\t" \
117e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "mthi $t0\n\t" \
118e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "addiu $t0, $t0, 0xffff\n\t" \
119e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "mtlo $t0\n\t" \
120e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "mfhi %0\n\t" \
121e584b0e99b31e6d257cc58c630cd6067550539e3sewardj      "mflo %1\n\t" \
122e584b0e99b31e6d257cc58c630cd6067550539e3sewardj     : "=&r" (HI), "=&r" (LO) \
123e584b0e99b31e6d257cc58c630cd6067550539e3sewardj	 : "r" (RSval)\
124e584b0e99b31e6d257cc58c630cd6067550539e3sewardj	 : "cc", "memory" \
125e584b0e99b31e6d257cc58c630cd6067550539e3sewardj	 ); \
126e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("mfhi mflo :: HI: 0x%x, LO: 0x%x\n", \
127e584b0e99b31e6d257cc58c630cd6067550539e3sewardj          HI, LO); \
128e584b0e99b31e6d257cc58c630cd6067550539e3sewardj}
129e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
130e584b0e99b31e6d257cc58c630cd6067550539e3sewardjint main(int argc, char **argv)
131e584b0e99b31e6d257cc58c630cd6067550539e3sewardj{
132e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("ADD\n");
133e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("add $t0, $t1, $t2", 0, 0, t0, t1, t2);
134e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("add $t0, $t1, $t2", 0, 1, t0, t1, t2);
135e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("add $t0, $t1, $t2", 1, 0, t0, t1, t2);
136e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("add $t0, $t1, $t2", 1, 1, t0, t1, t2);
137e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("add $t0, $t1, $t2", 0, -1, t0, t1, t2);
138e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("add $t0, $t1, $t2", 1, -1, t0, t1, t2);
139e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("add $t0, $t1, $t2", 0x80000000, 0, t0, t1, t2);
140e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("add $t0, $t1, $t2", 0x31415927, 0x27181728, t0, t1, t2);
141e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("add $t0, $t1, $t2", 0x31415927, 0x97181728, t0, t1, t2);
142e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("add $t0, $t1, $t2", -1,         0,          t0, t1, t2);
143e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("add $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
144e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("add $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
145e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
146e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("ADDI\n");
147e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addi $t0, $t1, 0", 0, 0, t0, t1);
148e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addi $t0, $t1, 1", 0, 1, t0, t1);
149e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addi $t0, $t1, 1", 1, 0, t0, t1);
150e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addi $t0, $t1, 1", 1, 1, t0, t1);
151e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addi $t0, $t1, -1", 0, -1, t0, t1);
152e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addi $t0, $t1, -1", 1, -1, t0, t1);
153e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addi $t0, $t1, 0", 0x80000000, 0, t0, t1);
154e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addi $t0, $t1, 0", -1,         0,          t0, t1);
155e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addi $t0, $t1, 0", 0x80000000, 0,          t0, t1);
156e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
157e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("ADDIU\n");
158e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addiu $t0, $t1, 0", 0, 0, t0, t1);
159e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addiu $t0, $t1, 1", 0, 1, t0, t1);
160e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addiu $t0, $t1, 1", 1, 0, t0, t1);
161e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addiu $t0, $t1, 1", 1, 1, t0, t1);
162e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addiu $t0, $t1, -1", 0, -1, t0, t1);
163e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addiu $t0, $t1, -1", 1, -1, t0, t1);
164e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addiu $t0, $t1, 0", 0x80000000, 0, t0, t1);
165e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addiu $t0, $t1, 0", -1,         0,          t0, t1);
166e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("addiu $t0, $t1, 0", 0x80000000, 0,          t0, t1);
167e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
168e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("ADDU\n");
169e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 0, 0, t0, t1, t2);
170e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 0, 1, t0, t1, t2);
171e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 1, 0, t0, t1, t2);
172e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 1, 1, t0, t1, t2);
173e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 0, -1, t0, t1, t2);
174e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 1, -1, t0, t1, t2);
175e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 0x31415927, 0x27181728, t0, t1, t2);
176e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 0x31415927, 0x97181728, t0, t1, t2);
177e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 0,          0,          t0, t1, t2);
178e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 1,          0,          t0, t1, t2);
179e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 0,          1,          t0, t1, t2);
180e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", -1,         0,          t0, t1, t2);
181e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
182e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
183e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
184e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
185e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
186e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 0x80000000, 0x7fffffff, t0, t1, t2);
187e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("addu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
188e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
189e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("AND\n");
190e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
191e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
192e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0,          255,        t0, t1, t2);
193e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", -1,         0,          t0, t1, t2);
194e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0,          1,          t0, t1, t2);
195e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0,          0,          t0, t1, t2);
196e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x80000000, -1,         t0, t1, t2);
197e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
198e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
199e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
200e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
201e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
202e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
203e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
204e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
205e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0,          255,        t0, t1, t2);
206e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 1,          0,          t0, t1, t2);
207e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0,          1,          t0, t1, t2);
208e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", -1,         0,          t0, t1, t2);
209e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
210e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
211e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
212e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
213e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
214e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
215e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("and $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
216e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
217e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("ANDI\n");
218e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("andi $t0, $t1, 1", 0, 1, t0, t1);
219e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("andi $t0, $t1, 0", 1, 0, t0, t1);
220e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("andi $t0, $t1, 1", 1, 1, t0, t1);
221e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("andi $t0, $t1, 1", 0x7fffffff, 0, t0, t1);
222e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("andi $t0, $t1, 0", 0x80000000, 0, t0, t1);
223e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("andi $t0, $t1, 0x3145", 0xffffffff, 0x3145, t0, t1);
224e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
225e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("CLO\n");
226e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("clo  $t0, $t1", 0, t0, t1);
227e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("clo  $t0, $t1", 1, t0, t1);
228e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("clo  $t0, $t1", 0x10, t0, t1);
229e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("clo  $t0, $t1", 0xffffffff, t0, t1);
230e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
231e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("CLZ\n");
232e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("clz  $t0, $t1", 0, t0, t1);
233e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("clz  $t0, $t1", 1, t0, t1);
234e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("clz  $t0, $t1", 0x10, t0, t1);
235e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("clz  $t0, $t1", 0xffffffff, t0, t1);
236e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
237e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("DIV\n");
238e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("div  $t0, $t1", 0x6, 0x2, t0, t1);
239e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("div  $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
240e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("div  $t0, $t1", 0xffffffff, 0x1, t0, t1);
241e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("div  $t0, $t1", 0x1, 0xffffffff, t0, t1);
242e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("div  $t0, $t1", 0x2, 0x6, t0, t1);
243e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
244e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("DIVU\n");
245e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("divu  $t0, $t1", 0x6, 0x2, t0, t1);
246e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("divu  $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
247e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("divu  $t0, $t1", 0xffffffff, 0x1, t0, t1);
248e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("divu  $t0, $t1", 0x1, 0xffffffff, t0, t1);
249e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("divu  $t0, $t1", 0x2, 0x6, t0, t1);
250e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("divu  $t0, $t1", 0x0, 0x2, t0, t1);
251e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
2524931c0dbc3912b97beb3784122d1ea7825a2c882petarj#if (__mips==32) && (__mips_isa_rev>=2)
253e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("EXT\n");
2547ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0x0,        0x0,        t0, t1, 0, 1);
2557ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0x0,        0xffffffff, t0, t1, 0, 1);
2567ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0x0,        0x98765432, t0, t1, 0, 1);
2577ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0x0,        0xff865421, t0, t1, 0, 1);
2587ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0xffffffff, 0x0,        t0, t1, 0, 1);
2597ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0xffffffff, 0xffffffff, t0, t1, 0, 1);
2607ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0xffffffff, 0x98765432, t0, t1, 0, 1);
2617ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0xffffffff, 0xff865421, t0, t1, 0, 1);
2627ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0x98765432, 0x0,        t0, t1, 0, 1);
2637ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0x98765432, 0xffffffff, t0, t1, 0, 1);
2647ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0x98765432, 0x98765432, t0, t1, 0, 1);
2657ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0x98765432, 0xff865421, t0, t1, 0, 1);
2667ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0xff865421, 0x0,        t0, t1, 0, 1);
2677ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0xff865421, 0xffffffff, t0, t1, 0, 1);
2687ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0xff865421, 0x98765432, t0, t1, 0, 1);
2697ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 1",  0xff865421, 0xff865421, t0, t1, 0, 1);
2707ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0x0,        0x0,        t0, t1, 0, 4);
2717ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0x0,        0xffffffff, t0, t1, 0, 4);
2727ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0x0,        0x98765432, t0, t1, 0, 4);
2737ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0x0,        0xff865421, t0, t1, 0, 4);
2747ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0xffffffff, 0x0,        t0, t1, 0, 4);
2757ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0xffffffff, 0xffffffff, t0, t1, 0, 4);
2767ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0xffffffff, 0x98765432, t0, t1, 0, 4);
2777ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0xffffffff, 0xff865421, t0, t1, 0, 4);
2787ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0x98765432, 0x0,        t0, t1, 0, 4);
2797ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0x98765432, 0xffffffff, t0, t1, 0, 4);
2807ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0x98765432, 0x98765432, t0, t1, 0, 4);
2817ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0x98765432, 0xff865421, t0, t1, 0, 4);
2827ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0xff865421, 0x0,        t0, t1, 0, 4);
2837ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0xff865421, 0xffffffff, t0, t1, 0, 4);
2847ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0xff865421, 0x98765432, t0, t1, 0, 4);
2857ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 4",  0xff865421, 0xff865421, t0, t1, 0, 4);
2867ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0x0,        0x0,        t0, t1, 0, 16);
2877ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0x0,        0xffffffff, t0, t1, 0, 16);
2887ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0x0,        0x98765432, t0, t1, 0, 16);
2897ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0x0,        0xff865421, t0, t1, 0, 16);
2907ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0xffffffff, 0x0,        t0, t1, 0, 16);
2917ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0xffffffff, 0xffffffff, t0, t1, 0, 16);
2927ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0xffffffff, 0x98765432, t0, t1, 0, 16);
2937ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0xffffffff, 0xff865421, t0, t1, 0, 16);
2947ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0x98765432, 0x0,        t0, t1, 0, 16);
2957ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0x98765432, 0xffffffff, t0, t1, 0, 16);
2967ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0x98765432, 0x98765432, t0, t1, 0, 16);
2977ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0x98765432, 0xff865421, t0, t1, 0, 16);
2987ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0xff865421, 0x0,        t0, t1, 0, 16);
2997ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0xff865421, 0xffffffff, t0, t1, 0, 16);
3007ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0xff865421, 0x98765432, t0, t1, 0, 16);
3017ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 16", 0xff865421, 0xff865421, t0, t1, 0, 16);
3027ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0x0,        0x0,        t0, t1, 0, 32);
3037ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0x0,        0xffffffff, t0, t1, 0, 32);
3047ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0x0,        0x98765432, t0, t1, 0, 32);
3057ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0x0,        0xff865421, t0, t1, 0, 32);
3067ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0xffffffff, 0x0,        t0, t1, 0, 32);
3077ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0xffffffff, 0xffffffff, t0, t1, 0, 32);
3087ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0xffffffff, 0x98765432, t0, t1, 0, 32);
3097ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0xffffffff, 0xff865421, t0, t1, 0, 32);
3107ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0x98765432, 0x0,        t0, t1, 0, 32);
3117ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0x98765432, 0xffffffff, t0, t1, 0, 32);
3127ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0x98765432, 0x98765432, t0, t1, 0, 32);
3137ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0x98765432, 0xff865421, t0, t1, 0, 32);
3147ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0xff865421, 0x0,        t0, t1, 0, 32);
3157ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0xff865421, 0xffffffff, t0, t1, 0, 32);
3167ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0xff865421, 0x98765432, t0, t1, 0, 32);
3177ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 0, 32", 0xff865421, 0xff865421, t0, t1, 0, 32);
3187ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj
3197ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0x0,        0x0,        t0, t1, 4, 1);
3207ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0x0,        0xffffffff, t0, t1, 4, 1);
3217ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0x0,        0x98765432, t0, t1, 4, 1);
3227ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0x0,        0xff865421, t0, t1, 4, 1);
3237ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0xffffffff, 0x0,        t0, t1, 4, 1);
3247ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0xffffffff, 0xffffffff, t0, t1, 4, 1);
3257ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0xffffffff, 0x98765432, t0, t1, 4, 1);
3267ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0xffffffff, 0xff865421, t0, t1, 4, 1);
3277ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0x98765432, 0x0,        t0, t1, 4, 1);
3287ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0x98765432, 0xffffffff, t0, t1, 4, 1);
3297ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0x98765432, 0x98765432, t0, t1, 4, 1);
3307ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0x98765432, 0xff865421, t0, t1, 4, 1);
3317ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0xff865421, 0x0,        t0, t1, 4, 1);
3327ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0xff865421, 0xffffffff, t0, t1, 4, 1);
3337ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0xff865421, 0x98765432, t0, t1, 4, 1);
3347ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 1",  0xff865421, 0xff865421, t0, t1, 4, 1);
3357ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0x0,        0x0,        t0, t1, 4, 4);
3367ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0x0,        0xffffffff, t0, t1, 4, 4);
3377ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0x0,        0x98765432, t0, t1, 4, 4);
3387ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0x0,        0xff865421, t0, t1, 4, 4);
3397ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0xffffffff, 0x0,        t0, t1, 4, 4);
3407ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0xffffffff, 0xffffffff, t0, t1, 4, 4);
3417ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0xffffffff, 0x98765432, t0, t1, 4, 4);
3427ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0xffffffff, 0xff865421, t0, t1, 4, 4);
3437ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0x98765432, 0x0,        t0, t1, 4, 4);
3447ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0x98765432, 0xffffffff, t0, t1, 4, 4);
3457ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0x98765432, 0x98765432, t0, t1, 4, 4);
3467ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0x98765432, 0xff865421, t0, t1, 4, 4);
3477ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0xff865421, 0x0,        t0, t1, 4, 4);
3487ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0xff865421, 0xffffffff, t0, t1, 4, 4);
3497ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0xff865421, 0x98765432, t0, t1, 4, 4);
3507ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 4",  0xff865421, 0xff865421, t0, t1, 4, 4);
3517ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0x0,        0x0,        t0, t1, 4, 16);
3527ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0x0,        0xffffffff, t0, t1, 4, 16);
3537ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0x0,        0x98765432, t0, t1, 4, 16);
3547ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0x0,        0xff865421, t0, t1, 4, 16);
3557ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0xffffffff, 0x0,        t0, t1, 4, 16);
3567ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0xffffffff, 0xffffffff, t0, t1, 4, 16);
3577ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0xffffffff, 0x98765432, t0, t1, 4, 16);
3587ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0xffffffff, 0xff865421, t0, t1, 4, 16);
3597ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0x98765432, 0x0,        t0, t1, 4, 16);
3607ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0x98765432, 0xffffffff, t0, t1, 4, 16);
3617ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0x98765432, 0x98765432, t0, t1, 4, 16);
3627ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0x98765432, 0xff865421, t0, t1, 4, 16);
3637ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0xff865421, 0x0,        t0, t1, 4, 16);
3647ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0xff865421, 0xffffffff, t0, t1, 4, 16);
3657ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0xff865421, 0x98765432, t0, t1, 4, 16);
3667ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 16", 0xff865421, 0xff865421, t0, t1, 4, 16);
3677ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0x0,        0x0,        t0, t1, 4, 28);
3687ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0x0,        0xffffffff, t0, t1, 4, 28);
3697ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0x0,        0x98765432, t0, t1, 4, 28);
3707ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0x0,        0xff865421, t0, t1, 4, 28);
3717ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0xffffffff, 0x0,        t0, t1, 4, 28);
3727ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0xffffffff, 0xffffffff, t0, t1, 4, 28);
3737ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0xffffffff, 0x98765432, t0, t1, 4, 28);
3747ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0xffffffff, 0xff865421, t0, t1, 4, 28);
3757ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0x98765432, 0x0,        t0, t1, 4, 28);
3767ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0x98765432, 0xffffffff, t0, t1, 4, 28);
3777ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0x98765432, 0x98765432, t0, t1, 4, 28);
3787ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0x98765432, 0xff865421, t0, t1, 4, 28);
3797ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0xff865421, 0x0,        t0, t1, 4, 28);
3807ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0xff865421, 0xffffffff, t0, t1, 4, 28);
3817ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0xff865421, 0x98765432, t0, t1, 4, 28);
3827ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 4, 28", 0xff865421, 0xff865421, t0, t1, 4, 28);
3837ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj
3847ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0x0,        0x0,        t0, t1, 1, 16);
3857ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0x0,        0xffffffff, t0, t1, 1, 16);
3867ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0x0,        0x98765432, t0, t1, 1, 16);
3877ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0x0,        0xff865421, t0, t1, 1, 16);
3887ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0xffffffff, 0x0,        t0, t1, 1, 16);
3897ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0xffffffff, 0xffffffff, t0, t1, 1, 16);
3907ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0xffffffff, 0x98765432, t0, t1, 1, 16);
3917ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0xffffffff, 0xff865421, t0, t1, 1, 16);
3927ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0x98765432, 0x0,        t0, t1, 1, 16);
3937ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0x98765432, 0xffffffff, t0, t1, 1, 16);
3947ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0x98765432, 0x98765432, t0, t1, 1, 16);
3957ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0x98765432, 0xff865421, t0, t1, 1, 16);
3967ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0xff865421, 0x0,        t0, t1, 1, 16);
3977ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0xff865421, 0xffffffff, t0, t1, 1, 16);
3987ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0xff865421, 0x98765432, t0, t1, 1, 16);
3997ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 1",  0xff865421, 0xff865421, t0, t1, 1, 16);
4007ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0x0,        0x0,        t0, t1, 16, 4);
4017ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0x0,        0xffffffff, t0, t1, 16, 4);
4027ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0x0,        0x98765432, t0, t1, 16, 4);
4037ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0x0,        0xff865421, t0, t1, 16, 4);
4047ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0xffffffff, 0x0,        t0, t1, 16, 4);
4057ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0xffffffff, 0xffffffff, t0, t1, 16, 4);
4067ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0xffffffff, 0x98765432, t0, t1, 16, 4);
4077ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0xffffffff, 0xff865421, t0, t1, 16, 4);
4087ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0x98765432, 0x0,        t0, t1, 16, 4);
4097ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0x98765432, 0xffffffff, t0, t1, 16, 4);
4107ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0x98765432, 0x98765432, t0, t1, 16, 4);
4117ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0x98765432, 0xff865421, t0, t1, 16, 4);
4127ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0xff865421, 0x0,        t0, t1, 16, 4);
4137ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0xff865421, 0xffffffff, t0, t1, 16, 4);
4147ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0xff865421, 0x98765432, t0, t1, 16, 4);
4157ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 4",  0xff865421, 0xff865421, t0, t1, 16, 4);
4167ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0x0,        0x0,        t0, t1, 16, 16);
4177ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0x0,        0xffffffff, t0, t1, 16, 16);
4187ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0x0,        0x98765432, t0, t1, 16, 16);
4197ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0x0,        0xff865421, t0, t1, 16, 16);
4207ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0xffffffff, 0x0,        t0, t1, 16, 16);
4217ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0xffffffff, 0xffffffff, t0, t1, 16, 16);
4227ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0xffffffff, 0x98765432, t0, t1, 16, 16);
4237ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0xffffffff, 0xff865421, t0, t1, 16, 16);
4247ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0x98765432, 0x0,        t0, t1, 16, 16);
4257ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0x98765432, 0xffffffff, t0, t1, 16, 16);
4267ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0x98765432, 0x98765432, t0, t1, 16, 16);
4277ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0x98765432, 0xff865421, t0, t1, 16, 16);
4287ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0xff865421, 0x0,        t0, t1, 16, 16);
4297ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0xff865421, 0xffffffff, t0, t1, 16, 16);
4307ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0xff865421, 0x98765432, t0, t1, 16, 16);
4317ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 16, 16", 0xff865421, 0xff865421, t0, t1, 16, 16);
4327ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj
4337ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0x0,        0x0,        t0, t1, 31, 1);
4347ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0x0,        0xffffffff, t0, t1, 31, 1);
4357ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0x0,        0x98765432, t0, t1, 31, 1);
4367ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0x0,        0xff865421, t0, t1, 31, 1);
4377ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0xffffffff, 0x0,        t0, t1, 31, 1);
4387ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0xffffffff, 0xffffffff, t0, t1, 31, 1);
4397ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0xffffffff, 0x98765432, t0, t1, 31, 1);
4407ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0xffffffff, 0xff865421, t0, t1, 31, 1);
4417ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0x98765432, 0x0,        t0, t1, 31, 1);
4427ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0x98765432, 0xffffffff, t0, t1, 31, 1);
4437ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0x98765432, 0x98765432, t0, t1, 31, 1);
4447ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0x98765432, 0xff865421, t0, t1, 31, 1);
4457ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0xff865421, 0x0,        t0, t1, 31, 1);
4467ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0xff865421, 0xffffffff, t0, t1, 31, 1);
4477ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0xff865421, 0x98765432, t0, t1, 31, 1);
4487ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ext $t0, $t1, 31, 1", 0xff865421, 0xff865421, t0, t1, 31, 1);
449e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
450e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("INS\n");
4517ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0x0,        0x0,        t0, t1, 0, 1);
4527ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0x0,        0xffffffff, t0, t1, 0, 1);
4537ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0x0,        0x98765432, t0, t1, 0, 1);
4547ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0x0,        0xff865421, t0, t1, 0, 1);
4557ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0xffffffff, 0x0,        t0, t1, 0, 1);
4567ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0xffffffff, 0xffffffff, t0, t1, 0, 1);
4577ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0xffffffff, 0x98765432, t0, t1, 0, 1);
4587ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0xffffffff, 0xff865421, t0, t1, 0, 1);
4597ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0x98765432, 0x0,        t0, t1, 0, 1);
4607ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0x98765432, 0xffffffff, t0, t1, 0, 1);
4617ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0x98765432, 0x98765432, t0, t1, 0, 1);
4627ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0x98765432, 0xff865421, t0, t1, 0, 1);
4637ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0xff865421, 0x0,        t0, t1, 0, 1);
4647ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0xff865421, 0xffffffff, t0, t1, 0, 1);
4657ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0xff865421, 0x98765432, t0, t1, 0, 1);
4667ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 1",  0xff865421, 0xff865421, t0, t1, 0, 1);
4677ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0x0,        0x0,        t0, t1, 0, 4);
4687ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0x0,        0xffffffff, t0, t1, 0, 4);
4697ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0x0,        0x98765432, t0, t1, 0, 4);
4707ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0x0,        0xff865421, t0, t1, 0, 4);
4717ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0xffffffff, 0x0,        t0, t1, 0, 4);
4727ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0xffffffff, 0xffffffff, t0, t1, 0, 4);
4737ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0xffffffff, 0x98765432, t0, t1, 0, 4);
4747ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0xffffffff, 0xff865421, t0, t1, 0, 4);
4757ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0x98765432, 0x0,        t0, t1, 0, 4);
4767ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0x98765432, 0xffffffff, t0, t1, 0, 4);
4777ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0x98765432, 0x98765432, t0, t1, 0, 4);
4787ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0x98765432, 0xff865421, t0, t1, 0, 4);
4797ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0xff865421, 0x0,        t0, t1, 0, 4);
4807ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0xff865421, 0xffffffff, t0, t1, 0, 4);
4817ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0xff865421, 0x98765432, t0, t1, 0, 4);
4827ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 4",  0xff865421, 0xff865421, t0, t1, 0, 4);
4837ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0x0,        0x0,        t0, t1, 0, 16);
4847ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0x0,        0xffffffff, t0, t1, 0, 16);
4857ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0x0,        0x98765432, t0, t1, 0, 16);
4867ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0x0,        0xff865421, t0, t1, 0, 16);
4877ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0xffffffff, 0x0,        t0, t1, 0, 16);
4887ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0xffffffff, 0xffffffff, t0, t1, 0, 16);
4897ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0xffffffff, 0x98765432, t0, t1, 0, 16);
4907ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0xffffffff, 0xff865421, t0, t1, 0, 16);
4917ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0x98765432, 0x0,        t0, t1, 0, 16);
4927ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0x98765432, 0xffffffff, t0, t1, 0, 16);
4937ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0x98765432, 0x98765432, t0, t1, 0, 16);
4947ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0x98765432, 0xff865421, t0, t1, 0, 16);
4957ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0xff865421, 0x0,        t0, t1, 0, 16);
4967ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0xff865421, 0xffffffff, t0, t1, 0, 16);
4977ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0xff865421, 0x98765432, t0, t1, 0, 16);
4987ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 16", 0xff865421, 0xff865421, t0, t1, 0, 16);
4997ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0x0,        0x0,        t0, t1, 0, 32);
5007ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0x0,        0xffffffff, t0, t1, 0, 32);
5017ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0x0,        0x98765432, t0, t1, 0, 32);
5027ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0x0,        0xff865421, t0, t1, 0, 32);
5037ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0xffffffff, 0x0,        t0, t1, 0, 32);
5047ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0xffffffff, 0xffffffff, t0, t1, 0, 32);
5057ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0xffffffff, 0x98765432, t0, t1, 0, 32);
5067ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0xffffffff, 0xff865421, t0, t1, 0, 32);
5077ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0x98765432, 0x0,        t0, t1, 0, 32);
5087ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0x98765432, 0xffffffff, t0, t1, 0, 32);
5097ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0x98765432, 0x98765432, t0, t1, 0, 32);
5107ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0x98765432, 0xff865421, t0, t1, 0, 32);
5117ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0xff865421, 0x0,        t0, t1, 0, 32);
5127ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0xff865421, 0xffffffff, t0, t1, 0, 32);
5137ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0xff865421, 0x98765432, t0, t1, 0, 32);
5147ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 0, 32", 0xff865421, 0xff865421, t0, t1, 0, 32);
5157ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj
5167ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0x0,        0x0,        t0, t1, 4, 1);
5177ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0x0,        0xffffffff, t0, t1, 4, 1);
5187ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0x0,        0x98765432, t0, t1, 4, 1);
5197ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0x0,        0xff865421, t0, t1, 4, 1);
5207ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0xffffffff, 0x0,        t0, t1, 4, 1);
5217ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0xffffffff, 0xffffffff, t0, t1, 4, 1);
5227ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0xffffffff, 0x98765432, t0, t1, 4, 1);
5237ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0xffffffff, 0xff865421, t0, t1, 4, 1);
5247ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0x98765432, 0x0,        t0, t1, 4, 1);
5257ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0x98765432, 0xffffffff, t0, t1, 4, 1);
5267ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0x98765432, 0x98765432, t0, t1, 4, 1);
5277ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0x98765432, 0xff865421, t0, t1, 4, 1);
5287ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0xff865421, 0x0,        t0, t1, 4, 1);
5297ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0xff865421, 0xffffffff, t0, t1, 4, 1);
5307ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0xff865421, 0x98765432, t0, t1, 4, 1);
5317ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 1",  0xff865421, 0xff865421, t0, t1, 4, 1);
5327ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0x0,        0x0,        t0, t1, 4, 4);
5337ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0x0,        0xffffffff, t0, t1, 4, 4);
5347ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0x0,        0x98765432, t0, t1, 4, 4);
5357ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0x0,        0xff865421, t0, t1, 4, 4);
5367ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0xffffffff, 0x0,        t0, t1, 4, 4);
5377ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0xffffffff, 0xffffffff, t0, t1, 4, 4);
5387ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0xffffffff, 0x98765432, t0, t1, 4, 4);
5397ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0xffffffff, 0xff865421, t0, t1, 4, 4);
5407ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0x98765432, 0x0,        t0, t1, 4, 4);
5417ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0x98765432, 0xffffffff, t0, t1, 4, 4);
5427ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0x98765432, 0x98765432, t0, t1, 4, 4);
5437ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0x98765432, 0xff865421, t0, t1, 4, 4);
5447ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0xff865421, 0x0,        t0, t1, 4, 4);
5457ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0xff865421, 0xffffffff, t0, t1, 4, 4);
5467ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0xff865421, 0x98765432, t0, t1, 4, 4);
5477ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 4",  0xff865421, 0xff865421, t0, t1, 4, 4);
5487ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0x0,        0x0,        t0, t1, 4, 16);
5497ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0x0,        0xffffffff, t0, t1, 4, 16);
5507ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0x0,        0x98765432, t0, t1, 4, 16);
5517ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0x0,        0xff865421, t0, t1, 4, 16);
5527ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0xffffffff, 0x0,        t0, t1, 4, 16);
5537ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0xffffffff, 0xffffffff, t0, t1, 4, 16);
5547ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0xffffffff, 0x98765432, t0, t1, 4, 16);
5557ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0xffffffff, 0xff865421, t0, t1, 4, 16);
5567ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0x98765432, 0x0,        t0, t1, 4, 16);
5577ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0x98765432, 0xffffffff, t0, t1, 4, 16);
5587ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0x98765432, 0x98765432, t0, t1, 4, 16);
5597ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0x98765432, 0xff865421, t0, t1, 4, 16);
5607ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0xff865421, 0x0,        t0, t1, 4, 16);
5617ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0xff865421, 0xffffffff, t0, t1, 4, 16);
5627ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0xff865421, 0x98765432, t0, t1, 4, 16);
5637ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 16", 0xff865421, 0xff865421, t0, t1, 4, 16);
5647ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0x0,        0x0,        t0, t1, 4, 28);
5657ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0x0,        0xffffffff, t0, t1, 4, 28);
5667ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0x0,        0x98765432, t0, t1, 4, 28);
5677ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0x0,        0xff865421, t0, t1, 4, 28);
5687ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0xffffffff, 0x0,        t0, t1, 4, 28);
5697ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0xffffffff, 0xffffffff, t0, t1, 4, 28);
5707ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0xffffffff, 0x98765432, t0, t1, 4, 28);
5717ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0xffffffff, 0xff865421, t0, t1, 4, 28);
5727ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0x98765432, 0x0,        t0, t1, 4, 28);
5737ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0x98765432, 0xffffffff, t0, t1, 4, 28);
5747ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0x98765432, 0x98765432, t0, t1, 4, 28);
5757ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0x98765432, 0xff865421, t0, t1, 4, 28);
5767ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0xff865421, 0x0,        t0, t1, 4, 28);
5777ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0xff865421, 0xffffffff, t0, t1, 4, 28);
5787ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0xff865421, 0x98765432, t0, t1, 4, 28);
5797ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 4, 28", 0xff865421, 0xff865421, t0, t1, 4, 28);
5807ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj
5817ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0x0,        0x0,        t0, t1, 1, 16);
5827ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0x0,        0xffffffff, t0, t1, 1, 16);
5837ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0x0,        0x98765432, t0, t1, 1, 16);
5847ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0x0,        0xff865421, t0, t1, 1, 16);
5857ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0xffffffff, 0x0,        t0, t1, 1, 16);
5867ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0xffffffff, 0xffffffff, t0, t1, 1, 16);
5877ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0xffffffff, 0x98765432, t0, t1, 1, 16);
5887ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0xffffffff, 0xff865421, t0, t1, 1, 16);
5897ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0x98765432, 0x0,        t0, t1, 1, 16);
5907ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0x98765432, 0xffffffff, t0, t1, 1, 16);
5917ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0x98765432, 0x98765432, t0, t1, 1, 16);
5927ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0x98765432, 0xff865421, t0, t1, 1, 16);
5937ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0xff865421, 0x0,        t0, t1, 1, 16);
5947ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0xff865421, 0xffffffff, t0, t1, 1, 16);
5957ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0xff865421, 0x98765432, t0, t1, 1, 16);
5967ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 1",  0xff865421, 0xff865421, t0, t1, 1, 16);
5977ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0x0,        0x0,        t0, t1, 16, 4);
5987ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0x0,        0xffffffff, t0, t1, 16, 4);
5997ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0x0,        0x98765432, t0, t1, 16, 4);
6007ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0x0,        0xff865421, t0, t1, 16, 4);
6017ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0xffffffff, 0x0,        t0, t1, 16, 4);
6027ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0xffffffff, 0xffffffff, t0, t1, 16, 4);
6037ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0xffffffff, 0x98765432, t0, t1, 16, 4);
6047ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0xffffffff, 0xff865421, t0, t1, 16, 4);
6057ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0x98765432, 0x0,        t0, t1, 16, 4);
6067ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0x98765432, 0xffffffff, t0, t1, 16, 4);
6077ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0x98765432, 0x98765432, t0, t1, 16, 4);
6087ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0x98765432, 0xff865421, t0, t1, 16, 4);
6097ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0xff865421, 0x0,        t0, t1, 16, 4);
6107ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0xff865421, 0xffffffff, t0, t1, 16, 4);
6117ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0xff865421, 0x98765432, t0, t1, 16, 4);
6127ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 4",  0xff865421, 0xff865421, t0, t1, 16, 4);
6137ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0x0,        0x0,        t0, t1, 16, 16);
6147ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0x0,        0xffffffff, t0, t1, 16, 16);
6157ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0x0,        0x98765432, t0, t1, 16, 16);
6167ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0x0,        0xff865421, t0, t1, 16, 16);
6177ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0xffffffff, 0x0,        t0, t1, 16, 16);
6187ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0xffffffff, 0xffffffff, t0, t1, 16, 16);
6197ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0xffffffff, 0x98765432, t0, t1, 16, 16);
6207ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0xffffffff, 0xff865421, t0, t1, 16, 16);
6217ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0x98765432, 0x0,        t0, t1, 16, 16);
6227ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0x98765432, 0xffffffff, t0, t1, 16, 16);
6237ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0x98765432, 0x98765432, t0, t1, 16, 16);
6247ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0x98765432, 0xff865421, t0, t1, 16, 16);
6257ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0xff865421, 0x0,        t0, t1, 16, 16);
6267ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0xff865421, 0xffffffff, t0, t1, 16, 16);
6277ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0xff865421, 0x98765432, t0, t1, 16, 16);
6287ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 16, 16", 0xff865421, 0xff865421, t0, t1, 16, 16);
6297ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj
6307ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0x0,        0x0,        t0, t1, 31, 1);
6317ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0x0,        0xffffffff, t0, t1, 31, 1);
6327ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0x0,        0x98765432, t0, t1, 31, 1);
6337ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0x0,        0xff865421, t0, t1, 31, 1);
6347ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0xffffffff, 0x0,        t0, t1, 31, 1);
6357ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0xffffffff, 0xffffffff, t0, t1, 31, 1);
6367ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0xffffffff, 0x98765432, t0, t1, 31, 1);
6377ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0xffffffff, 0xff865421, t0, t1, 31, 1);
6387ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0x98765432, 0x0,        t0, t1, 31, 1);
6397ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0x98765432, 0xffffffff, t0, t1, 31, 1);
6407ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0x98765432, 0x98765432, t0, t1, 31, 1);
6417ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0x98765432, 0xff865421, t0, t1, 31, 1);
6427ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0xff865421, 0x0,        t0, t1, 31, 1);
6437ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0xff865421, 0xffffffff, t0, t1, 31, 1);
6447ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0xff865421, 0x98765432, t0, t1, 31, 1);
6457ca65aeabb690ae6db35e700c73452bb310f1a0fpetarj   TESTINST4("ins $t0, $t1, 31, 1", 0xff865421, 0xff865421, t0, t1, 31, 1);
6464931c0dbc3912b97beb3784122d1ea7825a2c882petarj#endif
647e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
648e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("LB\n");
649e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 0($t1)", 0, 0, t0);
650e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 4($t1)", 0, 4, t0);
651e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 8($t1)", 0, 8, t0);
652e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 12($t1)", 0, 12, t0);
653e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 16($t1)", 0, 16, t0);
654e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 20($t1)", 0, 20, t0);
655e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 24($t1)", 0, 24, t0);
656e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 28($t1)", 0, 28, t0);
657e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 32($t1)", 0, 32, t0);
658e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 36($t1)", 0, 36, t0);
659e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 40($t1)", 0, 40, t0);
660e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 44($t1)", 0, 44, t0);
661e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 48($t1)", 0, 48, t0);
662e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 52($t1)", 0, 52, t0);
663e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 56($t1)", 0, 56, t0);
664e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 60($t1)", 0, 60, t0);
665e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 64($t1)", 0, 64, t0);
666e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 2($t1)", 0, 2, t0);
667e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 6($t1)", 0, 6, t0);
668e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 10($t1)", 0, 10, t0);
669e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 14($t1)", 0, 14, t0);
670e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 18($t1)", 0, 18, t0);
671e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 22($t1)", 0, 22, t0);
672e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 26($t1)", 0, 26, t0);
673e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 30($t1)", 0, 30, t0);
674e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 34($t1)", 0, 34, t0);
675e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lb $t0, 38($t1)", 0, 38, t0);
676e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
677e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("LBU\n");
678e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 0($t1)", 0, 0, t0);
679e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 4($t1)", 0, 4, t0);
680e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 8($t1)", 0, 8, t0);
681e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 12($t1)", 0, 12, t0);
682e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 16($t1)", 0, 16, t0);
683e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 20($t1)", 0, 20, t0);
684e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 24($t1)", 0, 24, t0);
685e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 28($t1)", 0, 28, t0);
686e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 32($t1)", 0, 32, t0);
687e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 36($t1)", 0, 36, t0);
688e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 40($t1)", 0, 40, t0);
689e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 44($t1)", 0, 44, t0);
690e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 48($t1)", 0, 48, t0);
691e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 52($t1)", 0, 52, t0);
692e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 56($t1)", 0, 56, t0);
693e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 60($t1)", 0, 60, t0);
694e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 64($t1)", 0, 64, t0);
695e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 2($t1)", 0, 2, t0);
696e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 6($t1)", 0, 6, t0);
697e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 10($t1)", 0, 10, t0);
698e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 14($t1)", 0, 14, t0);
699e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 18($t1)", 0, 18, t0);
700e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 22($t1)", 0, 22, t0);
701e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 26($t1)", 0, 26, t0);
702e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 30($t1)", 0, 30, t0);
703e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 34($t1)", 0, 34, t0);
704e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lbu $t0, 38($t1)", 0, 38, t0);
705e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
706e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("LH\n");
707e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 0($t1)", 0, 0, t0);
708e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 4($t1)", 0, 4, t0);
709e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 8($t1)", 0, 8, t0);
710e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 12($t1)", 0, 12, t0);
711e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 16($t1)", 0, 16, t0);
712e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 20($t1)", 0, 20, t0);
713e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 24($t1)", 0, 24, t0);
714e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 28($t1)", 0, 28, t0);
715e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 32($t1)", 0, 32, t0);
716e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 36($t1)", 0, 36, t0);
717e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 40($t1)", 0, 40, t0);
718e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 44($t1)", 0, 44, t0);
719e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 48($t1)", 0, 48, t0);
720e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 52($t1)", 0, 52, t0);
721e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 56($t1)", 0, 56, t0);
722e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 60($t1)", 0, 60, t0);
723e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 64($t1)", 0, 64, t0);
724e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 2($t1)", 0, 2, t0);
725e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 6($t1)", 0, 6, t0);
726e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 10($t1)", 0, 10, t0);
727e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 14($t1)", 0, 14, t0);
728e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 18($t1)", 0, 18, t0);
729e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 22($t1)", 0, 22, t0);
730e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 26($t1)", 0, 26, t0);
731e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 30($t1)", 0, 30, t0);
732e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 34($t1)", 0, 34, t0);
733e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lh $t0, 38($t1)", 0, 38, t0);
734e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
735e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("LHU\n");
736e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 0($t1)", 0, 0, t0);
737e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 4($t1)", 0, 4, t0);
738e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 8($t1)", 0, 8, t0);
739e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 12($t1)", 0, 12, t0);
740e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 16($t1)", 0, 16, t0);
741e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 20($t1)", 0, 20, t0);
742e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 24($t1)", 0, 24, t0);
743e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 28($t1)", 0, 28, t0);
744e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 32($t1)", 0, 32, t0);
745e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 36($t1)", 0, 36, t0);
746e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 40($t1)", 0, 40, t0);
747e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 44($t1)", 0, 44, t0);
748e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 48($t1)", 0, 48, t0);
749e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 52($t1)", 0, 52, t0);
750e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 56($t1)", 0, 56, t0);
751e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 60($t1)", 0, 60, t0);
752e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 64($t1)", 0, 64, t0);
753e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 2($t1)", 0, 2, t0);
754e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 6($t1)", 0, 6, t0);
755e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 10($t1)", 0, 10, t0);
756e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 14($t1)", 0, 14, t0);
757e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 18($t1)", 0, 18, t0);
758e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 22($t1)", 0, 22, t0);
759e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 26($t1)", 0, 26, t0);
760e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 30($t1)", 0, 30, t0);
761e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 34($t1)", 0, 34, t0);
762e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lhu $t0, 38($t1)", 0, 38, t0);
763e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
764e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("LUI\n");
765e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("lui  $t0, 0xffff", 0xffff, t0, t1);
766e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("lui  $t0, 0xff00", 0xff00, t0, t1);
767e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("lui  $t0, 0xff", 0xff, t0, t1);
768e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("lui  $t0, 0x0", 0x0, t0, t1);
769e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("lui  $t0, 0x5", 0x5, t0, t1);
770e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("lui  $t0, 0x387", 0x387, t0, t1);
771e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
772e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("LW\n");
773e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 0($t1)", 0, 0, t0);
774e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 4($t1)", 0, 4, t0);
775e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 8($t1)", 0, 8, t0);
776e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 12($t1)", 0, 12, t0);
777e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 16($t1)", 0, 16, t0);
778e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 20($t1)", 0, 20, t0);
779e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 24($t1)", 0, 24, t0);
780e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 28($t1)", 0, 28, t0);
781e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 32($t1)", 0, 32, t0);
782e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 36($t1)", 0, 36, t0);
783e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 40($t1)", 0, 40, t0);
784e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 44($t1)", 0, 44, t0);
785e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 48($t1)", 0, 48, t0);
786e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 52($t1)", 0, 52, t0);
787e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 56($t1)", 0, 56, t0);
788e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 60($t1)", 0, 60, t0);
789e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 64($t1)", 0, 64, t0);
790e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 2($t1)", 0, 2, t0);
791e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 6($t1)", 0, 6, t0);
792e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 10($t1)", 0, 10, t0);
793e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 14($t1)", 0, 14, t0);
794e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 18($t1)", 0, 18, t0);
795e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 22($t1)", 0, 22, t0);
796e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 26($t1)", 0, 26, t0);
797e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 30($t1)", 0, 30, t0);
798e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 34($t1)", 0, 34, t0);
799e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lw $t0, 38($t1)", 0, 38, t0);
800e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
801e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("LWL\n");
802e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 0($t1)", 0, 0, t0);
803e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 4($t1)", 0, 4, t0);
804e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 8($t1)", 0, 8, t0);
805e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 12($t1)", 0, 12, t0);
806e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 16($t1)", 0, 16, t0);
807e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 20($t1)", 0, 20, t0);
808e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 24($t1)", 0, 24, t0);
809e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 28($t1)", 0, 28, t0);
810e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 32($t1)", 0, 32, t0);
811e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 36($t1)", 0, 36, t0);
812e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 40($t1)", 0, 40, t0);
813e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 44($t1)", 0, 44, t0);
814e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 48($t1)", 0, 48, t0);
815e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 52($t1)", 0, 52, t0);
816e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 56($t1)", 0, 56, t0);
817e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 60($t1)", 0, 60, t0);
818e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 64($t1)", 0, 64, t0);
819e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 2($t1)", 0, 2, t0);
820e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 6($t1)", 0, 6, t0);
821e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 10($t1)", 0, 10, t0);
822e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 14($t1)", 0, 14, t0);
823e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 18($t1)", 0, 18, t0);
824e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 22($t1)", 0, 22, t0);
825e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 26($t1)", 0, 26, t0);
826e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 30($t1)", 0, 30, t0);
827e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 34($t1)", 0, 34, t0);
828e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwl $t0, 38($t1)", 0, 38, t0);
829e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
830e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("LWR\n");
831e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 0($t1)", 0, 0, t0);
832e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 4($t1)", 0, 4, t0);
833e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 8($t1)", 0, 8, t0);
834e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 12($t1)", 0, 12, t0);
835e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 16($t1)", 0, 16, t0);
836e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 20($t1)", 0, 20, t0);
837e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 24($t1)", 0, 24, t0);
838e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 28($t1)", 0, 28, t0);
839e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 32($t1)", 0, 32, t0);
840e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 36($t1)", 0, 36, t0);
841e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 40($t1)", 0, 40, t0);
842e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 44($t1)", 0, 44, t0);
843e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 48($t1)", 0, 48, t0);
844e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 52($t1)", 0, 52, t0);
845e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 56($t1)", 0, 56, t0);
846e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 60($t1)", 0, 60, t0);
847e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 64($t1)", 0, 64, t0);
848e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 2($t1)", 0, 2, t0);
849e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 6($t1)", 0, 6, t0);
850e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 10($t1)", 0, 10, t0);
851e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 14($t1)", 0, 14, t0);
852e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 18($t1)", 0, 18, t0);
853e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 22($t1)", 0, 22, t0);
854e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 26($t1)", 0, 26, t0);
855e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 30($t1)", 0, 30, t0);
856e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 34($t1)", 0, 34, t0);
857e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN5LOAD("lwr $t0, 38($t1)", 0, 38, t0);
858e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
859e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("MADD\n");
860e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("madd  $t0, $t1", 0x6, 0x2, t0, t1);
861e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("madd  $t0, $t1", 0x55, 0x28, t0, t1);
862e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("madd  $t0, $t1", 0x18, 0xfff, t0, t1);
863e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("madd  $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
864e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("madd  $t0, $t1", 0xffffffff, 0x1, t0, t1);
865e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("madd  $t0, $t1", 0x1, 0xffffffff, t0, t1);
866e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("madd  $t0, $t1", 0x2, 0x6, t0, t1);
867e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("madd  $t0, $t1", 0x356, 0x555, t0, t1);
868e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
869e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("MADDU\n");
870e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("maddu  $t0, $t1", 0x6, 0x2, t0, t1);
871e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("maddu  $t0, $t1", 0x55, 0x28, t0, t1);
872e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("maddu  $t0, $t1", 0x18, 0xfff, t0, t1);
873e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("maddu  $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
874e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("maddu  $t0, $t1", 0xffffffff, 0x1, t0, t1);
875e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("maddu  $t0, $t1", 0x1, 0xffffffff, t0, t1);
876e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("maddu  $t0, $t1", 0x2, 0x6, t0, t1);
877e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("maddu  $t0, $t1", 0x356, 0x555, t0, t1);
878e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
879e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("MOVN\n");
880e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x31415927, 0,          t0, t1, t2);
881e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x31415927, 1,          t0, t1, t2);
882e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0,          255,        t0, t1, t2);
883e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", -1,         0,          t0, t1, t2);
884e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0,          1,          t0, t1, t2);
885e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0,          0,          t0, t1, t2);
886e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x80000000, -1,         t0, t1, t2);
887e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x80000000, 1,          t0, t1, t2);
888e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x7fffffff, 1,          t0, t1, t2);
889e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
890e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
891e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x80000000, 1,          t0, t1, t2);
892e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
893e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x31415927, 0,          t0, t1, t2);
894e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
895e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0,          1,          t0, t1, t2);
896e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 1,          0,          t0, t1, t2);
897e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0,          1,          t0, t1, t2);
898e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", -1,         0,          t0, t1, t2);
899e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
900e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
901e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x80000000, 1,          t0, t1, t2);
902e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
903e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
904e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x80000000, 1,          t0, t1, t2);
905e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movn $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
906e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
907e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("MOVZ\n");
908e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x31415927, 0,          t0, t1, t2);
909e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x31415927, 1,          t0, t1, t2);
910e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0,          255,        t0, t1, t2);
911e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", -1,         0,          t0, t1, t2);
912e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0,          1,          t0, t1, t2);
913e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0,          0,          t0, t1, t2);
914e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x80000000, -1,         t0, t1, t2);
915e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x80000000, 1,          t0, t1, t2);
916e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x7fffffff, 1,          t0, t1, t2);
917e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
918e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
919e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x80000000, 1,          t0, t1, t2);
920e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
921e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x31415927, 0,          t0, t1, t2);
922e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
923e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0,          1,          t0, t1, t2);
924e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 1,          0,          t0, t1, t2);
925e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0,          1,          t0, t1, t2);
926e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", -1,         0,          t0, t1, t2);
927e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
928e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
929e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x80000000, 1,          t0, t1, t2);
930e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
931e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
932e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x80000000, 1,          t0, t1, t2);
933e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("movz $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
934e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
935e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("MSUB\n");
936e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msub  $t0, $t1", 0x6, 0x2, t0, t1);
937e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msub  $t0, $t1", 0x55, 0x28, t0, t1);
938e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msub  $t0, $t1", 0x18, 0xfff, t0, t1);
939e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msub  $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
940e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msub  $t0, $t1", 0xffffffff, 0x1, t0, t1);
941e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msub  $t0, $t1", 0x1, 0xffffffff, t0, t1);
942e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msub  $t0, $t1", 0x2, 0x6, t0, t1);
943e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msub  $t0, $t1", 0x356, 0x555, t0, t1);
944e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
945e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("MSUBU\n");
946e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x31415927, 0xffffffff, t0, t1);
947e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x31415927, 0xee00ee00, t0, t1);
948e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0,          255,        t0, t1);
949e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", -1,         0,          t0, t1);
950e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0,          1,          t0, t1);
951e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0,          0,          t0, t1);
952e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x80000000, -1,         t0, t1);
953e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x80000000, 0x80000000, t0, t1);
954e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x7fffffff, 0,          t0, t1);
955e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x80000000, 0x80000000, t0, t1);
956e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x7fffffff, 0x80000000, t0, t1);
957e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x80000000, 0xff000000, t0, t1);
958e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1);
959e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x31415927, 0xffffffff, t0, t1);
960e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x31415927, 0xee00ee00, t0, t1);
961e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0,          255,        t0, t1);
962e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 1,          0,          t0, t1);
963e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0,          1,          t0, t1);
964e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", -1,         0,          t0, t1);
965e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0,          -1,         t0, t1);
966e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0,          0x80000000, t0, t1);
967e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x80000000, 0,          t0, t1);
968e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x80000000, 0x80000000, t0, t1);
969e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x7fffffff, 0x80000000, t0, t1);
970e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x80000000, 0xff000000, t0, t1);
971e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1);
972e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0xffffffff, 0,          t0, t1);
973e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0,          0xffffffff, t0, t1);
974e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0xffffffff, 0xffffffff, t0, t1);
975e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
976e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("msubu  $t0, $t1", 0x0000ffff, 0x0000ffff, t0, t1);
977e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
978e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("MUL\n");
979e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
980e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
981e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0,          255,        t0, t1, t2);
982e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", -1,         0,          t0, t1, t2);
983e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0,          1,          t0, t1, t2);
984e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0,          0,          t0, t1, t2);
985e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x80000000, -1,         t0, t1, t2);
986e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
987e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
988e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
989e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
990e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
991e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
992e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
993e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
994e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0,          255,        t0, t1, t2);
995e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 1,          0,          t0, t1, t2);
996e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0,          1,          t0, t1, t2);
997e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", -1,         0,          t0, t1, t2);
998e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
999e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
1000e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
1001e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1002e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1003e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1004e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1005e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1006e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1007e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1008e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1009e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("mul $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1010e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1011e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("MULT\n");
1012e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x31415927, 0xffffffff, t0, t1);
1013e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x31415927, 0xee00ee00, t0, t1);
1014e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0,          255,        t0, t1);
1015e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", -1,         0,          t0, t1);
1016e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0,          1,          t0, t1);
1017e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0,          0,          t0, t1);
1018e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x80000000, -1,         t0, t1);
1019e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x80000000, 0x80000000, t0, t1);
1020e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x7fffffff, 0,          t0, t1);
1021e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x80000000, 0x80000000, t0, t1);
1022e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x7fffffff, 0x80000000, t0, t1);
1023e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x80000000, 0xff000000, t0, t1);
1024e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1);
1025e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x31415927, 0xffffffff, t0, t1);
1026e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x31415927, 0xee00ee00, t0, t1);
1027e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0,          255,        t0, t1);
1028e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 1,          0,          t0, t1);
1029e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0,          1,          t0, t1);
1030e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", -1,         0,          t0, t1);
1031e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0,          -1,         t0, t1);
1032e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0,          0x80000000, t0, t1);
1033e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x80000000, 0,          t0, t1);
1034e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x80000000, 0x80000000, t0, t1);
1035e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x7fffffff, 0x80000000, t0, t1);
1036e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x80000000, 0xff000000, t0, t1);
1037e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1);
1038e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0xffffffff, 0,          t0, t1);
1039e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0,          0xffffffff, t0, t1);
1040e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0xffffffff, 0xffffffff, t0, t1);
1041e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
1042e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("mult  $t0, $t1", 0x0000ffff, 0x0000ffff, t0, t1);
1043e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1044e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("MULTU\n");
1045e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x31415927, 0xffffffff, t0, t1);
1046e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x31415927, 0xee00ee00, t0, t1);
1047e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0,          255,        t0, t1);
1048e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", -1,         0,          t0, t1);
1049e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0,          1,          t0, t1);
1050e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0,          0,          t0, t1);
1051e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x80000000, -1,         t0, t1);
1052e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x80000000, 0x80000000, t0, t1);
1053e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x7fffffff, 0,          t0, t1);
1054e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x80000000, 0x80000000, t0, t1);
1055e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x7fffffff, 0x80000000, t0, t1);
1056e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x80000000, 0xff000000, t0, t1);
1057e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1);
1058e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x31415927, 0xffffffff, t0, t1);
1059e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x31415927, 0xee00ee00, t0, t1);
1060e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0,          255,        t0, t1);
1061e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 1,          0,          t0, t1);
1062e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0,          1,          t0, t1);
1063e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", -1,         0,          t0, t1);
1064e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0,          -1,         t0, t1);
1065e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0,          0x80000000, t0, t1);
1066e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x80000000, 0,          t0, t1);
1067e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x80000000, 0x80000000, t0, t1);
1068e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x7fffffff, 0x80000000, t0, t1);
1069e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x80000000, 0xff000000, t0, t1);
1070e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x7fffffff, 0x0dd00000, t0, t1);
1071e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0xffffffff, 0,          t0, t1);
1072e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0,          0xffffffff, t0, t1);
1073e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0xffffffff, 0xffffffff, t0, t1);
1074e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1);
1075e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3a("multu  $t0, $t1", 0x0000ffff, 0x0000ffff, t0, t1);
1076e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1077e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("NOR\n");
1078e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1079e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1080e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1081e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1082e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1083e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0,          0,          t0, t1, t2);
1084e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x80000000, -1,         t0, t1, t2);
1085e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1086e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
1087e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1088e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1089e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1090e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1091e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1092e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1093e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1094e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 1,          0,          t0, t1, t2);
1095e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1096e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1097e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
1098e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
1099e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
1100e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1101e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1102e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1103e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1104e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1105e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1106e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1107e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1108e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("nor $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1109e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
11104931c0dbc3912b97beb3784122d1ea7825a2c882petarj#if (__mips==32) && (__mips_isa_rev>=2)
1111e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("WSBH\n");
1112e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("wsbh  $t0, $t1", 0x2, t0, t1);
1113e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("wsbh  $t0, $t1", 0x28, t0, t1);
1114e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("wsbh  $t0, $t1", -258, t0, t1);
1115e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("wsbh  $t0, $t1", 0x7fffffff, t0, t1);
1116e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("wsbh  $t0, $t1", -11, t0, t1);
1117e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("wsbh  $t0, $t1", 0xffffffff, t0, t1);
1118e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("wsbh  $t0, $t1", 0x16, t0, t1);
1119e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("wsbh  $t0, $t1", -1, t0, t1);
11204931c0dbc3912b97beb3784122d1ea7825a2c882petarj#endif
1121e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1122e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("NOT\n");
1123e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("not  $t0, $t1", 0x2, t0, t1);
1124e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("not  $t0, $t1", 0x28, t0, t1);
1125e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("not  $t0, $t1", -258, t0, t1);
1126e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("not  $t0, $t1", 0x7fffffff, t0, t1);
1127e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("not  $t0, $t1", -11, t0, t1);
1128e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("not  $t0, $t1", 0xffffffff, t0, t1);
1129e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("not  $t0, $t1", 0x16, t0, t1);
1130e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("not  $t0, $t1", -1, t0, t1);
1131e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1132e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("NEGU\n");
1133e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("negu  $t0, $t1", 0x2, t0, t1);
1134e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("negu  $t0, $t1", 0x28, t0, t1);
1135e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("negu  $t0, $t1", -258, t0, t1);
1136e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("negu  $t0, $t1", 0x7fffffff, t0, t1);
1137e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("negu  $t0, $t1", -11, t0, t1);
1138e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("negu  $t0, $t1", 0xffffffff, t0, t1);
1139e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("negu  $t0, $t1", 0x16, t0, t1);
1140e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("negu  $t0, $t1", -1, t0, t1);
1141e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1142e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("OR\n");
1143e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1144e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1145e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1146e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1147e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1148e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0,          0,          t0, t1, t2);
1149e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x80000000, -1,         t0, t1, t2);
1150e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1151e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
1152e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1153e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1154e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1155e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1156e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1157e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1158e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1159e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 1,          0,          t0, t1, t2);
1160e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1161e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1162e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
1163e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
1164e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
1165e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1166e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1167e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1168e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1169e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1170e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1171e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1172e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1173e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("or $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1174e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1175e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("ORI\n");
1176e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0xffff", 0x31415927, 0xffff, t0, t1);
1177e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0xee00", 0x31415927, 0xee00, t0, t1);
1178e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 255", 0,          255,        t0, t1);
1179e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0", -1,         0,          t0, t1);
1180e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 1", 0,          1,          t0, t1);
1181e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0", 0,          0,          t0, t1);
1182e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1);
1183e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0", 0x7fffffff, 0,          t0, t1);
1184e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1);
1185e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0x8000", 0x7fffffff, 0x8000, t0, t1);
1186e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0xff00", 0x80000000, 0xff00, t0, t1);
1187e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0x0dd0", 0x7fffffff, 0x0dd0, t0, t1);
1188e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0xffff", 0x31415927, 0xffff, t0, t1);
1189e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0xee00", 0x31415927, 0xee00, t0, t1);
1190e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 255", 0,          255,        t0, t1);
1191e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0", 1,          0,          t0, t1);
1192e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 1", 0,          1,          t0, t1);
1193e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0", -1,         0,          t0, t1);
1194e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0x8000", 0,          0x8000, t0, t1);
1195e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0", 0x8000, 0,          t0, t1);
1196e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1);
1197e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0x8000", 0x7fffffff, 0x8000, t0, t1);
1198e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0xff00", 0x80000000, 0xff00, t0, t1);
1199e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0x0dd0", 0x7fffffff, 0x0dd0, t0, t1);
1200e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0", 0xffff, 0,          t0, t1);
1201e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0xffff", 0,          0xffff, t0, t1);
1202e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0xffff", 0xffffffff, 0xffff, t0, t1);
1203e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0x7fff", 0x7fffffff, 0x7fff, t0, t1);
1204e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("ori $t0, $t1, 0x0000", 0x0000ffff, 0x0000, t0, t1);
1205e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
12064931c0dbc3912b97beb3784122d1ea7825a2c882petarj#if (__mips==32) && (__mips_isa_rev>=2)
1207e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("ROTR\n");
1208e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 0x00000000", 0x31415927, 0x00000000, t0, t1);
1209e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1);
1210e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1);
1211e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1);
1212e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 0x00000010", 0x31415927, 0x00000010, t0, t1);
1213e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 0x0000001F", 0x31415927, 0x0000001F, t0, t1);
1214e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 0x00000020", 0x31415927, 0x00000020, t0, t1);
1215e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 0x00000021", 0x31415927, 0x00000021, t0, t1);
1216e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 0x00000000", 0x00088000, 0x00000000, t0, t1);
1217e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 0x00000001", 0x00088000, 0x00000001, t0, t1);
1218e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 31", 0x00088000, 31, t0, t1);
1219e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 16", 0x00010000, 16, t0, t1);
1220e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 17", 0x00010000, 17, t0, t1);
1221e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 18", 0x00010000, 18, t0, t1);
1222e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 0", 0, 0, t0, t1);
1223e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("rotr $t0, $t1, 0xffff", 0xffff, 0xffff, t0, t1);
12244931c0dbc3912b97beb3784122d1ea7825a2c882petarj#endif
1225e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
12264931c0dbc3912b97beb3784122d1ea7825a2c882petarj#if (__mips==32) && (__mips_isa_rev>=2)
1227e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("ROTRV\n");
1228e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1229e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1230e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1231e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1232e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1233e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0,          0,          t0, t1, t2);
1234e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, -1,         t0, t1, t2);
1235e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1236e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
1237e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1238e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1239e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1240e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1241e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1242e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1243e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1244e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 1,          0,          t0, t1, t2);
1245e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1246e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1247e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
1248e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
1249e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
1250e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1251e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1252e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1253e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1254e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1255e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1256e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1257e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1258e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1259e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2);
1260e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
1261e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2);
1262e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2);
1263e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2);
1264e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2);
1265e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2);
1266e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2);
1267e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2);
1268e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2);
1269e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2);
1270e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2);
1271e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2);
1272e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2);
1273e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0, 0, t0, t1, t2);
1274e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("rotrv $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2);
1275e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1276e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("SEB\n");
1277e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seb  $t0, $t1", 0x2, t0, t1);
1278e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seb  $t0, $t1", 0x28, t0, t1);
1279e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seb  $t0, $t1", -258, t0, t1);
1280e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seb  $t0, $t1", 0x7fffffff, t0, t1);
1281e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seb  $t0, $t1", -11, t0, t1);
1282e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seb  $t0, $t1", 0xffffffff, t0, t1);
1283e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seb  $t0, $t1", 0x16, t0, t1);
1284e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seb  $t0, $t1", -1, t0, t1);
1285e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1286e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("SEH\n");
1287e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seh  $t0, $t1", 0x2, t0, t1);
1288e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seh  $t0, $t1", 0x28, t0, t1);
1289e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seh  $t0, $t1", -258, t0, t1);
1290e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seh  $t0, $t1", 0x7fffffff, t0, t1);
1291e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seh  $t0, $t1", -11, t0, t1);
1292e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seh  $t0, $t1", 0xffffffff, t0, t1);
1293e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seh  $t0, $t1", 0x16, t0, t1);
1294e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST3("seh  $t0, $t1", -1, t0, t1);
12954931c0dbc3912b97beb3784122d1ea7825a2c882petarj#endif
1296e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1297e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("SLL\n");
1298e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sll $t0, $t1, 0x00000000", 0x31415927, 0x00000000, t0, t1);
1299e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sll $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1);
1300e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sll $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1);
1301e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sll $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1);
1302e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sll $t0, $t1, 0x00000010", 0x31415927, 0x00000010, t0, t1);
1303e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sll $t0, $t1, 0x0000001F", 0x31415927, 0x0000001F, t0, t1);
1304e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sll $t0, $t1, 0x00000009", 0x31415927, 0x00000009, t0, t1);
1305e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sll $t0, $t1, 0x0000000A", 0x31415927, 0x0000000A, t0, t1);
1306e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sll $t0, $t1, 0x00000000", 0x00088000, 0x00000000, t0, t1);
1307e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sll $t0, $t1, 0x00000001", 0x00088000, 0x00000001, t0, t1);
1308e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sll $t0, $t1, 31", 0x00088000, 31, t0, t1);
1309e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sll $t0, $t1, 16", 0x00010000, 16, t0, t1);
1310e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sll $t0, $t1, 17", 0x00010000, 17, t0, t1);
1311e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sll $t0, $t1, 18", 0x00010000, 18, t0, t1);
1312e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sll $t0, $t1, 0", 0, 0, t0, t1);
1313e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1314e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("SLLV\n");
1315e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1316e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1317e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1318e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1319e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1320e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0,          0,          t0, t1, t2);
1321e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x80000000, -1,         t0, t1, t2);
1322e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1323e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
1324e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1325e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1326e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1327e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1328e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1329e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1330e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1331e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 1,          0,          t0, t1, t2);
1332e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1333e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1334e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
1335e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
1336e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
1337e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1338e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1339e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1340e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1341e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1342e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1343e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1344e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1345e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1346e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2);
1347e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
1348e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2);
1349e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2);
1350e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2);
1351e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2);
1352e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2);
1353e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2);
1354e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2);
1355e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2);
1356e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2);
1357e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2);
1358e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2);
1359e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2);
1360e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0, 0, t0, t1, t2);
1361e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sllv $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2);
1362e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1363e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("SLT\n");
1364e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1365e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1366e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1367e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1368e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1369e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0,          0,          t0, t1, t2);
1370e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x80000000, -1,         t0, t1, t2);
1371e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1372e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
1373e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1374e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1375e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1376e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1377e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1378e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1379e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1380e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 1,          0,          t0, t1, t2);
1381e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1382e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1383e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
1384e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
1385e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
1386e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1387e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1388e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1389e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1390e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1391e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1392e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1393e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1394e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1395e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1396e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1397e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1398e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1399e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1400e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2);
1401e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
1402e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2);
1403e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2);
1404e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2);
1405e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2);
1406e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2);
1407e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2);
1408e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2);
1409e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2);
1410e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2);
1411e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2);
1412e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2);
1413e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2);
1414e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0, 0, t0, t1, t2);
1415e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("slt $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2);
1416e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1417e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("SLTI\n");
1418e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("slti $t0, $t1, 0x00000000", 0x00000001, 0x31415927, t0, t1);
1419e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("slti $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1);
1420e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("slti $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1);
1421e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("slti $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1);
1422e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("slti $t0, $t1, 0x00000010", 0x00000010, 0x00000010, t0, t1);
1423e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("slti $t0, $t1, 0x0000001F", 0x00000010, 0x31415927, t0, t1);
1424e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("slti $t0, $t1, 0x00000009", 0x31415927, 0x00000009, t0, t1);
1425e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("slti $t0, $t1, 0x0000000A", 0x31415927, 0x0000000A, t0, t1);
1426e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("slti $t0, $t1, 0x00000000", 0x00088000, 0x0000000A, t0, t1);
1427e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("slti $t0, $t1, 0x00000001", 0x00000000, 0x00000001, t0, t1);
1428e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("slti $t0, $t1, 31", 0x00088000, 31, t0, t1);
1429e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("slti $t0, $t1, 16", 0x00010000, 16, t0, t1);
1430e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("slti $t0, $t1, 17", 0x00010000, 17, t0, t1);
1431e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("slti $t0, $t1, 18", 0x00010000, 18, t0, t1);
1432e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("slti $t0, $t1, 0", 0, 0, t0, t1);
1433e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1434e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("SLTIU\n");
1435e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sltiu $t0, $t1, 0x00000000", 0x00000001, 0x31415927, t0, t1);
1436e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sltiu $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1);
1437e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sltiu $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1);
1438e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sltiu $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1);
1439e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sltiu $t0, $t1, 0x00000010", 0x00000010, 0x00000010, t0, t1);
1440e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sltiu $t0, $t1, 0x0000001F", 0x00000010, 0x31415927, t0, t1);
1441e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sltiu $t0, $t1, 0x00000009", 0x31415927, 0x00000009, t0, t1);
1442e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sltiu $t0, $t1, 0x0000000A", 0x31415927, 0x0000000A, t0, t1);
1443e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sltiu $t0, $t1, 0x00000000", 0x00088000, 0x0000000A, t0, t1);
1444e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sltiu $t0, $t1, 0x00000001", 0x00000000, 0x00000001, t0, t1);
1445e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sltiu $t0, $t1, 31", 0x00088000, 31, t0, t1);
1446e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sltiu $t0, $t1, 16", 0x00010000, 16, t0, t1);
1447e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sltiu $t0, $t1, 17", 0x00010000, 17, t0, t1);
1448e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sltiu $t0, $t1, 18", 0x00010000, 18, t0, t1);
1449e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sltiu $t0, $t1, 0", 0, 0, t0, t1);
1450e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1451e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("SLTU\n");
1452e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1453e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1454e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1455e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1456e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1457e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0,          0,          t0, t1, t2);
1458e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x80000000, -1,         t0, t1, t2);
1459e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1460e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
1461e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1462e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1463e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1464e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1465e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1466e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1467e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1468e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 1,          0,          t0, t1, t2);
1469e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1470e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1471e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
1472e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
1473e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
1474e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1475e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1476e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1477e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1478e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1479e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1480e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1481e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1482e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1483e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1484e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1485e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1486e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1487e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1488e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2);
1489e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
1490e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2);
1491e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2);
1492e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2);
1493e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2);
1494e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2);
1495e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2);
1496e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2);
1497e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2);
1498e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2);
1499e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2);
1500e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2);
1501e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2);
1502e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0, 0, t0, t1, t2);
1503e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("sltu $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2);
1504e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1505e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("SRA\n");
1506e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sra $t0, $t1, 0x00000000", 0x00000001, 0x31415927, t0, t1);
1507e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sra $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1);
1508e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sra $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1);
1509e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sra $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1);
1510e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sra $t0, $t1, 0x00000010", 0x00000010, 0x00000010, t0, t1);
1511e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sra $t0, $t1, 0x0000001F", 0x00000010, 0x31415927, t0, t1);
1512e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sra $t0, $t1, 0x00000009", 0x31415927, 0x00000009, t0, t1);
1513e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sra $t0, $t1, 0x0000000A", 0x31415927, 0x0000000A, t0, t1);
1514e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sra $t0, $t1, 0x00000000", 0x00088000, 0x0000000A, t0, t1);
1515e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sra $t0, $t1, 0x00000001", 0x00000000, 0x00000001, t0, t1);
1516e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sra $t0, $t1, 31", 0x00088000, 31, t0, t1);
1517e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sra $t0, $t1, 16", 0x00010000, 16, t0, t1);
1518e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sra $t0, $t1, 17", 0x00010000, 17, t0, t1);
1519e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sra $t0, $t1, 18", 0x00010000, 18, t0, t1);
1520e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("sra $t0, $t1, 0", 0, 0, t0, t1);
1521e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1522e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("SRAV\n");
1523e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1524e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1525e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1526e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1527e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1528e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0,          0,          t0, t1, t2);
1529e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x80000000, -1,         t0, t1, t2);
1530e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1531e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
1532e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1533e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1534e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1535e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1536e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1537e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1538e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1539e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 1,          0,          t0, t1, t2);
1540e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1541e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1542e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
1543e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
1544e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
1545e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1546e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1547e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1548e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1549e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1550e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1551e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1552e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1553e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1554e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1555e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1556e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1557e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1558e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1559e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2);
1560e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
1561e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2);
1562e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2);
1563e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2);
1564e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2);
1565e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2);
1566e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2);
1567e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2);
1568e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2);
1569e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2);
1570e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2);
1571e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2);
1572e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2);
1573e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0, 0, t0, t1, t2);
1574e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srav $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2);
1575e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1576e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("SRL\n");
1577e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("srl $t0, $t1, 0x00000000", 0x00000001, 0x31415927, t0, t1);
1578e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("srl $t0, $t1, 0x00000001", 0x31415927, 0x00000001, t0, t1);
1579e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("srl $t0, $t1, 0x00000002", 0x31415927, 0x00000002, t0, t1);
1580e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("srl $t0, $t1, 0x0000000F", 0x31415927, 0x0000000F, t0, t1);
1581e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("srl $t0, $t1, 0x00000010", 0x00000010, 0x00000010, t0, t1);
1582e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("srl $t0, $t1, 0x0000001F", 0x00000010, 0x31415927, t0, t1);
1583e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("srl $t0, $t1, 0x00000009", 0x31415927, 0x00000009, t0, t1);
1584e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("srl $t0, $t1, 0x0000000A", 0x31415927, 0x0000000A, t0, t1);
1585e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("srl $t0, $t1, 0x00000000", 0x00088000, 0x0000000A, t0, t1);
1586e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("srl $t0, $t1, 0x00000001", 0x00000000, 0x00000001, t0, t1);
1587e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("srl $t0, $t1, 31", 0x00088000, 31, t0, t1);
1588e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("srl $t0, $t1, 16", 0x00010000, 16, t0, t1);
1589e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("srl $t0, $t1, 17", 0x00010000, 17, t0, t1);
1590e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("srl $t0, $t1, 18", 0x00010000, 18, t0, t1);
1591e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("srl $t0, $t1, 0", 0, 0, t0, t1);
1592e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1593e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("SRLV\n");
1594e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1595e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1596e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1597e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1598e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1599e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0,          0,          t0, t1, t2);
1600e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x80000000, -1,         t0, t1, t2);
1601e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1602e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
1603e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1604e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1605e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1606e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1607e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1608e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1609e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1610e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 1,          0,          t0, t1, t2);
1611e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1612e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1613e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
1614e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
1615e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
1616e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1617e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1618e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1619e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1620e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1621e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1622e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1623e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1624e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1625e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1626e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1627e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1628e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1629e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1630e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2);
1631e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
1632e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2);
1633e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2);
1634e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2);
1635e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2);
1636e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2);
1637e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2);
1638e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2);
1639e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2);
1640e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2);
1641e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2);
1642e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2);
1643e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2);
1644e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0, 0, t0, t1, t2);
1645e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("srlv $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2);
1646e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1647e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("SUBU\n");
1648e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
1649e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00001110, t0, t1, t2);
1650e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1651e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1652e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1653e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0,          0,          t0, t1, t2);
1654e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x80000000, -1,         t0, t1, t2);
1655e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1656e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
1657e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1658e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1659e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1660e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1661e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1662e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1663e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1664e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 1,          0,          t0, t1, t2);
1665e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1666e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1667e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
1668e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
1669e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
1670e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1671e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1672e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1673e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1674e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1675e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1676e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1677e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1678e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1679e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1680e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1681e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1682e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1683e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1684e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000000, t0, t1, t2);
1685e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000001, t0, t1, t2);
1686e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000002, t0, t1, t2);
1687e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x0000000F, t0, t1, t2);
1688e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000010, t0, t1, t2);
1689e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x0000001F, t0, t1, t2);
1690e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000020, t0, t1, t2);
1691e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x00000021, t0, t1, t2);
1692e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x00088000, 0x00000000, t0, t1, t2);
1693e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x00088000, 0x00000001, t0, t1, t2);
1694e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x00088000, 31, t0, t1, t2);
1695e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x00010000, 16, t0, t1, t2);
1696e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x00010000, 17, t0, t1, t2);
1697e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x00010000, 18, t0, t1, t2);
1698e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0, 0, t0, t1, t2);
1699e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0xffff, 0xffff, t0, t1, t2);
1700e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1701e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("SUB\n");
1702e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1703e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x27181728, t0, t1, t2);
1704e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x31415927, 0x97181728, t0, t1, t2);
1705e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0,          0,          t0, t1, t2);
1706e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 1,          0,          t0, t1, t2);
1707e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1708e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1709e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
1710e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
1711e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
1712e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1713e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1714e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x80000000, 0x7fffffff, t0, t1, t2);
1715e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("subu $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1716e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1717e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("XOR\n");
1718e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1719e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1720e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1721e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1722e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1723e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0,          0,          t0, t1, t2);
1724e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x80000000, -1,         t0, t1, t2);
1725e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1726e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0,          t0, t1, t2);
1727e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1728e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1729e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1730e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1731e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2);
1732e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x31415927, 0xee00ee00, t0, t1, t2);
1733e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0,          255,        t0, t1, t2);
1734e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 1,          0,          t0, t1, t2);
1735e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0,          1,          t0, t1, t2);
1736e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", -1,         0,          t0, t1, t2);
1737e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0,          -1,         t0, t1, t2);
1738e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0,          0x80000000, t0, t1, t2);
1739e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0,          t0, t1, t2);
1740e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0x80000000, t0, t1, t2);
1741e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2);
1742e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x80000000, 0xff000000, t0, t1, t2);
1743e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0x0dd00000, t0, t1, t2);
1744e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0xffffffff, 0,          t0, t1, t2);
1745e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0,          0xffffffff, t0, t1, t2);
1746e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0xffffffff, 0xffffffff, t0, t1, t2);
1747e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2);
1748e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST1("xor $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2);
1749e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1750e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("XORI\n");
1751e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0xffff", 0x31415927, 0xffff, t0, t1);
1752e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0xee00", 0x31415927, 0xee00, t0, t1);
1753e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 255", 0,          255,        t0, t1);
1754e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0", -1,         0,          t0, t1);
1755e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 1", 0,          1,          t0, t1);
1756e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0", 0,          0,          t0, t1);
1757e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1);
1758e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0", 0x7fffffff, 0,          t0, t1);
1759e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1);
1760e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0x8000", 0x7fffffff, 0x8000, t0, t1);
1761e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0xff00", 0x80000000, 0xff00, t0, t1);
1762e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0x0dd0", 0x7fffffff, 0x0dd0, t0, t1);
1763e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0xffff", 0x31415927, 0xffff, t0, t1);
1764e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0xee00", 0x31415927, 0xee00, t0, t1);
1765e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 255", 0,          255,        t0, t1);
1766e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0", 1,          0,          t0, t1);
1767e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 1", 0,          1,          t0, t1);
1768e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0", -1,         0,          t0, t1);
1769e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0x8000", 0,          0x8000, t0, t1);
1770e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0", 0x8000, 0,          t0, t1);
1771e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0x8000", 0x80000000, 0x8000, t0, t1);
1772e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0x8000", 0x7fffffff, 0x8000, t0, t1);
1773e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0xff00", 0x80000000, 0xff00, t0, t1);
1774e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0x0dd0", 0x7fffffff, 0x0dd0, t0, t1);
1775e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0", 0xffff, 0,          t0, t1);
1776e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0xffff", 0,          0xffff, t0, t1);
1777e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0xffff", 0xffffffff, 0xffff, t0, t1);
1778e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0x7fff", 0x7fffffff, 0x7fff, t0, t1);
1779e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINST2("xori $t0, $t1, 0x0000", 0x0000ffff, 0x0000, t0, t1);
1780e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1781e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   printf("MFHI MFLO\n");
1782e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN_HILO(0x31415927);
1783e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN_HILO(0);
1784e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN_HILO(-1);
1785e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN_HILO(0xffffffff);
1786e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN_HILO(0x8000);
1787e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN_HILO(0x80000000);
1788e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN_HILO(0x0000ffff);
1789e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN_HILO(0x7fff);
1790e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN_HILO(0x0dd0);
1791e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   TESTINSN_HILO(0xff00);
1792e584b0e99b31e6d257cc58c630cd6067550539e3sewardj
1793e584b0e99b31e6d257cc58c630cd6067550539e3sewardj   return 0;
1794e584b0e99b31e6d257cc58c630cd6067550539e3sewardj}
1795