1 # RUN: llvm-mc %s -triple=mipsel -show-encoding -show-inst -mattr=micromips \
2 # RUN: -mcpu=mips32r2 | FileCheck -check-prefix=CHECK-EL %s
3 # RUN: llvm-mc %s -triple=mips -show-encoding -show-inst -mattr=micromips \
4 # RUN: -mcpu=mips32r2 | FileCheck -check-prefix=CHECK-EB %s
5 # Check that the assembler can handle the documented syntax
7 #------------------------------------------------------------------------------
9 #------------------------------------------------------------------------------
11 #------------------------------------------------------------------------------
12 # CHECK-EL: add.s $f4, $f6, $f8 # encoding: [0x06,0x55,0x30,0x20]
13 # CHECK-EL: add.d $f4, $f6, $f8 # encoding: [0x06,0x55,0x30,0x21]
14 # CHECK-EL: div.s $f4, $f6, $f8 # encoding: [0x06,0x55,0xf0,0x20]
15 # CHECK-EL: div.d $f4, $f6, $f8 # encoding: [0x06,0x55,0xf0,0x21]
16 # CHECK-EL: mul.s $f4, $f6, $f8 # encoding: [0x06,0x55,0xb0,0x20]
17 # CHECK-EL: mul.d $f4, $f6, $f8 # encoding: [0x06,0x55,0xb0,0x21]
18 # CHECK-EL: sub.s $f4, $f6, $f8 # encoding: [0x06,0x55,0x70,0x20]
19 # CHECK-EL: sub.d $f4, $f6, $f8 # encoding: [0x06,0x55,0x70,0x21]
20 # CHECK-EL: lwc1 $f2, 4($6) # encoding: [0x46,0x9c,0x04,0x00]
21 # CHECK-EL: ldc1 $f2, 4($6) # encoding: [0x46,0xbc,0x04,0x00]
22 # CHECK-EL: swc1 $f2, 4($6) # encoding: [0x46,0x98,0x04,0x00]
23 # CHECK-EL: sdc1 $f2, 4($6) # encoding: [0x46,0xb8,0x04,0x00]
24 # CHECK-EL: bc1f 1332 # encoding: [0x80,0x43,0x9a,0x02]
25 # CHECK-EL: nop # encoding: [0x00,0x00,0x00,0x00]
26 # CHECK-EL: bc1t 1332 # encoding: [0xa0,0x43,0x9a,0x02]
27 # CHECK-EL: nop # encoding: [0x00,0x00,0x00,0x00]
28 # CHECK-EL: ceil.w.s $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x1b]
29 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} CEIL_W_S_MM
30 # CHECK-EL: ceil.w.d $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x5b]
31 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} CEIL_W_MM
32 # CHECK-EL: cvt.w.s $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x09]
33 # CHECK-EL: cvt.w.d $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x49]
34 # CHECK-EL: floor.w.s $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x0b]
35 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} FLOOR_W_S_MM
36 # CHECK-EL: floor.w.d $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x4b]
37 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} FLOOR_W_MM
38 # CHECK-EL: round.w.s $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x3b]
39 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} ROUND_W_S_MM
40 # CHECK-EL: round.w.d $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x7b]
41 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} ROUND_W_MM
42 # CHECK-EL: sqrt.s $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x0a]
43 # CHECK-EL: sqrt.d $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x4a]
44 # CHECK-EL: trunc.w.s $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x2b]
45 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} TRUNC_W_S_MM
46 # CHECK-EL: trunc.w.d $f6, $f8 # encoding: [0xc8,0x54,0x3b,0x6b]
47 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} TRUNC_W_MM
48 # CHECK-EL: abs.s $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x03]
49 # CHECK-EL: abs.d $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x23]
50 # CHECK-EL: mov.s $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x00]
51 # CHECK-EL: mov.d $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x20]
52 # CHECK-EL: neg.s $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x0b]
53 # CHECK-EL: neg.d $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x2b]
54 # CHECK-EL: cvt.d.s $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x13]
55 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} CVT_D32_S_MM
56 # CHECK-EL: cvt.d.w $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x33]
57 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} CVT_D32_W_MM
58 # CHECK-EL: cvt.s.d $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x1b]
59 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} CVT_S_D32_MM
60 # CHECK-EL: cvt.s.w $f6, $f8 # encoding: [0xc8,0x54,0x7b,0x3b]
61 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} CVT_S_W_MM
62 # CHECK-EL: cfc1 $6, $0 # encoding: [0xc0,0x54,0x3b,0x10]
63 # CHECK-EL: ctc1 $6, $0 # encoding: [0xc0,0x54,0x3b,0x18]
64 # CHECK-EL: mfc1 $6, $f8 # encoding: [0xc8,0x54,0x3b,0x20]
65 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MFC1_MM
66 # CHECK-EL: mtc1 $6, $f8 # encoding: [0xc8,0x54,0x3b,0x28]
67 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MTC1_MM
68 # CHECK-EL: mfhc1 $6, $f8 # encoding: [0xc8,0x54,0x3b,0x30]
69 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MFHC1_D32_MM
70 # CHECK-EL: mthc1 $6, $f8 # encoding: [0xc8,0x54,0x3b,0x38]
71 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MTHC1_D32_MM
72 # CHECK-EL: movz.s $f4, $f6, $7 # encoding: [0xe6,0x54,0x78,0x20]
73 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVZ_I_S_MM
74 # CHECK-EL: movz.d $f4, $f6, $7 # encoding: [0xe6,0x54,0x78,0x21]
75 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVZ_I_D32_MM
76 # CHECK-EL: movn.s $f4, $f6, $7 # encoding: [0xe6,0x54,0x38,0x20]
77 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVN_I_S_MM
78 # CHECK-EL: movn.d $f4, $f6, $7 # encoding: [0xe6,0x54,0x38,0x21]
79 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVN_I_D32_MM
80 # CHECK-EL: movt.s $f4, $f6, $fcc0 # encoding: [0x86,0x54,0x60,0x00]
81 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVT_S_MM
82 # CHECK-EL: movt.d $f4, $f6, $fcc0 # encoding: [0x86,0x54,0x60,0x02]
83 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVT_D32_MM
84 # CHECK-EL: movf.s $f4, $f6, $fcc0 # encoding: [0x86,0x54,0x20,0x00]
85 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVF_S_MM
86 # CHECK-EL: movf.d $f4, $f6, $fcc0 # encoding: [0x86,0x54,0x20,0x02]
87 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} MOVF_D32_MM
88 # CHECK-EL: madd.s $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x01,0x11]
89 # CHECK-EL: madd.d $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x09,0x11]
90 # CHECK-EL: msub.s $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x21,0x11]
91 # CHECK-EL: msub.d $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x29,0x11]
92 # CHECK-EL: nmadd.s $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x02,0x11]
93 # CHECK-EL: nmadd.d $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x0a,0x11]
94 # CHECK-EL: nmsub.s $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x22,0x11]
95 # CHECK-EL: nmsub.d $f2, $f4, $f6, $f8 # encoding: [0x06,0x55,0x2a,0x11]
96 # CHECK-EL: c.f.s $f6, $f7 # encoding: [0xe6,0x54,0x3c,0x00]
97 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_F_S_MM
98 # CHECK-EL: c.un.s $f6, $f7 # encoding: [0xe6,0x54,0x7c,0x00]
99 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_UN_S_MM
100 # CHECK-EL: c.eq.s $f6, $f7 # encoding: [0xe6,0x54,0xbc,0x00]
101 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_EQ_S_MM
102 # CHECK-EL: c.olt.s $f6, $f7 # encoding: [0xe6,0x54,0x3c,0x01]
103 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_OLT_S_MM
104 # CHECK-EL: c.ult.s $f6, $f7 # encoding: [0xe6,0x54,0x7c,0x01]
105 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_ULT_S_MM
106 # CHECK-EL: c.ole.s $f6, $f7 # encoding: [0xe6,0x54,0xbc,0x01]
107 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_OLE_S_MM
108 # CHECK-EL: c.ule.s $f6, $f7 # encoding: [0xe6,0x54,0xfc,0x01]
109 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_ULE_S_MM
110 # CHECK-EL: c.sf.s $f6, $f7 # encoding: [0xe6,0x54,0x3c,0x02]
111 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_SF_S_MM
112 # CHECK-EL: c.ngle.s $f6, $f7 # encoding: [0xe6,0x54,0x7c,0x02]
113 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGLE_S_MM
114 # CHECK-EL: c.seq.s $f6, $f7 # encoding: [0xe6,0x54,0xbc,0x02]
115 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_SEQ_S_MM
116 # CHECK-EL: c.ngl.s $f6, $f7 # encoding: [0xe6,0x54,0xfc,0x02]
117 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGL_S_MM
118 # CHECK-EL: c.lt.s $f6, $f7 # encoding: [0xe6,0x54,0x3c,0x03]
119 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_LT_S_MM
120 # CHECK-EL: c.nge.s $f6, $f7 # encoding: [0xe6,0x54,0x7c,0x03]
121 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGE_S_MM
122 # CHECK-EL: c.le.s $f6, $f7 # encoding: [0xe6,0x54,0xbc,0x03]
123 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_LE_S_MM
124 # CHECK-EL: c.ngt.s $f6, $f7 # encoding: [0xe6,0x54,0xfc,0x03]
125 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGT_S_MM
126 # CHECK-EL: c.sf.d $f30, $f0 # encoding: [0x1e,0x54,0x3c,0x06]
127 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_SF_D32_MM
128 # CHECK-EL: c.f.d $f12, $f14 # encoding: [0xcc,0x55,0x3c,0x04]
129 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_F_D32_MM
130 # CHECK-EL: c.un.d $f12, $f14 # encoding: [0xcc,0x55,0x7c,0x04]
131 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_UN_D32_MM
132 # CHECK-EL: c.eq.d $f12, $f14 # encoding: [0xcc,0x55,0xbc,0x04]
133 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_EQ_D32_MM
134 # CHECK-EL: c.ueq.d $f12, $f14 # encoding: [0xcc,0x55,0xfc,0x04]
135 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_UEQ_D32_MM
136 # CHECK-EL: c.olt.d $f12, $f14 # encoding: [0xcc,0x55,0x3c,0x05]
137 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_OLT_D32_MM
138 # CHECK-EL: c.ult.d $f12, $f14 # encoding: [0xcc,0x55,0x7c,0x05]
139 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_ULT_D32_MM
140 # CHECK-EL: c.ole.d $f12, $f14 # encoding: [0xcc,0x55,0xbc,0x05]
141 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_OLE_D32_MM
142 # CHECK-EL: c.ule.d $f12, $f14 # encoding: [0xcc,0x55,0xfc,0x05]
143 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_ULE_D32_MM
144 # CHECK-EL: c.sf.d $f12, $f14 # encoding: [0xcc,0x55,0x3c,0x06]
145 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_SF_D32_MM
146 # CHECK-EL: c.ngle.d $f12, $f14 # encoding: [0xcc,0x55,0x7c,0x06]
147 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGLE_D32_MM
148 # CHECK-EL: c.seq.d $f12, $f14 # encoding: [0xcc,0x55,0xbc,0x06]
149 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_SEQ_D32_MM
150 # CHECK-EL: c.ngl.d $f12, $f14 # encoding: [0xcc,0x55,0xfc,0x06]
151 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGL_D32_MM
152 # CHECK-EL: c.lt.d $f12, $f14 # encoding: [0xcc,0x55,0x3c,0x07]
153 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_LT_D32_MM
154 # CHECK-EL: c.nge.d $f12, $f14 # encoding: [0xcc,0x55,0x7c,0x07]
155 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGE_D32_MM
156 # CHECK-EL: c.le.d $f12, $f14 # encoding: [0xcc,0x55,0xbc,0x07]
157 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_LE_D32_MM
158 # CHECK-EL: c.ngt.d $f12, $f14 # encoding: [0xcc,0x55,0xfc,0x07]
159 # CHECK-EL-NEXT: # <MCInst #{{[0-9]+}} C_NGT_D32_MM
160 #------------------------------------------------------------------------------
162 #------------------------------------------------------------------------------
163 # CHECK-EB: add.s $f4, $f6, $f8 # encoding: [0x55,0x06,0x20,0x30]
164 # CHECK-EB: add.d $f4, $f6, $f8 # encoding: [0x55,0x06,0x21,0x30]
165 # CHECK-EB: div.s $f4, $f6, $f8 # encoding: [0x55,0x06,0x20,0xf0]
166 # CHECK-EB: div.d $f4, $f6, $f8 # encoding: [0x55,0x06,0x21,0xf0]
167 # CHECK-EB: mul.s $f4, $f6, $f8 # encoding: [0x55,0x06,0x20,0xb0]
168 # CHECK-EB: mul.d $f4, $f6, $f8 # encoding: [0x55,0x06,0x21,0xb0]
169 # CHECK-EB: sub.s $f4, $f6, $f8 # encoding: [0x55,0x06,0x20,0x70]
170 # CHECK-EB: sub.d $f4, $f6, $f8 # encoding: [0x55,0x06,0x21,0x70]
171 # CHECK-EB: lwc1 $f2, 4($6) # encoding: [0x9c,0x46,0x00,0x04]
172 # CHECK-EB: ldc1 $f2, 4($6) # encoding: [0xbc,0x46,0x00,0x04]
173 # CHECK-EB: swc1 $f2, 4($6) # encoding: [0x98,0x46,0x00,0x04]
174 # CHECK-EB: sdc1 $f2, 4($6) # encoding: [0xb8,0x46,0x00,0x04]
175 # CHECK-EB: bc1f 1332 # encoding: [0x43,0x80,0x02,0x9a]
176 # CHECK-EB: nop # encoding: [0x00,0x00,0x00,0x00]
177 # CHECK-EB: bc1t 1332 # encoding: [0x43,0xa0,0x02,0x9a]
178 # CHECK-EB: nop # encoding: [0x00,0x00,0x00,0x00]
179 # CHECK-EB: ceil.w.s $f6, $f8 # encoding: [0x54,0xc8,0x1b,0x3b]
180 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} CEIL_W_S_MM
181 # CHECK-EB: ceil.w.d $f6, $f8 # encoding: [0x54,0xc8,0x5b,0x3b]
182 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} CEIL_W_MM
183 # CHECK-EB: cvt.w.s $f6, $f8 # encoding: [0x54,0xc8,0x09,0x3b]
184 # CHECK-EB: cvt.w.d $f6, $f8 # encoding: [0x54,0xc8,0x49,0x3b]
185 # CHECK-EB: floor.w.s $f6, $f8 # encoding: [0x54,0xc8,0x0b,0x3b]
186 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} FLOOR_W_S_MM
187 # CHECK-EB: floor.w.d $f6, $f8 # encoding: [0x54,0xc8,0x4b,0x3b]
188 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} FLOOR_W_MM
189 # CHECK-EB: round.w.s $f6, $f8 # encoding: [0x54,0xc8,0x3b,0x3b]
190 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} ROUND_W_S_MM
191 # CHECK-EB: round.w.d $f6, $f8 # encoding: [0x54,0xc8,0x7b,0x3b]
192 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} ROUND_W_MM
193 # CHECK-EB: sqrt.s $f6, $f8 # encoding: [0x54,0xc8,0x0a,0x3b]
194 # CHECK-EB: sqrt.d $f6, $f8 # encoding: [0x54,0xc8,0x4a,0x3b]
195 # CHECK-EB: trunc.w.s $f6, $f8 # encoding: [0x54,0xc8,0x2b,0x3b]
196 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} TRUNC_W_S_MM
197 # CHECK-EB: trunc.w.d $f6, $f8 # encoding: [0x54,0xc8,0x6b,0x3b]
198 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} TRUNC_W_MM
199 # CHECK-EB: abs.s $f6, $f8 # encoding: [0x54,0xc8,0x03,0x7b]
200 # CHECK-EB: abs.d $f6, $f8 # encoding: [0x54,0xc8,0x23,0x7b]
201 # CHECK-EB: mov.s $f6, $f8 # encoding: [0x54,0xc8,0x00,0x7b]
202 # CHECK-EB: mov.d $f6, $f8 # encoding: [0x54,0xc8,0x20,0x7b]
203 # CHECK-EB: neg.s $f6, $f8 # encoding: [0x54,0xc8,0x0b,0x7b]
204 # CHECK-EB: neg.d $f6, $f8 # encoding: [0x54,0xc8,0x2b,0x7b]
205 # CHECK-EB: cvt.d.s $f6, $f8 # encoding: [0x54,0xc8,0x13,0x7b]
206 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} CVT_D32_S_MM
207 # CHECK-EB: cvt.d.w $f6, $f8 # encoding: [0x54,0xc8,0x33,0x7b]
208 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} CVT_D32_W_MM
209 # CHECK-EB: cvt.s.d $f6, $f8 # encoding: [0x54,0xc8,0x1b,0x7b]
210 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} CVT_S_D32_MM
211 # CHECK-EB: cvt.s.w $f6, $f8 # encoding: [0x54,0xc8,0x3b,0x7b]
212 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} CVT_S_W_MM
213 # CHECK-EB: cfc1 $6, $0 # encoding: [0x54,0xc0,0x10,0x3b]
214 # CHECK-EB: ctc1 $6, $0 # encoding: [0x54,0xc0,0x18,0x3b]
215 # CHECK-EB: mfc1 $6, $f8 # encoding: [0x54,0xc8,0x20,0x3b]
216 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MFC1_MM
217 # CHECK-EB: mtc1 $6, $f8 # encoding: [0x54,0xc8,0x28,0x3b]
218 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MTC1_MM
219 # CHECK-EB: mfhc1 $6, $f8 # encoding: [0x54,0xc8,0x30,0x3b]
220 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MFHC1_D32_MM
221 # CHECK-EB: mthc1 $6, $f8 # encoding: [0x54,0xc8,0x38,0x3b]
222 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MTHC1_D32_MM
223 # CHECK-EB: movz.s $f4, $f6, $7 # encoding: [0x54,0xe6,0x20,0x78]
224 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVZ_I_S_MM
225 # CHECK-EB: movz.d $f4, $f6, $7 # encoding: [0x54,0xe6,0x21,0x78]
226 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVZ_I_D32_MM
227 # CHECK-EB: movn.s $f4, $f6, $7 # encoding: [0x54,0xe6,0x20,0x38]
228 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVN_I_S_MM
229 # CHECK-EB: movn.d $f4, $f6, $7 # encoding: [0x54,0xe6,0x21,0x38]
230 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVN_I_D32_MM
231 # CHECK-EB: movt.s $f4, $f6, $fcc0 # encoding: [0x54,0x86,0x00,0x60]
232 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVT_S_MM
233 # CHECK-EB: movt.d $f4, $f6, $fcc0 # encoding: [0x54,0x86,0x02,0x60]
234 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVT_D32_MM
235 # CHECK-EB: movf.s $f4, $f6, $fcc0 # encoding: [0x54,0x86,0x00,0x20]
236 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVF_S_MM
237 # CHECK-EB: movf.d $f4, $f6, $fcc0 # encoding: [0x54,0x86,0x02,0x20]
238 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MOVF_D32_MM
239 # CHECK-EB: madd.s $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x01]
240 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MADD_S_MM
241 # CHECK-EB: madd.d $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x09]
242 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MADD_D32_MM
243 # CHECK-EB: msub.s $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x21]
244 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MSUB_S_MM
245 # CHECK-EB: msub.d $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x29]
246 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} MSUB_D32_MM
247 # CHECK-EB: nmadd.s $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x02]
248 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} NMADD_S_MM
249 # CHECK-EB: nmadd.d $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x0a]
250 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} NMADD_D32_MM
251 # CHECK-EB: nmsub.s $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x22]
252 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} NMSUB_S_MM
253 # CHECK-EB: nmsub.d $f2, $f4, $f6, $f8 # encoding: [0x55,0x06,0x11,0x2a]
254 # CHECK-EB: c.f.s $f6, $f7 # encoding: [0x54,0xe6,0x00,0x3c]
255 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_F_S_MM
256 # CHECK-EB: c.un.s $f6, $f7 # encoding: [0x54,0xe6,0x00,0x7c]
257 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_UN_S_MM
258 # CHECK-EB: c.eq.s $f6, $f7 # encoding: [0x54,0xe6,0x00,0xbc]
259 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_EQ_S_MM
260 # CHECK-EB: c.olt.s $f6, $f7 # encoding: [0x54,0xe6,0x01,0x3c]
261 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_OLT_S_MM
262 # CHECK-EB: c.ult.s $f6, $f7 # encoding: [0x54,0xe6,0x01,0x7c]
263 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_ULT_S_MM
264 # CHECK-EB: c.ole.s $f6, $f7 # encoding: [0x54,0xe6,0x01,0xbc]
265 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_OLE_S_MM
266 # CHECK-EB: c.ule.s $f6, $f7 # encoding: [0x54,0xe6,0x01,0xfc]
267 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_ULE_S_MM
268 # CHECK-EB: c.sf.s $f6, $f7 # encoding: [0x54,0xe6,0x02,0x3c]
269 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_SF_S_MM
270 # CHECK-EB: c.ngle.s $f6, $f7 # encoding: [0x54,0xe6,0x02,0x7c]
271 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGLE_S_MM
272 # CHECK-EB: c.seq.s $f6, $f7 # encoding: [0x54,0xe6,0x02,0xbc]
273 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_SEQ_S_MM
274 # CHECK-EB: c.ngl.s $f6, $f7 # encoding: [0x54,0xe6,0x02,0xfc]
275 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGL_S_MM
276 # CHECK-EB: c.lt.s $f6, $f7 # encoding: [0x54,0xe6,0x03,0x3c]
277 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_LT_S_MM
278 # CHECK-EB: c.nge.s $f6, $f7 # encoding: [0x54,0xe6,0x03,0x7c]
279 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGE_S_MM
280 # CHECK-EB: c.le.s $f6, $f7 # encoding: [0x54,0xe6,0x03,0xbc]
281 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_LE_S_MM
282 # CHECK-EB: c.ngt.s $f6, $f7 # encoding: [0x54,0xe6,0x03,0xfc]
283 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGT_S_MM
284 # CHECK-EB: c.sf.d $f30, $f0 # encoding: [0x54,0x1e,0x06,0x3c]
285 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_SF_D32_MM
286 # CHECK-EB: c.f.d $f12, $f14 # encoding: [0x55,0xcc,0x04,0x3c]
287 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_F_D32_MM
288 # CHECK-EB: c.un.d $f12, $f14 # encoding: [0x55,0xcc,0x04,0x7c]
289 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_UN_D32_MM
290 # CHECK-EB: c.eq.d $f12, $f14 # encoding: [0x55,0xcc,0x04,0xbc]
291 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_EQ_D32_MM
292 # CHECK-EB: c.ueq.d $f12, $f14 # encoding: [0x55,0xcc,0x04,0xfc]
293 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_UEQ_D32_MM
294 # CHECK-EB: c.olt.d $f12, $f14 # encoding: [0x55,0xcc,0x05,0x3c]
295 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_OLT_D32_MM
296 # CHECK-EB: c.ult.d $f12, $f14 # encoding: [0x55,0xcc,0x05,0x7c]
297 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_ULT_D32_MM
298 # CHECK-EB: c.ole.d $f12, $f14 # encoding: [0x55,0xcc,0x05,0xbc]
299 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_OLE_D32_MM
300 # CHECK-EB: c.ule.d $f12, $f14 # encoding: [0x55,0xcc,0x05,0xfc]
301 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_ULE_D32_MM
302 # CHECK-EB: c.sf.d $f12, $f14 # encoding: [0x55,0xcc,0x06,0x3c]
303 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_SF_D32_MM
304 # CHECK-EB: c.ngle.d $f12, $f14 # encoding: [0x55,0xcc,0x06,0x7c]
305 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGLE_D32_MM
306 # CHECK-EB: c.seq.d $f12, $f14 # encoding: [0x55,0xcc,0x06,0xbc]
307 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_SEQ_D32_MM
308 # CHECK-EB: c.ngl.d $f12, $f14 # encoding: [0x55,0xcc,0x06,0xfc]
309 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGL_D32_MM
310 # CHECK-EB: c.lt.d $f12, $f14 # encoding: [0x55,0xcc,0x07,0x3c]
311 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_LT_D32_MM
312 # CHECK-EB: c.nge.d $f12, $f14 # encoding: [0x55,0xcc,0x07,0x7c]
313 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGE_D32_MM
314 # CHECK-EB: c.le.d $f12, $f14 # encoding: [0x55,0xcc,0x07,0xbc]
315 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_LE_D32_MM
316 # CHECK-EB: c.ngt.d $f12, $f14 # encoding: [0x55,0xcc,0x07,0xfc]
317 # CHECK-EB-NEXT: # <MCInst #{{[0-9]+}} C_NGT_D32_MM
365 movt.s $
f4, $
f6, $fcc0
366 movt.d $
f4, $
f6, $fcc0
367 movf.s $
f4, $
f6, $fcc0
368 movf.d $
f4, $
f6, $fcc0
369 madd.s $
f2, $
f4, $
f6, $
f8
370 madd.d $
f2, $
f4, $
f6, $
f8
371 msub.s $
f2, $
f4, $
f6, $
f8
372 msub.d $
f2, $
f4, $
f6, $
f8
373 nmadd.s $
f2, $
f4, $
f6, $
f8
374 nmadd.d $
f2, $
f4, $
f6, $
f8
375 nmsub.s $
f2, $
f4, $
f6, $
f8
376 nmsub.d $
f2, $
f4, $
f6, $
f8