1# RUN: llvm-mc  %s -triple=mipsel-unknown-linux -mcpu=mips32r2 -show-encoding -show-inst | FileCheck --check-prefix=MIPS %s
2# RUN: llvm-mc  %s -triple=mipsel-unknown-linux -mcpu=mips32r2 -show-encoding -show-inst -mattr=+micromips | FileCheck --check-prefix=MICROMIPS %s
3
4
5  .text
6text_label:
7
8  add $4, -0x80000000
9# MIPS: lui   $1, 32768               # encoding: [0x00,0x80,0x01,0x3c]
10# MIPS: add   $4, $4, $1              # encoding: [0x20,0x20,0x81,0x00]
11# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADD
12# MICROMIPS: lui $1, 32768            # encoding: [0xa1,0x41,0x00,0x80]
13# MICROMIPS: add $4, $4, $1           # encoding: [0x24,0x00,0x10,0x21]
14# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADD_MM
15  add $4, -0x8001
16# MIPS: lui   $1, 65535               # encoding: [0xff,0xff,0x01,0x3c]
17# MIPS: ori   $1, $1, 32767           # encoding: [0xff,0x7f,0x21,0x34]
18# MIPS: add   $4, $4, $1              # encoding: [0x20,0x20,0x81,0x00]
19# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADD
20# MICROMIPS: lui $1, 65535            # encoding: [0xa1,0x41,0xff,0xff]
21# MICROMIPS: ori $1, $1, 32767        # encoding: [0x21,0x50,0xff,0x7f]
22# MICROMIPS: add $4, $4, $1           # encoding: [0x24,0x00,0x10,0x21]
23# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADD_MM
24  add $4, -0x8000
25# MIPS: addi  $4, $4, -32768          # encoding: [0x00,0x80,0x84,0x20]
26# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDi
27# MICROMIPS: addi $4, $4, -32768      # encoding: [0x84,0x10,0x00,0x80]
28# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDi_MM
29  add $4, 0
30# MIPS: addi  $4, $4, 0               # encoding: [0x00,0x00,0x84,0x20]
31# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDi
32# MICROMIPS: addi $4, $4, 0           # encoding: [0x84,0x10,0x00,0x00]
33# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDi_MM
34  add $4, 0xFFFF
35# MIPS: ori   $1, $zero, 65535        # encoding: [0xff,0xff,0x01,0x34]
36# MIPS: add   $4, $4, $1              # encoding: [0x20,0x20,0x81,0x00]
37# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADD
38# MICROMIPS: ori $1, $zero, 65535     # encoding: [0x20,0x50,0xff,0xff]
39# MICROMIPS: add $4, $4, $1           # encoding: [0x24,0x00,0x10,0x21]
40# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADD_MM
41  add $4, 0x10000
42# MIPS: lui   $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
43# MIPS: add   $4, $4, $1              # encoding: [0x20,0x20,0x81,0x00]
44# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADD
45# MICROMIPS: lui $1, 1                # encoding: [0xa1,0x41,0x01,0x00]
46# MICROMIPS: add $4, $4, $1           # encoding: [0x24,0x00,0x10,0x21]
47# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADD_MM
48  add $4, 0xFFFFFFFF
49# MIPS: addi  $4, $4, -1              # encoding: [0xff,0xff,0x84,0x20]
50# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADD
51# MICROMIPS: addi $4, $4, -1          # encoding: [0x84,0x10,0xff,0xff]
52# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDi_MM
53  add $5, ~(0xf0000000|0x0f000000|0x000000f0)
54# MIPS: lui   $1, 255                 # encoding: [0xff,0x00,0x01,0x3c]
55# MIPS: ori   $1, $1, 65295           # encoding: [0x0f,0xff,0x21,0x34]
56# MIPS: add   $5, $5, $1              # encoding: [0x20,0x28,0xa1,0x00]
57# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADD
58# MICROMIPS: lui $1, 255              # encoding: [0xa1,0x41,0xff,0x00]
59# MICROMIPS: ori $1, $1, 65295        # encoding: [0x21,0x50,0x0f,0xff]
60# MICROMIPS: add $5, $5, $1           # encoding: [0x25,0x00,0x10,0x29]
61# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADD_MM
62  add $4, $5, -0x80000000
63# MIPS: lui   $4, 32768               # encoding: [0x00,0x80,0x04,0x3c]
64# MIPS: add   $4, $4, $5              # encoding: [0x20,0x20,0x85,0x00]
65# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADD
66# MICROMIPS: lui $4, 32768            # encoding: [0xa4,0x41,0x00,0x80]
67# MICROMIPS: add $4, $4, $5           # encoding: [0xa4,0x00,0x10,0x21]
68# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADD_MM
69  add $4, $5, -0x8001
70# MIPS: lui   $4, 65535               # encoding: [0xff,0xff,0x04,0x3c]
71# MIPS: ori   $4, $4, 32767           # encoding: [0xff,0x7f,0x84,0x34]
72# MIPS: add   $4, $4, $5              # encoding: [0x20,0x20,0x85,0x00]
73# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADD
74# MICROMIPS: lui $4, 65535            # encoding: [0xa4,0x41,0xff,0xff]
75# MICROMIPS: ori $4, $4, 32767        # encoding: [0x84,0x50,0xff,0x7f]
76# MICROMIPS: add $4, $4, $5           # encoding: [0xa4,0x00,0x10,0x21]
77# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADD_MM
78  add $4, $5, -0x8000
79# MIPS: addi  $4, $5, -32768          # encoding: [0x00,0x80,0xa4,0x20]
80# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDi
81# MICROMIPS: addi $4, $5, -32768      # encoding: [0x85,0x10,0x00,0x80]
82# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDi_MM
83  add $4, $5, 0
84# MIPS: addi  $4, $5, 0               # encoding: [0x00,0x00,0xa4,0x20]
85# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDi
86# MICROMIPS: addi $4, $5, 0           # encoding: [0x85,0x10,0x00,0x00]
87# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDi_MM
88  add $4, $5, 0xFFFF
89# MIPS: ori   $4, $zero, 65535        # encoding: [0xff,0xff,0x04,0x34]
90# MIPS: add   $4, $4, $5              # encoding: [0x20,0x20,0x85,0x00]
91# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADD
92# MICROMIPS: ori $4, $zero, 65535     # encoding: [0x80,0x50,0xff,0xff]
93# MICROMIPS: add $4, $4, $5           # encoding: [0xa4,0x00,0x10,0x21]
94# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADD_MM
95  add $4, $5, 0x10000
96# MIPS: lui   $4, 1                   # encoding: [0x01,0x00,0x04,0x3c]
97# MIPS: add   $4, $4, $5              # encoding: [0x20,0x20,0x85,0x00]
98# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADD
99# MICROMIPS: lui $4, 1                # encoding: [0xa4,0x41,0x01,0x00]
100# MICROMIPS: add $4, $4, $5           # encoding: [0xa4,0x00,0x10,0x21]
101# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADD_MM
102  add $4, $5, 0xFFFFFFFF
103# MIPS: addi  $4, $5, -1              # encoding: [0xff,0xff,0xa4,0x20]
104# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDi
105# MICROMIPS: addi $4, $5, -1          # encoding: [0x85,0x10,0xff,0xff]
106# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDi_MM
107  add $4, $5, ~(0xf0000000|0x0f000000|0x000000f0)
108# MIPS: lui   $4, 255                 # encoding: [0xff,0x00,0x04,0x3c]
109# MIPS: ori   $4, $4, 65295           # encoding: [0x0f,0xff,0x84,0x34]
110# MIPS: add   $4, $4, $5              # encoding: [0x20,0x20,0x85,0x00]
111# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADD
112# MICROMIPS: lui $4, 255              # encoding: [0xa4,0x41,0xff,0x00]
113# MICROMIPS: ori $4, $4, 65295        # encoding: [0x84,0x50,0x0f,0xff]
114# MICROMIPS: add $4, $4, $5           # encoding: [0xa4,0x00,0x10,0x21]
115# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADD_MM
116
117  addu $4, -0x80000000
118# MIPS: lui   $1, 32768               # encoding: [0x00,0x80,0x01,0x3c]
119# MIPS: addu  $4, $4, $1              # encoding: [0x21,0x20,0x81,0x00]
120# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDu
121# MICROMIPS: lui $1, 32768            # encoding: [0xa1,0x41,0x00,0x80]
122# MICROMIPS: addu $4, $4, $1          # encoding: [0x24,0x00,0x50,0x21]
123# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDu_MM
124  addu $4, -0x8001
125# MIPS: lui   $1, 65535               # encoding: [0xff,0xff,0x01,0x3c]
126# MIPS: ori   $1, $1, 32767           # encoding: [0xff,0x7f,0x21,0x34]
127# MIPS: addu  $4, $4, $1              # encoding: [0x21,0x20,0x81,0x00]
128# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDu
129# MICROMIPS: lui $1, 65535            # encoding: [0xa1,0x41,0xff,0xff]
130# MICROMIPS: ori $1, $1, 32767        # encoding: [0x21,0x50,0xff,0x7f]
131# MICROMIPS: addu $4, $4, $1          # encoding: [0x24,0x00,0x50,0x21]
132# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDu_MM
133  addu $4, -0x8000
134# MIPS: addiu $4, $4, -32768          # encoding: [0x00,0x80,0x84,0x24]
135# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDiu
136# MICROMIPS: addiu $4, $4, -32768     # encoding: [0x84,0x30,0x00,0x80]
137# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDiu_MM
138  addu $4, 0
139# MIPS: addiu $4, $4, 0               # encoding: [0x00,0x00,0x84,0x24]
140# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDiu
141# MICROMIPS: addiu $4, $4, 0          # encoding: [0x84,0x30,0x00,0x00]
142# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDiu_MM
143  addu $4, 0xFFFF
144# MIPS: ori   $1, $zero, 65535        # encoding: [0xff,0xff,0x01,0x34]
145# MIPS: addu  $4, $4, $1              # encoding: [0x21,0x20,0x81,0x00]
146# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDu
147# MICROMIPS: ori $1, $zero, 65535     # encoding: [0x20,0x50,0xff,0xff]
148# MICROMIPS: addu $4, $4, $1          # encoding: [0x24,0x00,0x50,0x21]
149# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDu_MM
150  addu $4, 0x10000
151# MIPS: lui   $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
152# MIPS: addu  $4, $4, $1              # encoding: [0x21,0x20,0x81,0x00]
153# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDu
154# MICROMIPS: lui $1, 1                # encoding: [0xa1,0x41,0x01,0x00]
155# MICROMIPS: addu $4, $4, $1          # encoding: [0x24,0x00,0x50,0x21]
156# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDu_MM
157  addu $4, 0xFFFFFFFF
158# MIPS: addiu $4, $4, -1              # encoding: [0xff,0xff,0x84,0x24]
159# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDiu
160# MICROMIPS: addiu $4, $4, -1         # encoding: [0x84,0x30,0xff,0xff]
161# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDiu_MM
162  addu $5, ~(0xf0000000|0x0f000000|0x000000f0)
163# MIPS: lui   $1, 255                 # encoding: [0xff,0x00,0x01,0x3c]
164# MIPS: ori   $1, $1, 65295           # encoding: [0x0f,0xff,0x21,0x34]
165# MIPS: addu  $5, $5, $1              # encoding: [0x21,0x28,0xa1,0x00]
166# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDu
167# MICROMIPS: lui $1, 255              # encoding: [0xa1,0x41,0xff,0x00]
168# MICROMIPS: ori $1, $1, 65295        # encoding: [0x21,0x50,0x0f,0xff]
169# MICROMIPS: addu $5, $5, $1          # encoding: [0x25,0x00,0x50,0x29]
170# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDu_MM
171
172  addu $4, $5, -0x80000000
173# MIPS: lui   $4, 32768               # encoding: [0x00,0x80,0x04,0x3c]
174# MIPS: addu  $4, $4, $5              # encoding: [0x21,0x20,0x85,0x00]
175# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDu
176# MICROMIPS: lui $4, 32768            # encoding: [0xa4,0x41,0x00,0x80]
177# MICROMIPS: addu $4, $4, $5          # encoding: [0xa4,0x00,0x50,0x21]
178# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDu_MM
179  addu $4, $5, -0x8001
180# MIPS: lui   $4, 65535               # encoding: [0xff,0xff,0x04,0x3c]
181# MIPS: ori   $4, $4, 32767           # encoding: [0xff,0x7f,0x84,0x34]
182# MIPS: addu  $4, $4, $5              # encoding: [0x21,0x20,0x85,0x00]
183# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDu
184# MICROMIPS: lui $4, 65535            # encoding: [0xa4,0x41,0xff,0xff]
185# MICROMIPS: ori $4, $4, 32767        # encoding: [0x84,0x50,0xff,0x7f]
186# MICROMIPS: addu $4, $4, $5          # encoding: [0xa4,0x00,0x50,0x21]
187# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDu_MM
188  addu $4, $5, -0x8000
189# MIPS: addiu $4, $5, -32768          # encoding: [0x00,0x80,0xa4,0x24]
190# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDiu
191# MICROMIPS: addiu $4, $5, -32768     # encoding: [0x85,0x30,0x00,0x80]
192# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDiu_MM
193  addu $4, $5, 0
194# MIPS: addiu $4, $5, 0               # encoding: [0x00,0x00,0xa4,0x24]
195# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDiu
196# MICROMIPS: addiu $4, $5, 0          # encoding: [0x85,0x30,0x00,0x00]
197# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDiu_MM
198  addu $4, $5, 0xFFFF
199# MIPS: ori   $4, $zero, 65535        # encoding: [0xff,0xff,0x04,0x34]
200# MIPS: addu  $4, $4, $5              # encoding: [0x21,0x20,0x85,0x00]
201# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDu
202# MICROMIPS: ori $4, $zero, 65535     # encoding: [0x80,0x50,0xff,0xff]
203# MICROMIPS: addu $4, $4, $5          # encoding: [0xa4,0x00,0x50,0x21]
204# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDu_MM
205  addu $4, $5, 0x10000
206# MIPS: lui   $4, 1                   # encoding: [0x01,0x00,0x04,0x3c]
207# MIPS: addu  $4, $4, $5              # encoding: [0x21,0x20,0x85,0x00]
208# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDu
209# MICROMIPS: lui $4, 1                # encoding: [0xa4,0x41,0x01,0x00]
210# MICROMIPS: addu $4, $4, $5          # encoding: [0xa4,0x00,0x50,0x21]
211# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDu_MM
212  addu $4, $5, 0xFFFFFFFF
213# MIPS: addiu  $4, $5, -1              # encoding: [0xff,0xff,0xa4,0x24]
214# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDiu
215# MICROMIPS: addiu $4, $5, -1         # encoding: [0x85,0x30,0xff,0xff]
216# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDiu_MM
217  addu $4, $5, ~(0xf0000000|0x0f000000|0x000000f0)
218# MIPS: lui   $4, 255                 # encoding: [0xff,0x00,0x04,0x3c]
219# MIPS: ori   $4, $4, 65295           # encoding: [0x0f,0xff,0x84,0x34]
220# MIPS: addu  $4, $4, $5              # encoding: [0x21,0x20,0x85,0x00]
221# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ADDu
222# MICROMIPS: lui $4, 255              # encoding: [0xa4,0x41,0xff,0x00]
223# MICROMIPS: ori $4, $4, 65295        # encoding: [0x84,0x50,0x0f,0xff]
224# MICROMIPS: addu $4, $4, $5          # encoding: [0xa4,0x00,0x50,0x21]
225# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDu_MM
226
227  and $4, -0x80000000
228# MIPS: lui   $1, 32768               # encoding: [0x00,0x80,0x01,0x3c]
229# MIPS: and   $4, $4, $1              # encoding: [0x24,0x20,0x81,0x00]
230# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} AND
231# MICROMIPS: lui $1, 32768            # encoding: [0xa1,0x41,0x00,0x80]
232# MICROMIPS: and $4, $4, $1           # encoding: [0x24,0x00,0x50,0x22]
233# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} AND_MM
234  and $4, -0x8001
235# MIPS: lui   $1, 65535               # encoding: [0xff,0xff,0x01,0x3c]
236# MIPS: ori   $1, $1, 32767           # encoding: [0xff,0x7f,0x21,0x34]
237# MIPS: and   $4, $4, $1              # encoding: [0x24,0x20,0x81,0x00]
238# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} AND
239# MICROMIPS: lui $1, 65535            # encoding: [0xa1,0x41,0xff,0xff]
240# MICROMIPS: ori $1, $1, 32767        # encoding: [0x21,0x50,0xff,0x7f]
241# MICROMIPS: and $4, $4, $1           # encoding: [0x24,0x00,0x50,0x22]
242# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} AND_MM
243  and $4, -0x8000
244# MIPS: addiu $1, $zero, -32768       # encoding: [0x00,0x80,0x01,0x24]
245# MIPS: and   $4, $4, $1              # encoding: [0x24,0x20,0x81,0x00]
246# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} AND
247# MICROMIPS: addiu $1, $zero, -32768  # encoding: [0x20,0x30,0x00,0x80]
248# MICROMIPS: and $4, $4, $1           # encoding: [0x24,0x00,0x50,0x22]
249# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} AND_MM
250  and $4, 0
251# MIPS: andi  $4, $4, 0               # encoding: [0x00,0x00,0x84,0x30]
252# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ANDi
253# MICROMIPS: andi $4, $4, 0           # encoding: [0x84,0xd0,0x00,0x00]
254# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ANDi_MM
255  and $4, 0xFFFF
256# MIPS: andi  $4, $4, 65535           # encoding: [0xff,0xff,0x84,0x30]
257# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ANDi
258# MICROMIPS: andi $4, $4, 65535       # encoding: [0x84,0xd0,0xff,0xff]
259# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ANDi_MM
260  and $4, 0x10000
261# MIPS: lui   $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
262# MIPS: and   $4, $4, $1              # encoding: [0x24,0x20,0x81,0x00]
263# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} AND
264# MICROMIPS: lui $1, 1                # encoding: [0xa1,0x41,0x01,0x00]
265# MICROMIPS: and $4, $4, $1           # encoding: [0x24,0x00,0x50,0x22]
266# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} AND_MM
267  and $4, 0xFFFFFFFF
268# MIPS: addiu $1, $zero, -1           # encoding: [0xff,0xff,0x01,0x24]
269# MIPS: and   $4, $4, $1              # encoding: [0x24,0x20,0x81,0x00]
270# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} AND
271# MICROMIPS: addiu $1, $zero, -1      # encoding: [0x20,0x30,0xff,0xff]
272# MICROMIPS: and $4, $4, $1           # encoding: [0x24,0x00,0x50,0x22]
273# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} AND_MM
274  and $5, ~(0xf0000000|0x0f000000|0x000000f0)
275# MIPS: lui   $1, 255                 # encoding: [0xff,0x00,0x01,0x3c]
276# MIPS: ori   $1, $1, 65295           # encoding: [0x0f,0xff,0x21,0x34]
277# MIPS: and   $5, $5, $1              # encoding: [0x24,0x28,0xa1,0x00]
278# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} AND
279# MICROMIPS: lui $1, 255              # encoding: [0xa1,0x41,0xff,0x00]
280# MICROMIPS: ori $1, $1, 65295        # encoding: [0x21,0x50,0x0f,0xff]
281# MICROMIPS: and $5, $5, $1           # encoding: [0x25,0x00,0x50,0x2a]
282# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} AND_MM
283
284  and $4, $5, -0x80000000
285# MIPS: lui   $4, 32768               # encoding: [0x00,0x80,0x04,0x3c]
286# MIPS: and   $4, $4, $5              # encoding: [0x24,0x20,0x85,0x00]
287# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} AND
288# MICROMIPS: lui $4, 32768            # encoding: [0xa4,0x41,0x00,0x80]
289# MICROMIPS: and $4, $4, $5           # encoding: [0xa4,0x00,0x50,0x22]
290# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} AND_MM
291  and $4, $5, -0x8001
292# MIPS: lui   $4, 65535               # encoding: [0xff,0xff,0x04,0x3c]
293# MIPS: ori   $4, $4, 32767           # encoding: [0xff,0x7f,0x84,0x34]
294# MIPS: and   $4, $4, $5              # encoding: [0x24,0x20,0x85,0x00]
295# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} AND
296# MICROMIPS: lui $4, 65535            # encoding: [0xa4,0x41,0xff,0xff]
297# MICROMIPS: ori $4, $4, 32767        # encoding: [0x84,0x50,0xff,0x7f]
298# MICROMIPS: and $4, $4, $5           # encoding: [0xa4,0x00,0x50,0x22]
299# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} AND_MM
300  and $4, $5, -0x8000
301# MIPS: addiu $4, $zero, -32768       # encoding: [0x00,0x80,0x04,0x24]
302# MIPS: and   $4, $4, $5              # encoding: [0x24,0x20,0x85,0x00]
303# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} AND
304# MICROMIPS: addiu $4, $zero, -32768  # encoding: [0x80,0x30,0x00,0x80]
305# MICROMIPS: and $4, $4, $5           # encoding: [0xa4,0x00,0x50,0x22]
306# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} AND_MM
307  and $4, $5, 0
308# MIPS: andi  $4, $5, 0               # encoding: [0x00,0x00,0xa4,0x30]
309# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ANDi
310# MICROMIPS: andi $4, $5, 0           # encoding: [0x85,0xd0,0x00,0x00]
311# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ANDi_MM
312  and $4, $5, 0xFFFF
313# MIPS: andi  $4, $5, 65535           # encoding: [0xff,0xff,0xa4,0x30]
314# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ANDi
315# MICROMIPS: andi $4, $5, 65535       # encoding: [0x85,0xd0,0xff,0xff]
316# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ANDi_MM
317  and $4, $5, 0x10000
318# MIPS: lui   $4, 1                   # encoding: [0x01,0x00,0x04,0x3c]
319# MIPS: and   $4, $4, $5              # encoding: [0x24,0x20,0x85,0x00]
320# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} AND
321# MICROMIPS: lui $4, 1                # encoding: [0xa4,0x41,0x01,0x00]
322# MICROMIPS: and $4, $4, $5           # encoding: [0xa4,0x00,0x50,0x22]
323# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} AND_MM
324  and $4, $5, 0xFFFFFFFF
325# MIPS: addiu $4, $zero, -1           # encoding: [0xff,0xff,0x04,0x24]
326# MIPS: and   $4, $4, $5              # encoding: [0x24,0x20,0x85,0x00]
327# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} AND
328# MICROMIPS: addiu $4, $zero, -1      # encoding: [0x80,0x30,0xff,0xff]
329# MICROMIPS: and $4, $4, $5           # encoding: [0xa4,0x00,0x50,0x22]
330# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} AND_MM
331  and $4, $5, ~(0xf0000000|0x0f000000|0x000000f0)
332# MIPS: lui   $4, 255                 # encoding: [0xff,0x00,0x04,0x3c]
333# MIPS: ori   $4, $4, 65295           # encoding: [0x0f,0xff,0x84,0x34]
334# MIPS: and   $4, $4, $5              # encoding: [0x24,0x20,0x85,0x00]
335# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} AND
336# MICROMIPS: lui $4, 255              # encoding: [0xa4,0x41,0xff,0x00]
337# MICROMIPS: ori $4, $4, 65295        # encoding: [0x84,0x50,0x0f,0xff]
338# MICROMIPS: and $4, $4, $5           # encoding: [0xa4,0x00,0x50,0x22]
339# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} AND_MM
340
341  nor $4, $5, 0
342# MIPS: addiu $4, $zero, 0            # encoding: [0x00,0x00,0x04,0x24]
343# MIPS: nor   $4, $4, $5              # encoding: [0x27,0x20,0x85,0x00]
344# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} NOR
345# MICROMIPS: addiu $4, $zero, 0       # encoding: [0x80,0x30,0x00,0x00]
346# MICROMIPS: nor $4, $4, $5           # encoding: [0xa4,0x00,0xd0,0x22]
347# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} NOR
348  nor $4, $5, 1
349# MIPS: addiu $4, $zero, 1            # encoding: [0x01,0x00,0x04,0x24]
350# MIPS: nor   $4, $4, $5              # encoding: [0x27,0x20,0x85,0x00]
351# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} NOR
352# MICROMIPS: addiu $4, $zero, 1       # encoding: [0x80,0x30,0x01,0x00]
353# MICROMIPS: nor $4, $4, $5           # encoding: [0xa4,0x00,0xd0,0x22]
354# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} NOR
355  nor $4, $5, 0x8000
356# MIPS: ori   $4, $zero, 32768        # encoding: [0x00,0x80,0x04,0x34]
357# MIPS: nor   $4, $4, $5              # encoding: [0x27,0x20,0x85,0x00]
358# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} NOR
359# MICROMIPS: ori $4, $zero, 32768     # encoding: [0x80,0x50,0x00,0x80]
360# MICROMIPS: nor $4, $4, $5           # encoding: [0xa4,0x00,0xd0,0x22]
361# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} NOR
362  nor $4, $5, -0x8000
363# MIPS: addiu $4, $zero, -32768       # encoding: [0x00,0x80,0x04,0x24]
364# MIPS: nor   $4, $4, $5              # encoding: [0x27,0x20,0x85,0x00]
365# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} NOR
366# MICROMIPS: addiu $4, $zero, -32768  # encoding: [0x80,0x30,0x00,0x80]
367# MICROMIPS: nor $4, $4, $5           # encoding: [0xa4,0x00,0xd0,0x22]
368# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} NOR
369  nor $4, $5, 0x10000
370# MIPS: lui   $4, 1                   # encoding: [0x01,0x00,0x04,0x3c]
371# MIPS: nor   $4, $4, $5              # encoding: [0x27,0x20,0x85,0x00]
372# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} NOR
373# MICROMIPS: lui $4, 1                # encoding: [0xa4,0x41,0x01,0x00]
374# MICROMIPS: nor $4, $4, $5           # encoding: [0xa4,0x00,0xd0,0x22]
375# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} NOR
376  nor $4, $5, 0x1a5a5
377# MIPS: lui   $4, 1                   # encoding: [0x01,0x00,0x04,0x3c]
378# MIPS: ori   $4, $4, 42405           # encoding: [0xa5,0xa5,0x84,0x34]
379# MIPS: nor   $4, $4, $5              # encoding: [0x27,0x20,0x85,0x00]
380# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} NOR
381# MICROMIPS: lui $4, 1                # encoding: [0xa4,0x41,0x01,0x00]
382# MICROMIPS: ori $4, $4, 42405        # encoding: [0x84,0x50,0xa5,0xa5]
383# MICROMIPS: nor $4, $4, $5           # encoding: [0xa4,0x00,0xd0,0x22]
384# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} NOR
385  nor $4, ~(0xf0000000|0x0f000000|0x000000f0)
386# MIPS: lui   $1, 255                 # encoding: [0xff,0x00,0x01,0x3c]
387# MIPS: ori   $1, $1, 65295           # encoding: [0x0f,0xff,0x21,0x34]
388# MIPS: nor   $4, $4, $1              # encoding: [0x27,0x20,0x81,0x00]
389# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} NOR
390# MICROMIPS: lui $1, 255              # encoding: [0xa1,0x41,0xff,0x00]
391# MICROMIPS: ori $1, $1, 65295        # encoding: [0x21,0x50,0x0f,0xff]
392# MICROMIPS: nor $4, $4, $1           # encoding: [0x24,0x00,0xd0,0x22]
393# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} NOR
394
395  nor $4, 0
396# MIPS: addiu $1, $zero, 0            # encoding: [0x00,0x00,0x01,0x24]
397# MIPS: nor   $4, $4, $1              # encoding: [0x27,0x20,0x81,0x00]
398# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} NOR
399# MICROMIPS: addiu $1, $zero, 0       # encoding: [0x20,0x30,0x00,0x00]
400# MICROMIPS: nor $4, $4, $1           # encoding: [0x24,0x00,0xd0,0x22]
401# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} NOR
402  nor $4, 1
403# MIPS: addiu $1, $zero, 1            # encoding: [0x01,0x00,0x01,0x24]
404# MIPS: nor   $4, $4, $1              # encoding: [0x27,0x20,0x81,0x00]
405# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} NOR
406# MICROMIPS: addiu $1, $zero, 1       # encoding: [0x20,0x30,0x01,0x00]
407# MICROMIPS: nor $4, $4, $1           # encoding: [0x24,0x00,0xd0,0x22]
408# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} NOR
409  nor $4, 0x8000
410# MIPS: ori   $1, $zero, 32768        # encoding: [0x00,0x80,0x01,0x34]
411# MIPS: nor   $4, $4, $1              # encoding: [0x27,0x20,0x81,0x00]
412# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} NOR
413# MICROMIPS: ori $1, $zero, 32768     # encoding: [0x20,0x50,0x00,0x80]
414# MICROMIPS: nor $4, $4, $1           # encoding: [0x24,0x00,0xd0,0x22]
415# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} NOR
416  nor $4, -0x8000
417# MIPS: addiu $1, $zero, -32768       # encoding: [0x00,0x80,0x01,0x24]
418# MIPS: nor   $4, $4, $1              # encoding: [0x27,0x20,0x81,0x00]
419# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} NOR
420# MICROMIPS: addiu $1, $zero, -32768  # encoding: [0x20,0x30,0x00,0x80]
421# MICROMIPS: nor $4, $4, $1           # encoding: [0x24,0x00,0xd0,0x22]
422# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} NOR
423  nor $4, 0x10000
424# MIPS: lui   $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
425# MIPS: nor   $4, $4, $1              # encoding: [0x27,0x20,0x81,0x00]
426# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} NOR
427# MICROMIPS: lui $1, 1                # encoding: [0xa1,0x41,0x01,0x00]
428# MICROMIPS: nor $4, $4, $1           # encoding: [0x24,0x00,0xd0,0x22]
429# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} NOR
430  nor $4, 0x1a5a5
431# MIPS: lui   $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
432# MIPS: ori   $1, $1, 42405           # encoding: [0xa5,0xa5,0x21,0x34]
433# MIPS: nor   $4, $4, $1              # encoding: [0x27,0x20,0x81,0x00]
434# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} NOR
435# MICROMIPS: lui $1, 1                # encoding: [0xa1,0x41,0x01,0x00]
436# MICROMIPS: ori $1, $1, 42405        # encoding: [0x21,0x50,0xa5,0xa5]
437# MICROMIPS: nor $4, $4, $1           # encoding: [0x24,0x00,0xd0,0x22]
438# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} NOR
439  nor $4, ~(0xf0000000|0x0f000000|0x000000f0)
440# MIPS: lui   $1, 255                 # encoding: [0xff,0x00,0x01,0x3c]
441# MIPS: ori   $1, $1, 65295           # encoding: [0x0f,0xff,0x21,0x34]
442# MIPS: nor   $4, $4, $1              # encoding: [0x27,0x20,0x81,0x00]
443# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} NOR
444# MICROMIPS: lui $1, 255              # encoding: [0xa1,0x41,0xff,0x00]
445# MICROMIPS: ori $1, $1, 65295        # encoding: [0x21,0x50,0x0f,0xff]
446# MICROMIPS: nor $4, $4, $1           # encoding: [0x24,0x00,0xd0,0x22]
447# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} NOR
448
449  or $4, -0x80000000
450# MIPS: lui   $1, 32768               # encoding: [0x00,0x80,0x01,0x3c]
451# MIPS: or    $4, $4, $1              # encoding: [0x25,0x20,0x81,0x00]
452# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} OR
453# MICROMIPS: lui $1, 32768            # encoding: [0xa1,0x41,0x00,0x80]
454# MICROMIPS: or $4, $4, $1            # encoding: [0x24,0x00,0x90,0x22]
455# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} OR_MM
456  or $4, -0x8001
457# MIPS: lui   $1, 65535               # encoding: [0xff,0xff,0x01,0x3c]
458# MIPS: ori   $1, $1, 32767           # encoding: [0xff,0x7f,0x21,0x34]
459# MIPS: or    $4, $4, $1              # encoding: [0x25,0x20,0x81,0x00]
460# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} OR
461# MICROMIPS: lui $1, 65535            # encoding: [0xa1,0x41,0xff,0xff]
462# MICROMIPS: ori $1, $1, 32767        # encoding: [0x21,0x50,0xff,0x7f]
463# MICROMIPS: or $4, $4, $1            # encoding: [0x24,0x00,0x90,0x22]
464# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} OR_MM
465  or $4, -0x8000
466# MIPS: addiu $1, $zero, -32768       # encoding: [0x00,0x80,0x01,0x24]
467# MIPS: or    $4, $4, $1              # encoding: [0x25,0x20,0x81,0x00]
468# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} OR
469# MICROMIPS: addiu $1, $zero, -32768  # encoding: [0x20,0x30,0x00,0x80]
470# MICROMIPS: or $4, $4, $1            # encoding: [0x24,0x00,0x90,0x22]
471# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} OR_MM
472  or $4, 0
473# MIPS: ori   $4, $4, 0               # encoding: [0x00,0x00,0x84,0x34]
474# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ORi
475# MICROMIPS: ori $4, $4, 0            # encoding: [0x84,0x50,0x00,0x00]
476# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ORi_MM
477  or $4, 0xFFFF
478# MIPS: ori   $4, $4, 65535           # encoding: [0xff,0xff,0x84,0x34]
479# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ORi
480# MICROMIPS: ori $4, $4, 65535        # encoding: [0x84,0x50,0xff,0xff]
481# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ORi_MM
482  or $4, 0x10000
483# MIPS: lui   $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
484# MIPS: or    $4, $4, $1              # encoding: [0x25,0x20,0x81,0x00]
485# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} OR
486# MICROMIPS: lui $1, 1                # encoding: [0xa1,0x41,0x01,0x00]
487# MICROMIPS: or $4, $4, $1            # encoding: [0x24,0x00,0x90,0x22]
488# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} OR_MM
489  or $4, 0xFFFFFFFF
490# MIPS: addiu $1, $zero, -1           # encoding: [0xff,0xff,0x01,0x24]
491# MIPS: or    $4, $4, $1              # encoding: [0x25,0x20,0x81,0x00]
492# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} OR
493# MICROMIPS: addiu $1, $zero, -1      # encoding: [0x20,0x30,0xff,0xff]
494# MICROMIPS: or $4, $4, $1            # encoding: [0x24,0x00,0x90,0x22]
495# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} OR_MM
496  or $5, ~(0xf0000000|0x0f000000|0x000000f0)
497# MIPS: lui   $1, 255                 # encoding: [0xff,0x00,0x01,0x3c]
498# MIPS: ori   $1, $1, 65295           # encoding: [0x0f,0xff,0x21,0x34]
499# MIPS: or    $5, $5, $1              # encoding: [0x25,0x28,0xa1,0x00]
500# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} OR
501# MICROMIPS: lui $1, 255              # encoding: [0xa1,0x41,0xff,0x00]
502# MICROMIPS: ori $1, $1, 65295        # encoding: [0x21,0x50,0x0f,0xff]
503# MICROMIPS: or $5, $5, $1            # encoding: [0x25,0x00,0x90,0x2a]
504# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} OR_MM
505
506  or $4, $5, -0x80000000
507# MIPS: lui   $4, 32768               # encoding: [0x00,0x80,0x04,0x3c]
508# MIPS: or    $4, $4, $5              # encoding: [0x25,0x20,0x85,0x00]
509# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} OR
510# MICROMIPS: lui $4, 32768            # encoding: [0xa4,0x41,0x00,0x80]
511# MICROMIPS: or $4, $4, $5            # encoding: [0xa4,0x00,0x90,0x22]
512# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} OR_MM
513  or $4, $5, -0x8001
514# MIPS: lui   $4, 65535               # encoding: [0xff,0xff,0x04,0x3c]
515# MIPS: ori   $4, $4, 32767           # encoding: [0xff,0x7f,0x84,0x34]
516# MIPS: or    $4, $4, $5              # encoding: [0x25,0x20,0x85,0x00]
517# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} OR
518# MICROMIPS: lui $4, 65535            # encoding: [0xa4,0x41,0xff,0xff]
519# MICROMIPS: ori $4, $4, 32767        # encoding: [0x84,0x50,0xff,0x7f]
520# MICROMIPS: or $4, $4, $5            # encoding: [0xa4,0x00,0x90,0x22]
521# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} OR_MM
522  or $4, $5, -0x8000
523# MIPS: addiu $4, $zero, -32768       # encoding: [0x00,0x80,0x04,0x24]
524# MIPS: or    $4, $4, $5              # encoding: [0x25,0x20,0x85,0x00]
525# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} OR
526# MICROMIPS: addiu $4, $zero, -32768  # encoding: [0x80,0x30,0x00,0x80]
527# MICROMIPS: or $4, $4, $5            # encoding: [0xa4,0x00,0x90,0x22]
528# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} OR_MM
529  or $4, $5, 0
530# MIPS: ori   $4, $5, 0               # encoding: [0x00,0x00,0xa4,0x34]
531# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ORi
532# MICROMIPS: ori $4, $5, 0            # encoding: [0x85,0x50,0x00,0x00]
533# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ORi_MM
534  or $4, $5, 0xFFFF
535# MIPS: ori   $4, $5, 65535           # encoding: [0xff,0xff,0xa4,0x34]
536# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} ORi
537# MICROMIPS: ori $4, $5, 65535        # encoding: [0x85,0x50,0xff,0xff]
538# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ORi_MM
539  or $4, $5, 0x10000
540# MIPS: lui   $4, 1                   # encoding: [0x01,0x00,0x04,0x3c]
541# MIPS: or    $4, $4, $5              # encoding: [0x25,0x20,0x85,0x00]
542# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} OR
543# MICROMIPS: lui $4, 1                # encoding: [0xa4,0x41,0x01,0x00]
544# MICROMIPS: or $4, $4, $5            # encoding: [0xa4,0x00,0x90,0x22]
545# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} OR_MM
546  or $4, $5, 0xFFFFFFFF
547# MIPS: addiu  $4, $zero, -1          # encoding: [0xff,0xff,0x04,0x24]
548# MIPS: or    $4, $4, $5              # encoding: [0x25,0x20,0x85,0x00]
549# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} OR
550# MICROMIPS: addiu $4, $zero, -1      # encoding: [0x80,0x30,0xff,0xff]
551# MICROMIPS: or $4, $4, $5            # encoding: [0xa4,0x00,0x90,0x22]
552# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} OR_MM
553  or $4, $5, ~(0xF0000000|0x0F000000|0x000000F0)
554# MIPS: lui   $4, 255                 # encoding: [0xff,0x00,0x04,0x3c]
555# MIPS: ori   $4, $4, 65295           # encoding: [0x0f,0xff,0x84,0x34]
556# MIPS: or    $4, $4, $5              # encoding: [0x25,0x20,0x85,0x00]
557# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} OR
558# MICROMIPS: lui $4, 255              # encoding: [0xa4,0x41,0xff,0x00]
559# MICROMIPS: ori $4, $4, 65295        # encoding: [0x84,0x50,0x0f,0xff]
560# MICROMIPS: or $4, $4, $5            # encoding: [0xa4,0x00,0x90,0x22]
561# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} OR_MM
562
563  slt $4, $5, -0x80000000
564# MIPS: lui   $4, 32768               # encoding: [0x00,0x80,0x04,0x3c]
565# MIPS: slt   $4, $4, $5              # encoding: [0x2a,0x20,0x85,0x00]
566# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLT
567# MICROMIPS: lui $4, 32768            # encoding: [0xa4,0x41,0x00,0x80]
568# MICROMIPS: slt $4, $4, $5           # encoding: [0xa4,0x00,0x50,0x23]
569# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLT_MM
570  slt $4, $5, -0x8001
571# MIPS: lui   $4, 65535               # encoding: [0xff,0xff,0x04,0x3c]
572# MIPS: ori   $4, $4, 32767           # encoding: [0xff,0x7f,0x84,0x34]
573# MIPS: slt   $4, $4, $5              # encoding: [0x2a,0x20,0x85,0x00]
574# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLT
575# MICROMIPS: lui $4, 65535            # encoding: [0xa4,0x41,0xff,0xff]
576# MICROMIPS: ori $4, $4, 32767        # encoding: [0x84,0x50,0xff,0x7f]
577# MICROMIPS: slt $4, $4, $5           # encoding: [0xa4,0x00,0x50,0x23]
578# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLT_MM
579  slt $4, $5, -0x8000
580# MIPS: slti  $4, $5, -32768          # encoding: [0x00,0x80,0xa4,0x28]
581# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLTi
582# MICROMIPS: slti $4, $5, -32768      # encoding: [0x85,0x90,0x00,0x80]
583# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLTi_MM
584  slt $4, $5, 0
585# MIPS: slti  $4, $5, 0               # encoding: [0x00,0x00,0xa4,0x28]
586# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLTi
587# MICROMIPS: slti $4, $5, 0           # encoding: [0x85,0x90,0x00,0x00]
588# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLTi_MM
589  slt $4, $5, 0xFFFF
590# MIPS: ori   $4, $zero, 65535        # encoding: [0xff,0xff,0x04,0x34]
591# MIPS: slt   $4, $4, $5              # encoding: [0x2a,0x20,0x85,0x00]
592# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLT
593# MICROMIPS: ori $4, $zero, 65535     # encoding: [0x80,0x50,0xff,0xff]
594# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ORi
595# MICROMIPS: slt $4, $4, $5           # encoding: [0xa4,0x00,0x50,0x23]
596# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLT_MM
597  slt $4, $5, 0x10000
598# MIPS: lui   $4, 1                   # encoding: [0x01,0x00,0x04,0x3c]
599# MIPS: slt   $4, $4, $5              # encoding: [0x2a,0x20,0x85,0x00]
600# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLT
601# MICROMIPS: lui $4, 1                # encoding: [0xa4,0x41,0x01,0x00]
602# MICROMIPS: slt $4, $4, $5           # encoding: [0xa4,0x00,0x50,0x23]
603# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLT_MM
604  slt $4, $5, 0xFFFFFFFF
605# MIPS: slti   $4, $5, -1             # encoding: [0xff,0xff,0xa4,0x28]
606# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLT
607# MICROMIPS: slti $4, $5, -1          # encoding: [0x85,0x90,0xff,0xff]
608# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLTi_MM
609  slt $4, $5, ~(0xf0000000|0x0f000000|0x000000f0)
610# MIPS: lui   $4, 255                 # encoding: [0xff,0x00,0x04,0x3c]
611# MIPS: ori   $4, $4, 65295           # encoding: [0x0f,0xff,0x84,0x34]
612# MIPS: slt   $4, $4, $5              # encoding: [0x2a,0x20,0x85,0x00]
613# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLT
614# MICROMIPS: lui $4, 255              # encoding: [0xa4,0x41,0xff,0x00]
615# MICROMIPS: ori $4, $4, 65295        # encoding: [0x84,0x50,0x0f,0xff]
616# MICROMIPS: slt $4, $4, $5           # encoding: [0xa4,0x00,0x50,0x23]
617# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLT_MM
618
619  sltu $4, $5, -0x80000000
620# MIPS: lui   $4, 32768               # encoding: [0x00,0x80,0x04,0x3c]
621# MIPS: sltu  $4, $4, $5              # encoding: [0x2b,0x20,0x85,0x00]
622# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLTu
623# MICROMIPS: lui $4, 32768            # encoding: [0xa4,0x41,0x00,0x80]
624# MICROMIPS: sltu $4, $4, $5          # encoding: [0xa4,0x00,0x90,0x23]
625# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLTu_MM
626  sltu $4, $5, -0x8001
627# MIPS: lui   $4, 65535               # encoding: [0xff,0xff,0x04,0x3c]
628# MIPS: ori   $4, $4, 32767           # encoding: [0xff,0x7f,0x84,0x34]
629# MIPS: sltu  $4, $4, $5              # encoding: [0x2b,0x20,0x85,0x00]
630# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLTu
631# MICROMIPS: lui $4, 65535            # encoding: [0xa4,0x41,0xff,0xff]
632# MICROMIPS: ori $4, $4, 32767        # encoding: [0x84,0x50,0xff,0x7f]
633# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ORi
634# MICROMIPS: sltu $4, $4, $5          # encoding: [0xa4,0x00,0x90,0x23]
635# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLTu_MM
636  sltu $4, $5, -0x8000
637# MIPS: sltiu  $4, $5, -32768         # encoding: [0x00,0x80,0xa4,0x2c]
638# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLTiu
639# MICROMIPS: sltiu $4, $5, -32768     # encoding: [0x85,0xb0,0x00,0x80]
640# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLTiu_MM
641  sltu $4, $5, 0
642# MIPS: sltiu  $4, $5, 0              # encoding: [0x00,0x00,0xa4,0x2c]
643# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLTiu
644# MICROMIPS: sltiu $4, $5, 0          # encoding: [0x85,0xb0,0x00,0x00]
645# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLTiu_MM
646  sltu $4, $5, 0xFFFF
647# MIPS: ori   $4, $zero, 65535        # encoding: [0xff,0xff,0x04,0x34]
648# MIPS: sltu  $4, $4, $5              # encoding: [0x2b,0x20,0x85,0x00]
649# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLTu
650# MICROMIPS: ori $4, $zero, 65535     # encoding: [0x80,0x50,0xff,0xff]
651# MICROMIPS: sltu $4, $4, $5          # encoding: [0xa4,0x00,0x90,0x23]
652# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLTu_MM
653  sltu $4, $5, 0x10000
654# MIPS: lui   $4, 1                   # encoding: [0x01,0x00,0x04,0x3c]
655# MIPS: sltu  $4, $4, $5              # encoding: [0x2b,0x20,0x85,0x00]
656# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLTu
657# MICROMIPS: lui $4, 1                # encoding: [0xa4,0x41,0x01,0x00]
658# MICROMIPS: sltu $4, $4, $5          # encoding: [0xa4,0x00,0x90,0x23]
659# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLTu_MM
660  sltu $4, $5, 0xFFFFFFFF
661# MIPS: sltiu $4, $5, -1              # encoding: [0xff,0xff,0xa4,0x2c]
662# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLTiu
663# MICROMIPS: sltiu $4, $5, -1         # encoding: [0x85,0xb0,0xff,0xff]
664# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLTiu_MM
665  sltu $4, $5, ~(0xf0000000|0x0f000000|0x000000f0)
666# MIPS: lui   $4, 255                 # encoding: [0xff,0x00,0x04,0x3c]
667# MIPS: ori   $4, $4, 65295           # encoding: [0x0f,0xff,0x84,0x34]
668# MIPS: sltu  $4, $4, $5              # encoding: [0x2b,0x20,0x85,0x00]
669# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} SLTu
670# MICROMIPS: lui $4, 255              # encoding: [0xa4,0x41,0xff,0x00]
671# MICROMIPS: ori $4, $4, 65295        # encoding: [0x84,0x50,0x0f,0xff]
672# MICROMIPS: sltu $4, $4, $5          # encoding: [0xa4,0x00,0x90,0x23]
673# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} SLTu_MM
674
675  xor $4, -0x80000000
676# MIPS: lui   $1, 32768               # encoding: [0x00,0x80,0x01,0x3c]
677# MIPS: xor   $4, $4, $1              # encoding: [0x26,0x20,0x81,0x00]
678# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XOR
679# MICROMIPS: lui $1, 32768            # encoding: [0xa1,0x41,0x00,0x80]
680# MICROMIPS: xor $4, $4, $1           # encoding: [0x24,0x00,0x10,0x23]
681# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XOR_MM
682  xor $4, -0x8001
683# MIPS: lui   $1, 65535               # encoding: [0xff,0xff,0x01,0x3c]
684# MIPS: ori   $1, $1, 32767           # encoding: [0xff,0x7f,0x21,0x34]
685# MIPS: xor   $4, $4, $1              # encoding: [0x26,0x20,0x81,0x00]
686# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XOR
687# MICROMIPS: lui $1, 65535            # encoding: [0xa1,0x41,0xff,0xff]
688# MICROMIPS: ori $1, $1, 32767        # encoding: [0x21,0x50,0xff,0x7f]
689# MICROMIPS: xor $4, $4, $1           # encoding: [0x24,0x00,0x10,0x23]
690# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XOR_MM
691  xor $4, -0x8000
692# MIPS: addiu $1, $zero, -32768       # encoding: [0x00,0x80,0x01,0x24]
693# MIPS: xor   $4, $4, $1              # encoding: [0x26,0x20,0x81,0x00]
694# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XOR
695# MICROMIPS: addiu $1, $zero, -32768  # encoding: [0x20,0x30,0x00,0x80]
696# MICROMIPS: xor $4, $4, $1           # encoding: [0x24,0x00,0x10,0x23]
697# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XOR_MM
698  xor $4, 0
699# MIPS: xori  $4, $4, 0               # encoding: [0x00,0x00,0x84,0x38]
700# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XORi
701# MICROMIPS: xori $4, $4, 0           # encoding: [0x84,0x70,0x00,0x00]
702# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XORi_MM
703  xor $4, 0xFFFF
704# MIPS: xori  $4, $4, 65535           # encoding: [0xff,0xff,0x84,0x38]
705# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XORi
706# MICROMIPS: xori $4, $4, 65535       # encoding: [0x84,0x70,0xff,0xff]
707# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XORi_MM
708  xor $4, 0x10000
709# MIPS: lui   $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
710# MIPS: xor   $4, $4, $1              # encoding: [0x26,0x20,0x81,0x00]
711# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XOR
712# MICROMIPS: lui $1, 1                # encoding: [0xa1,0x41,0x01,0x00]
713# MICROMIPS: xor $4, $4, $1           # encoding: [0x24,0x00,0x10,0x23]
714# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XOR_MM
715  xor $4, 0xFFFFFFFF
716# MIPS: addiu $1, $zero, -1           # encoding: [0xff,0xff,0x01,0x24]
717# MIPS: xor   $4, $4, $1              # encoding: [0x26,0x20,0x81,0x00]
718# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XOR
719# MICROMIPS: addiu $1, $zero, -1      # encoding: [0x20,0x30,0xff,0xff]
720# MICROMIPS: xor $4, $4, $1           # encoding: [0x24,0x00,0x10,0x23]
721# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XOR_MM
722  xor $4, ~(0xf0000000|0x0f000000|0x000000f0)
723# MIPS: lui   $1, 255                 # encoding: [0xff,0x00,0x01,0x3c]
724# MIPS: ori   $1, $1, 65295           # encoding: [0x0f,0xff,0x21,0x34]
725# MIPS: xor   $4, $4, $1              # encoding: [0x26,0x20,0x81,0x00]
726# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XOR
727# MICROMIPS: lui $1, 255              # encoding: [0xa1,0x41,0xff,0x00]
728# MICROMIPS: ori $1, $1, 65295        # encoding: [0x21,0x50,0x0f,0xff]
729# MICROMIPS: xor $4, $4, $1           # encoding: [0x24,0x00,0x10,0x23]
730# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XOR_MM
731
732  xor $4, $5, -0x80000000
733# MIPS: lui   $4, 32768               # encoding: [0x00,0x80,0x04,0x3c]
734# MIPS: xor   $4, $4, $5              # encoding: [0x26,0x20,0x85,0x00]
735# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XOR
736# MICROMIPS: lui $4, 32768            # encoding: [0xa4,0x41,0x00,0x80]
737# MICROMIPS: xor $4, $4, $5           # encoding: [0xa4,0x00,0x10,0x23]
738# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XOR_MM
739  xor $4, $5, -0x8001
740# MIPS: lui   $4, 65535               # encoding: [0xff,0xff,0x04,0x3c]
741# MIPS: ori   $4, $4, 32767           # encoding: [0xff,0x7f,0x84,0x34]
742# MIPS: xor   $4, $4, $5              # encoding: [0x26,0x20,0x85,0x00]
743# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XOR
744# MICROMIPS: lui $4, 65535            # encoding: [0xa4,0x41,0xff,0xff]
745# MICROMIPS: ori $4, $4, 32767        # encoding: [0x84,0x50,0xff,0x7f]
746# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ORi
747# MICROMIPS: xor $4, $4, $5           # encoding: [0xa4,0x00,0x10,0x23]
748# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XOR_MM
749  xor $4, $5, -0x8000
750# MIPS: addiu $4, $zero, -32768       # encoding: [0x00,0x80,0x04,0x24]
751# MIPS: xor   $4, $4, $5              # encoding: [0x26,0x20,0x85,0x00]
752# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XOR
753# MICROMIPS: addiu $4, $zero, -32768  # encoding: [0x80,0x30,0x00,0x80]
754# MICROMIPS: xor $4, $4, $5           # encoding: [0xa4,0x00,0x10,0x23]
755# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XOR_MM
756  xor $4, $5, 0
757# MIPS: xori  $4, $5, 0               # encoding: [0x00,0x00,0xa4,0x38]
758# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XORi
759# MICROMIPS: xori $4, $5, 0           # encoding: [0x85,0x70,0x00,0x00]
760# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XORi_MM
761  xor $4, $5, 0xFFFF
762# MIPS: xori  $4, $5, 65535           # encoding: [0xff,0xff,0xa4,0x38]
763# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XORi
764# MICROMIPS: xori $4, $5, 65535       # encoding: [0x85,0x70,0xff,0xff]
765# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XORi_MM
766  xor $4, $5, 0x10000
767# MIPS: lui   $4, 1                   # encoding: [0x01,0x00,0x04,0x3c]
768# MIPS: xor   $4, $4, $5              # encoding: [0x26,0x20,0x85,0x00]
769# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XOR
770# MICROMIPS: lui $4, 1                # encoding: [0xa4,0x41,0x01,0x00]
771# MICROMIPS: xor $4, $4, $5           # encoding: [0xa4,0x00,0x10,0x23]
772# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XOR_MM
773  xor $4, $5, 0xFFFFFFFF
774# MIPS: addiu $4, $zero, -1           # encoding: [0xff,0xff,0x04,0x24]
775# MIPS: xor   $4, $4, $5              # encoding: [0x26,0x20,0x85,0x00]
776# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XOR
777# MICROMIPS: addiu $4, $zero, -1      # encoding: [0x80,0x30,0xff,0xff]
778# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ADDiu
779# MICROMIPS: xor $4, $4, $5           # encoding: [0xa4,0x00,0x10,0x23]
780# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XOR_MM
781  xor $4, $5, ~(0xf0000000|0x0f000000|0x000000f0)
782# MIPS: lui   $4, 255                 # encoding: [0xff,0x00,0x04,0x3c]
783# MIPS: ori   $4, $4, 65295           # encoding: [0x0f,0xff,0x84,0x34]
784# MIPS: xor   $4, $4, $5              # encoding: [0x26,0x20,0x85,0x00]
785# MIPS-NEXT:                          # <MCInst #{{[0-9]+}} XOR
786# MICROMIPS: lui $4, 255              # encoding: [0xa4,0x41,0xff,0x00]
787# MICROMIPS: ori $4, $4, 65295        # encoding: [0x84,0x50,0x0f,0xff]
788# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} ORi
789# MICROMIPS: xor $4, $4, $5           # encoding: [0xa4,0x00,0x10,0x23]
790# MICROMIPS-NEXT:                     # <MCInst #{{[0-9]+}} XOR_MM
791