Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(938)

Side by Side Diff: tests_lit/assembler/mips32/encoding_test_fcmp.ll

Issue 2357143002: [SubZero] Fix floating-point comparison for MIPS (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 ; Test encoding of MIPS32 floating point comparison 1 ; Test encoding of MIPS32 floating point comparison
2 2
3 ; REQUIRES: allow_dump 3 ; REQUIRES: allow_dump
4 4
5 ; Compile using standalone assembler. 5 ; Compile using standalone assembler.
6 ; RUN: %p2i --filetype=asm -i %s --target=mips32 --args -O2 \ 6 ; RUN: %p2i --filetype=asm -i %s --target=mips32 --args -O2 \
7 ; RUN: --allow-externally-defined-symbols --skip-unimplemented \ 7 ; RUN: --allow-externally-defined-symbols --skip-unimplemented \
8 ; RUN: | FileCheck %s --check-prefix=ASM 8 ; RUN: | FileCheck %s --check-prefix=ASM
9 9
10 ; Show bytes in assembled standalone code. 10 ; Show bytes in assembled standalone code.
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 define internal i32 @fcmpOeqFloat(float %a, float %b) { 91 define internal i32 @fcmpOeqFloat(float %a, float %b) {
92 entry: 92 entry:
93 %cmp = fcmp oeq float %a, %b 93 %cmp = fcmp oeq float %a, %b
94 %cmp.ret_ext = zext i1 %cmp to i32 94 %cmp.ret_ext = zext i1 %cmp to i32
95 ret i32 %cmp.ret_ext 95 ret i32 %cmp.ret_ext
96 } 96 }
97 97
98 ; ASM-LABEL: fcmpOeqFloat 98 ; ASM-LABEL: fcmpOeqFloat
99 ; ASM-NEXT: .LfcmpOeqFloat$entry: 99 ; ASM-NEXT: .LfcmpOeqFloat$entry:
100 ; ASM-NEXT: c.eq.s $f12, $f14 100 ; ASM-NEXT: c.eq.s $f12, $f14
101 ; ASM-NEXT: addiu $v0, $zero, 1
101 ; ASM-NEXT: movf $v0, $zero, $fcc0 102 ; ASM-NEXT: movf $v0, $zero, $fcc0
102 ; ASM-NEXT: andi $v0, $v0, 1 103 ; ASM-NEXT: andi $v0, $v0, 1
103 ; ASM-NEXT: jr $ra 104 ; ASM-NEXT: jr $ra
104 105
105 ; DIS-LABEL: 00000020 <fcmpOeqFloat>: 106 ; DIS-LABEL: 00000020 <fcmpOeqFloat>:
106 ; DIS-NEXT: 20: 460e6032 c.eq.s $f12,$f14 107 ; DIS-NEXT: 20: 460e6032 c.eq.s $f12,$f14
107 ; DIS-NEXT: 24:» 00001001 » movf» v0,zero,$fcc0 108 ; DIS-NEXT: 24:» 24020001 » li» v0,1
108 ; DIS-NEXT: 28:» 30420001 » andi» v0,v0,0x1 109 ; DIS-NEXT: 28:» 00001001 » movf» v0,zero,$fcc0
109 ; DIS-NEXT: 2c:» 03e00008 » jr» ra 110 ; DIS-NEXT: 2c:» 30420001 » andi» v0,v0,0x1
111 ; DIS-NEXT: 30:» 03e00008 » jr» ra
110 112
111 ; IASM-LABEL: fcmpOeqFloat: 113 ; IASM-LABEL: fcmpOeqFloat:
112 ; IASM-NEXT: .LfcmpOeqFloat$entry: 114 ; IASM-NEXT: .LfcmpOeqFloat$entry:
113 ; IASM-NEXT: .byte 0x32 115 ; IASM-NEXT: .byte 0x32
114 ; IASM-NEXT: .byte 0x60 116 ; IASM-NEXT: .byte 0x60
115 ; IASM-NEXT: .byte 0xe 117 ; IASM-NEXT: .byte 0xe
116 ; IASM-NEXT: .byte 0x46 118 ; IASM-NEXT: .byte 0x46
117 ; IASM-NEXT: .byte 0x1 119 ; IASM-NEXT: .byte 0x1
120 ; IASM-NEXT: .byte 0x0
121 ; IASM-NEXT: .byte 0x2
122 ; IASM-NEXT: .byte 0x24
123 ; IASM-NEXT: .byte 0x1
118 ; IASM-NEXT: .byte 0x10 124 ; IASM-NEXT: .byte 0x10
119 ; IASM-NEXT: .byte 0x0 125 ; IASM-NEXT: .byte 0x0
120 ; IASM-NEXT: .byte 0x0 126 ; IASM-NEXT: .byte 0x0
121 ; IASM-NEXT: .byte 0x1 127 ; IASM-NEXT: .byte 0x1
122 ; IASM-NEXT: .byte 0x0 128 ; IASM-NEXT: .byte 0x0
123 ; IASM-NEXT: .byte 0x42 129 ; IASM-NEXT: .byte 0x42
124 ; IASM-NEXT: .byte 0x30 130 ; IASM-NEXT: .byte 0x30
125 ; IASM-NEXT: .byte 0x8 131 ; IASM-NEXT: .byte 0x8
126 ; IASM-NEXT: .byte 0x0 132 ; IASM-NEXT: .byte 0x0
127 ; IASM-NEXT: .byte 0xe0 133 ; IASM-NEXT: .byte 0xe0
128 ; IASM-NEXT: .byte 0x3 134 ; IASM-NEXT: .byte 0x3
129 135
130 define internal i32 @fcmpOeqDouble(double %a, double %b) { 136 define internal i32 @fcmpOeqDouble(double %a, double %b) {
131 entry: 137 entry:
132 %cmp = fcmp oeq double %a, %b 138 %cmp = fcmp oeq double %a, %b
133 %cmp.ret_ext = zext i1 %cmp to i32 139 %cmp.ret_ext = zext i1 %cmp to i32
134 ret i32 %cmp.ret_ext 140 ret i32 %cmp.ret_ext
135 } 141 }
136 142
137 ; ASM-LABEL: fcmpOeqDouble 143 ; ASM-LABEL: fcmpOeqDouble
138 ; ASM-NEXT: .LfcmpOeqDouble$entry: 144 ; ASM-NEXT: .LfcmpOeqDouble$entry:
139 ; ASM-NEXT: c.eq.d $f12, $f14 145 ; ASM-NEXT: c.eq.d $f12, $f14
146 ; ASM-NEXT: addiu $v0, $zero, 1
140 ; ASM-NEXT: movf $v0, $zero, $fcc0 147 ; ASM-NEXT: movf $v0, $zero, $fcc0
141 ; ASM-NEXT: andi $v0, $v0, 1 148 ; ASM-NEXT: andi $v0, $v0, 1
142 ; ASM-NEXT: jr $ra 149 ; ASM-NEXT: jr $ra
143 150
144 ; DIS-LABEL: 00000040 <fcmpOeqDouble>: 151 ; DIS-LABEL: 00000040 <fcmpOeqDouble>:
145 ; DIS-NEXT: 40: 462e6032 c.eq.d $f12,$f14 152 ; DIS-NEXT: 40: 462e6032 c.eq.d $f12,$f14
146 ; DIS-NEXT: 44:» 00001001 » movf» v0,zero,$fcc0 153 ; DIS-NEXT: 44:» 24020001 » li» v0,1
147 ; DIS-NEXT: 48:» 30420001 » andi» v0,v0,0x1 154 ; DIS-NEXT: 48:» 00001001 » movf» v0,zero,$fcc0
148 ; DIS-NEXT: 4c:» 03e00008 » jr» ra 155 ; DIS-NEXT: 4c:» 30420001 » andi» v0,v0,0x1
156 ; DIS-NEXT: 50:» 03e00008 » jr» ra
149 157
150 ; IASM-LABEL: fcmpOeqDouble: 158 ; IASM-LABEL: fcmpOeqDouble:
151 ; IASM-NEXT: .LfcmpOeqDouble$entry: 159 ; IASM-NEXT: .LfcmpOeqDouble$entry:
152 ; IASM-NEXT: .byte 0x32 160 ; IASM-NEXT: .byte 0x32
153 ; IASM-NEXT: .byte 0x60 161 ; IASM-NEXT: .byte 0x60
154 ; IASM-NEXT: .byte 0x2e 162 ; IASM-NEXT: .byte 0x2e
155 ; IASM-NEXT: .byte 0x46 163 ; IASM-NEXT: .byte 0x46
156 ; IASM-NEXT: .byte 0x1 164 ; IASM-NEXT: .byte 0x1
165 ; IASM-NEXT: .byte 0x0
166 ; IASM-NEXT: .byte 0x2
167 ; IASM-NEXT: .byte 0x24
168 ; IASM-NEXT: .byte 0x1
157 ; IASM-NEXT: .byte 0x10 169 ; IASM-NEXT: .byte 0x10
158 ; IASM-NEXT: .byte 0x0 170 ; IASM-NEXT: .byte 0x0
159 ; IASM-NEXT: .byte 0x0 171 ; IASM-NEXT: .byte 0x0
160 ; IASM-NEXT: .byte 0x1 172 ; IASM-NEXT: .byte 0x1
161 ; IASM-NEXT: .byte 0x0 173 ; IASM-NEXT: .byte 0x0
162 ; IASM-NEXT: .byte 0x42 174 ; IASM-NEXT: .byte 0x42
163 ; IASM-NEXT: .byte 0x30 175 ; IASM-NEXT: .byte 0x30
164 ; IASM-NEXT: .byte 0x8 176 ; IASM-NEXT: .byte 0x8
165 ; IASM-NEXT: .byte 0x0 177 ; IASM-NEXT: .byte 0x0
166 ; IASM-NEXT: .byte 0xe0 178 ; IASM-NEXT: .byte 0xe0
167 ; IASM-NEXT: .byte 0x3 179 ; IASM-NEXT: .byte 0x3
168 180
169 define internal i32 @fcmpOgtFloat(float %a, float %b) { 181 define internal i32 @fcmpOgtFloat(float %a, float %b) {
170 entry: 182 entry:
171 %cmp = fcmp ogt float %a, %b 183 %cmp = fcmp ogt float %a, %b
172 %cmp.ret_ext = zext i1 %cmp to i32 184 %cmp.ret_ext = zext i1 %cmp to i32
173 ret i32 %cmp.ret_ext 185 ret i32 %cmp.ret_ext
174 } 186 }
175 187
176 ; ASM-LABEL: fcmpOgtFloat 188 ; ASM-LABEL: fcmpOgtFloat
177 ; ASM-NEXT: .LfcmpOgtFloat$entry: 189 ; ASM-NEXT: .LfcmpOgtFloat$entry:
178 ; ASM-NEXT: c.ule.s $f12, $f14 190 ; ASM-NEXT: c.ule.s $f12, $f14
191 ; ASM-NEXT: addiu $v0, $zero, 1
179 ; ASM-NEXT: movt $v0, $zero, $fcc0 192 ; ASM-NEXT: movt $v0, $zero, $fcc0
180 ; ASM-NEXT: andi $v0, $v0, 1 193 ; ASM-NEXT: andi $v0, $v0, 1
181 ; ASM-NEXT: jr $ra 194 ; ASM-NEXT: jr $ra
182 195
183 ; DIS-LABEL: 00000060 <fcmpOgtFloat>: 196 ; DIS-LABEL: 00000060 <fcmpOgtFloat>:
184 ; DIS-NEXT: 60: 460e6037 c.ule.s $f12,$f14 197 ; DIS-NEXT: 60: 460e6037 c.ule.s $f12,$f14
185 ; DIS-NEXT: 64:» 00011001 » movt» v0,zero,$fcc0 198 ; DIS-NEXT: 64:» 24020001 » li» v0,1
186 ; DIS-NEXT: 68:» 30420001 » andi» v0,v0,0x1 199 ; DIS-NEXT: 68:» 00011001 » movt» v0,zero,$fcc0
187 ; DIS-NEXT: 6c:» 03e00008 » jr» ra 200 ; DIS-NEXT: 6c:» 30420001 » andi» v0,v0,0x1
201 ; DIS-NEXT: 70:» 03e00008 » jr» ra
188 202
189 ; IASM-LABEL: fcmpOgtFloat: 203 ; IASM-LABEL: fcmpOgtFloat:
190 ; IASM-NEXT: .LfcmpOgtFloat$entry: 204 ; IASM-NEXT: .LfcmpOgtFloat$entry:
191 ; IASM-NEXT: .byte 0x37 205 ; IASM-NEXT: .byte 0x37
192 ; IASM-NEXT: .byte 0x60 206 ; IASM-NEXT: .byte 0x60
193 ; IASM-NEXT: .byte 0xe 207 ; IASM-NEXT: .byte 0xe
194 ; IASM-NEXT: .byte 0x46 208 ; IASM-NEXT: .byte 0x46
195 ; IASM-NEXT: .byte 0x1 209 ; IASM-NEXT: .byte 0x1
210 ; IASM-NEXT: .byte 0x0
211 ; IASM-NEXT: .byte 0x2
212 ; IASM-NEXT: .byte 0x24
213 ; IASM-NEXT: .byte 0x1
196 ; IASM-NEXT: .byte 0x10 214 ; IASM-NEXT: .byte 0x10
197 ; IASM-NEXT: .byte 0x1 215 ; IASM-NEXT: .byte 0x1
198 ; IASM-NEXT: .byte 0x0 216 ; IASM-NEXT: .byte 0x0
199 ; IASM-NEXT: .byte 0x1 217 ; IASM-NEXT: .byte 0x1
200 ; IASM-NEXT: .byte 0x0 218 ; IASM-NEXT: .byte 0x0
201 ; IASM-NEXT: .byte 0x42 219 ; IASM-NEXT: .byte 0x42
202 ; IASM-NEXT: .byte 0x30 220 ; IASM-NEXT: .byte 0x30
203 ; IASM-NEXT: .byte 0x8 221 ; IASM-NEXT: .byte 0x8
204 ; IASM-NEXT: .byte 0x0 222 ; IASM-NEXT: .byte 0x0
205 ; IASM-NEXT: .byte 0xe0 223 ; IASM-NEXT: .byte 0xe0
206 ; IASM-NEXT: .byte 0x3 224 ; IASM-NEXT: .byte 0x3
207 225
208 define internal i32 @fcmpOgtDouble(double %a, double %b) { 226 define internal i32 @fcmpOgtDouble(double %a, double %b) {
209 entry: 227 entry:
210 %cmp = fcmp ogt double %a, %b 228 %cmp = fcmp ogt double %a, %b
211 %cmp.ret_ext = zext i1 %cmp to i32 229 %cmp.ret_ext = zext i1 %cmp to i32
212 ret i32 %cmp.ret_ext 230 ret i32 %cmp.ret_ext
213 } 231 }
214 232
215 ; ASM-LABEL: fcmpOgtDouble 233 ; ASM-LABEL: fcmpOgtDouble
216 ; ASM-NEXT: .LfcmpOgtDouble$entry: 234 ; ASM-NEXT: .LfcmpOgtDouble$entry:
217 ; ASM-NEXT: c.ule.d $f12, $f14 235 ; ASM-NEXT: c.ule.d $f12, $f14
236 ; ASM-NEXT: addiu $v0, $zero, 1
218 ; ASM-NEXT: movt $v0, $zero, $fcc0 237 ; ASM-NEXT: movt $v0, $zero, $fcc0
219 ; ASM-NEXT: andi $v0, $v0, 1 238 ; ASM-NEXT: andi $v0, $v0, 1
220 ; ASM-NEXT: jr $ra 239 ; ASM-NEXT: jr $ra
221 240
222 ; DIS-LABEL: 00000080 <fcmpOgtDouble>: 241 ; DIS-LABEL: 00000080 <fcmpOgtDouble>:
223 ; DIS-NEXT: 80: 462e6037 c.ule.d $f12,$f14 242 ; DIS-NEXT: 80: 462e6037 c.ule.d $f12,$f14
224 ; DIS-NEXT: 84:» 00011001 » movt» v0,zero,$fcc0 243 ; DIS-NEXT: 84:» 24020001 » li» v0,1
225 ; DIS-NEXT: 88:» 30420001 » andi» v0,v0,0x1 244 ; DIS-NEXT: 88:» 00011001 » movt» v0,zero,$fcc0
226 ; DIS-NEXT: 8c:» 03e00008 » jr» ra 245 ; DIS-NEXT: 8c:» 30420001 » andi» v0,v0,0x1
246 ; DIS-NEXT: 90:» 03e00008 » jr» ra
227 247
228 ; IASM-LABEL: fcmpOgtDouble: 248 ; IASM-LABEL: fcmpOgtDouble:
229 ; IASM-NEXT: .LfcmpOgtDouble$entry: 249 ; IASM-NEXT: .LfcmpOgtDouble$entry:
230 ; IASM-NEXT: .byte 0x37 250 ; IASM-NEXT: .byte 0x37
231 ; IASM-NEXT: .byte 0x60 251 ; IASM-NEXT: .byte 0x60
232 ; IASM-NEXT: .byte 0x2e 252 ; IASM-NEXT: .byte 0x2e
233 ; IASM-NEXT: .byte 0x46 253 ; IASM-NEXT: .byte 0x46
234 ; IASM-NEXT: .byte 0x1 254 ; IASM-NEXT: .byte 0x1
255 ; IASM-NEXT: .byte 0x0
256 ; IASM-NEXT: .byte 0x2
257 ; IASM-NEXT: .byte 0x24
258 ; IASM-NEXT: .byte 0x1
235 ; IASM-NEXT: .byte 0x10 259 ; IASM-NEXT: .byte 0x10
236 ; IASM-NEXT: .byte 0x1 260 ; IASM-NEXT: .byte 0x1
237 ; IASM-NEXT: .byte 0x0 261 ; IASM-NEXT: .byte 0x0
238 ; IASM-NEXT: .byte 0x1 262 ; IASM-NEXT: .byte 0x1
239 ; IASM-NEXT: .byte 0x0 263 ; IASM-NEXT: .byte 0x0
240 ; IASM-NEXT: .byte 0x42 264 ; IASM-NEXT: .byte 0x42
241 ; IASM-NEXT: .byte 0x30 265 ; IASM-NEXT: .byte 0x30
242 ; IASM-NEXT: .byte 0x8 266 ; IASM-NEXT: .byte 0x8
243 ; IASM-NEXT: .byte 0x0 267 ; IASM-NEXT: .byte 0x0
244 ; IASM-NEXT: .byte 0xe0 268 ; IASM-NEXT: .byte 0xe0
245 ; IASM-NEXT: .byte 0x3 269 ; IASM-NEXT: .byte 0x3
246 270
247 define internal i32 @fcmpOgeFloat(float %a, float %b) { 271 define internal i32 @fcmpOgeFloat(float %a, float %b) {
248 entry: 272 entry:
249 %cmp = fcmp oge float %a, %b 273 %cmp = fcmp oge float %a, %b
250 %cmp.ret_ext = zext i1 %cmp to i32 274 %cmp.ret_ext = zext i1 %cmp to i32
251 ret i32 %cmp.ret_ext 275 ret i32 %cmp.ret_ext
252 } 276 }
253 277
254 ; ASM-LABEL: fcmpOgeFloat 278 ; ASM-LABEL: fcmpOgeFloat
255 ; ASM-NEXT: .LfcmpOgeFloat$entry: 279 ; ASM-NEXT: .LfcmpOgeFloat$entry:
256 ; ASM-NEXT: c.ult.s $f12, $f14 280 ; ASM-NEXT: c.ult.s $f12, $f14
281 ; ASM-NEXT: addiu $v0, $zero, 1
257 ; ASM-NEXT: movt $v0, $zero, $fcc0 282 ; ASM-NEXT: movt $v0, $zero, $fcc0
258 ; ASM-NEXT: andi $v0, $v0, 1 283 ; ASM-NEXT: andi $v0, $v0, 1
259 ; ASM-NEXT: jr $ra 284 ; ASM-NEXT: jr $ra
260 285
261 ; DIS-LABEL: 000000a0 <fcmpOgeFloat>: 286 ; DIS-LABEL: 000000a0 <fcmpOgeFloat>:
262 ; DIS-NEXT: a0: 460e6035 c.ult.s $f12,$f14 287 ; DIS-NEXT: a0: 460e6035 c.ult.s $f12,$f14
263 ; DIS-NEXT: a4:» 00011001 » movt» v0,zero,$fcc0 288 ; DIS-NEXT: a4:» 24020001 » li» v0,1
264 ; DIS-NEXT: a8:» 30420001 » andi» v0,v0,0x1 289 ; DIS-NEXT: a8:» 00011001 » movt» v0,zero,$fcc0
265 ; DIS-NEXT: ac:» 03e00008 » jr» ra 290 ; DIS-NEXT: ac:» 30420001 » andi» v0,v0,0x1
291 ; DIS-NEXT: b0:» 03e00008 » jr» ra
266 292
267 ; IASM-LABEL: fcmpOgeFloat: 293 ; IASM-LABEL: fcmpOgeFloat:
268 ; IASM-NEXT: .LfcmpOgeFloat$entry: 294 ; IASM-NEXT: .LfcmpOgeFloat$entry:
269 ; IASM-NEXT: .byte 0x35 295 ; IASM-NEXT: .byte 0x35
270 ; IASM-NEXT: .byte 0x60 296 ; IASM-NEXT: .byte 0x60
271 ; IASM-NEXT: .byte 0xe 297 ; IASM-NEXT: .byte 0xe
272 ; IASM-NEXT: .byte 0x46 298 ; IASM-NEXT: .byte 0x46
273 ; IASM-NEXT: .byte 0x1 299 ; IASM-NEXT: .byte 0x1
300 ; IASM-NEXT: .byte 0x0
301 ; IASM-NEXT: .byte 0x2
302 ; IASM-NEXT: .byte 0x24
303 ; IASM-NEXT: .byte 0x1
274 ; IASM-NEXT: .byte 0x10 304 ; IASM-NEXT: .byte 0x10
275 ; IASM-NEXT: .byte 0x1 305 ; IASM-NEXT: .byte 0x1
276 ; IASM-NEXT: .byte 0x0 306 ; IASM-NEXT: .byte 0x0
277 ; IASM-NEXT: .byte 0x1 307 ; IASM-NEXT: .byte 0x1
278 ; IASM-NEXT: .byte 0x0 308 ; IASM-NEXT: .byte 0x0
279 ; IASM-NEXT: .byte 0x42 309 ; IASM-NEXT: .byte 0x42
280 ; IASM-NEXT: .byte 0x30 310 ; IASM-NEXT: .byte 0x30
281 ; IASM-NEXT: .byte 0x8 311 ; IASM-NEXT: .byte 0x8
282 ; IASM-NEXT: .byte 0x0 312 ; IASM-NEXT: .byte 0x0
283 ; IASM-NEXT: .byte 0xe0 313 ; IASM-NEXT: .byte 0xe0
284 ; IASM-NEXT: .byte 0x3 314 ; IASM-NEXT: .byte 0x3
285 315
286 define internal i32 @fcmpOgeDouble(double %a, double %b) { 316 define internal i32 @fcmpOgeDouble(double %a, double %b) {
287 entry: 317 entry:
288 %cmp = fcmp oge double %a, %b 318 %cmp = fcmp oge double %a, %b
289 %cmp.ret_ext = zext i1 %cmp to i32 319 %cmp.ret_ext = zext i1 %cmp to i32
290 ret i32 %cmp.ret_ext 320 ret i32 %cmp.ret_ext
291 } 321 }
292 322
293 ; ASM-LABEL: fcmpOgeDouble 323 ; ASM-LABEL: fcmpOgeDouble
294 ; ASM-NEXT: .LfcmpOgeDouble$entry: 324 ; ASM-NEXT: .LfcmpOgeDouble$entry:
295 ; ASM-NEXT: c.ult.d $f12, $f14 325 ; ASM-NEXT: c.ult.d $f12, $f14
326 ; ASM-NEXT: addiu $v0, $zero, 1
296 ; ASM-NEXT: movt $v0, $zero, $fcc0 327 ; ASM-NEXT: movt $v0, $zero, $fcc0
297 ; ASM-NEXT: andi $v0, $v0, 1 328 ; ASM-NEXT: andi $v0, $v0, 1
298 ; ASM-NEXT: jr $ra 329 ; ASM-NEXT: jr $ra
299 330
300 ; DIS-LABEL: 000000c0 <fcmpOgeDouble>: 331 ; DIS-LABEL: 000000c0 <fcmpOgeDouble>:
301 ; DIS-NEXT: c0: 462e6035 c.ult.d $f12,$f14 332 ; DIS-NEXT: c0: 462e6035 c.ult.d $f12,$f14
302 ; DIS-NEXT: c4:» 00011001 » movt» v0,zero,$fcc0 333 ; DIS-NEXT: c4:» 24020001 » li» v0,1
303 ; DIS-NEXT: c8:» 30420001 » andi» v0,v0,0x1 334 ; DIS-NEXT: c8:» 00011001 » movt» v0,zero,$fcc0
304 ; DIS-NEXT: cc:» 03e00008 » jr» ra 335 ; DIS-NEXT: cc:» 30420001 » andi» v0,v0,0x1
336 ; DIS-NEXT: d0:» 03e00008 » jr» ra
305 337
306 ; IASM-LABEL: fcmpOgeDouble: 338 ; IASM-LABEL: fcmpOgeDouble:
307 ; IASM-NEXT: .LfcmpOgeDouble$entry: 339 ; IASM-NEXT: .LfcmpOgeDouble$entry:
308 ; IASM-NEXT: .byte 0x35 340 ; IASM-NEXT: .byte 0x35
309 ; IASM-NEXT: .byte 0x60 341 ; IASM-NEXT: .byte 0x60
310 ; IASM-NEXT: .byte 0x2e 342 ; IASM-NEXT: .byte 0x2e
311 ; IASM-NEXT: .byte 0x46 343 ; IASM-NEXT: .byte 0x46
312 ; IASM-NEXT: .byte 0x1 344 ; IASM-NEXT: .byte 0x1
345 ; IASM-NEXT: .byte 0x0
346 ; IASM-NEXT: .byte 0x2
347 ; IASM-NEXT: .byte 0x24
348 ; IASM-NEXT: .byte 0x1
313 ; IASM-NEXT: .byte 0x10 349 ; IASM-NEXT: .byte 0x10
314 ; IASM-NEXT: .byte 0x1 350 ; IASM-NEXT: .byte 0x1
315 ; IASM-NEXT: .byte 0x0 351 ; IASM-NEXT: .byte 0x0
316 ; IASM-NEXT: .byte 0x1 352 ; IASM-NEXT: .byte 0x1
317 ; IASM-NEXT: .byte 0x0 353 ; IASM-NEXT: .byte 0x0
318 ; IASM-NEXT: .byte 0x42 354 ; IASM-NEXT: .byte 0x42
319 ; IASM-NEXT: .byte 0x30 355 ; IASM-NEXT: .byte 0x30
320 ; IASM-NEXT: .byte 0x8 356 ; IASM-NEXT: .byte 0x8
321 ; IASM-NEXT: .byte 0x0 357 ; IASM-NEXT: .byte 0x0
322 ; IASM-NEXT: .byte 0xe0 358 ; IASM-NEXT: .byte 0xe0
323 ; IASM-NEXT: .byte 0x3 359 ; IASM-NEXT: .byte 0x3
324 360
325 define internal i32 @fcmpOltFloat(float %a, float %b) { 361 define internal i32 @fcmpOltFloat(float %a, float %b) {
326 entry: 362 entry:
327 %cmp = fcmp olt float %a, %b 363 %cmp = fcmp olt float %a, %b
328 %cmp.ret_ext = zext i1 %cmp to i32 364 %cmp.ret_ext = zext i1 %cmp to i32
329 ret i32 %cmp.ret_ext 365 ret i32 %cmp.ret_ext
330 } 366 }
331 367
332 ; ASM-LABEL: fcmpOltFloat 368 ; ASM-LABEL: fcmpOltFloat
333 ; ASM-NEXT: .LfcmpOltFloat$entry: 369 ; ASM-NEXT: .LfcmpOltFloat$entry:
334 ; ASM-NEXT: c.olt.s $f12, $f14 370 ; ASM-NEXT: c.olt.s $f12, $f14
371 ; ASM-NEXT: addiu $v0, $zero, 1
335 ; ASM-NEXT: movf $v0, $zero, $fcc0 372 ; ASM-NEXT: movf $v0, $zero, $fcc0
336 ; ASM-NEXT: andi $v0, $v0, 1 373 ; ASM-NEXT: andi $v0, $v0, 1
337 ; ASM-NEXT: jr $ra 374 ; ASM-NEXT: jr $ra
338 375
339 ; DIS-LABEL: 000000e0 <fcmpOltFloat>: 376 ; DIS-LABEL: 000000e0 <fcmpOltFloat>:
340 ; DIS-NEXT: e0: 460e6034 c.olt.s $f12,$f14 377 ; DIS-NEXT: e0: 460e6034 c.olt.s $f12,$f14
341 ; DIS-NEXT: e4:» 00001001 » movf» v0,zero,$fcc0 378 ; DIS-NEXT: e4:» 24020001 » li» v0,1
342 ; DIS-NEXT: e8:» 30420001 » andi» v0,v0,0x1 379 ; DIS-NEXT: e8:» 00001001 » movf» v0,zero,$fcc0
343 ; DIS-NEXT: ec:» 03e00008 » jr» ra 380 ; DIS-NEXT: ec:» 30420001 » andi» v0,v0,0x1
381 ; DIS-NEXT: f0:» 03e00008 » jr» ra
344 382
345 ; IASM-LABEL: fcmpOltFloat: 383 ; IASM-LABEL: fcmpOltFloat:
346 ; IASM-NEXT: .LfcmpOltFloat$entry: 384 ; IASM-NEXT: .LfcmpOltFloat$entry:
347 ; IASM-NEXT: .byte 0x34 385 ; IASM-NEXT: .byte 0x34
348 ; IASM-NEXT: .byte 0x60 386 ; IASM-NEXT: .byte 0x60
349 ; IASM-NEXT: .byte 0xe 387 ; IASM-NEXT: .byte 0xe
350 ; IASM-NEXT: .byte 0x46 388 ; IASM-NEXT: .byte 0x46
351 ; IASM-NEXT: .byte 0x1 389 ; IASM-NEXT: .byte 0x1
390 ; IASM-NEXT: .byte 0x0
391 ; IASM-NEXT: .byte 0x2
392 ; IASM-NEXT: .byte 0x24
393 ; IASM-NEXT: .byte 0x1
352 ; IASM-NEXT: .byte 0x10 394 ; IASM-NEXT: .byte 0x10
353 ; IASM-NEXT: .byte 0x0 395 ; IASM-NEXT: .byte 0x0
354 ; IASM-NEXT: .byte 0x0 396 ; IASM-NEXT: .byte 0x0
355 ; IASM-NEXT: .byte 0x1 397 ; IASM-NEXT: .byte 0x1
356 ; IASM-NEXT: .byte 0x0 398 ; IASM-NEXT: .byte 0x0
357 ; IASM-NEXT: .byte 0x42 399 ; IASM-NEXT: .byte 0x42
358 ; IASM-NEXT: .byte 0x30 400 ; IASM-NEXT: .byte 0x30
359 ; IASM-NEXT: .byte 0x8 401 ; IASM-NEXT: .byte 0x8
360 ; IASM-NEXT: .byte 0x0 402 ; IASM-NEXT: .byte 0x0
361 ; IASM-NEXT: .byte 0xe0 403 ; IASM-NEXT: .byte 0xe0
362 ; IASM-NEXT: .byte 0x3 404 ; IASM-NEXT: .byte 0x3
363 405
364 define internal i32 @fcmpOltDouble(double %a, double %b) { 406 define internal i32 @fcmpOltDouble(double %a, double %b) {
365 entry: 407 entry:
366 %cmp = fcmp olt double %a, %b 408 %cmp = fcmp olt double %a, %b
367 %cmp.ret_ext = zext i1 %cmp to i32 409 %cmp.ret_ext = zext i1 %cmp to i32
368 ret i32 %cmp.ret_ext 410 ret i32 %cmp.ret_ext
369 } 411 }
370 412
371 ; ASM-LABEL: fcmpOltDouble 413 ; ASM-LABEL: fcmpOltDouble
372 ; ASM-NEXT: .LfcmpOltDouble$entry: 414 ; ASM-NEXT: .LfcmpOltDouble$entry:
373 ; ASM-NEXT: c.olt.d $f12, $f14 415 ; ASM-NEXT: c.olt.d $f12, $f14
416 ; ASM-NEXT: addiu $v0, $zero, 1
374 ; ASM-NEXT: movf $v0, $zero, $fcc0 417 ; ASM-NEXT: movf $v0, $zero, $fcc0
375 ; ASM-NEXT: andi $v0, $v0, 1 418 ; ASM-NEXT: andi $v0, $v0, 1
376 ; ASM-NEXT: jr $ra 419 ; ASM-NEXT: jr $ra
377 420
378 ; DIS-LABEL: 00000100 <fcmpOltDouble>: 421 ; DIS-LABEL: 00000100 <fcmpOltDouble>:
379 ; DIS-NEXT: 100: 462e6034 c.olt.d $f12,$f14 422 ; DIS-NEXT: 100: 462e6034 c.olt.d $f12,$f14
380 ; DIS-NEXT: 104:» 00001001 » movf» v0,zero,$fcc0 423 ; DIS-NEXT: 104:» 24020001 » li» v0,1
381 ; DIS-NEXT: 108:» 30420001 » andi» v0,v0,0x1 424 ; DIS-NEXT: 108:» 00001001 » movf» v0,zero,$fcc0
382 ; DIS-NEXT: 10c:» 03e00008 » jr» ra 425 ; DIS-NEXT: 10c:» 30420001 » andi» v0,v0,0x1
426 ; DIS-NEXT: 110:» 03e00008 » jr» ra
383 427
384 ; IASM-LABEL: fcmpOltDouble: 428 ; IASM-LABEL: fcmpOltDouble:
385 ; IASM-NEXT: .LfcmpOltDouble$entry: 429 ; IASM-NEXT: .LfcmpOltDouble$entry:
386 ; IASM-NEXT: .byte 0x34 430 ; IASM-NEXT: .byte 0x34
387 ; IASM-NEXT: .byte 0x60 431 ; IASM-NEXT: .byte 0x60
388 ; IASM-NEXT: .byte 0x2e 432 ; IASM-NEXT: .byte 0x2e
389 ; IASM-NEXT: .byte 0x46 433 ; IASM-NEXT: .byte 0x46
390 ; IASM-NEXT: .byte 0x1 434 ; IASM-NEXT: .byte 0x1
435 ; IASM-NEXT: .byte 0x0
436 ; IASM-NEXT: .byte 0x2
437 ; IASM-NEXT: .byte 0x24
438 ; IASM-NEXT: .byte 0x1
391 ; IASM-NEXT: .byte 0x10 439 ; IASM-NEXT: .byte 0x10
392 ; IASM-NEXT: .byte 0x0 440 ; IASM-NEXT: .byte 0x0
393 ; IASM-NEXT: .byte 0x0 441 ; IASM-NEXT: .byte 0x0
394 ; IASM-NEXT: .byte 0x1 442 ; IASM-NEXT: .byte 0x1
395 ; IASM-NEXT: .byte 0x0 443 ; IASM-NEXT: .byte 0x0
396 ; IASM-NEXT: .byte 0x42 444 ; IASM-NEXT: .byte 0x42
397 ; IASM-NEXT: .byte 0x30 445 ; IASM-NEXT: .byte 0x30
398 ; IASM-NEXT: .byte 0x8 446 ; IASM-NEXT: .byte 0x8
399 ; IASM-NEXT: .byte 0x0 447 ; IASM-NEXT: .byte 0x0
400 ; IASM-NEXT: .byte 0xe0 448 ; IASM-NEXT: .byte 0xe0
401 ; IASM-NEXT: .byte 0x3 449 ; IASM-NEXT: .byte 0x3
402 450
403 define internal i32 @fcmpOleFloat(float %a, float %b) { 451 define internal i32 @fcmpOleFloat(float %a, float %b) {
404 entry: 452 entry:
405 %cmp = fcmp ole float %a, %b 453 %cmp = fcmp ole float %a, %b
406 %cmp.ret_ext = zext i1 %cmp to i32 454 %cmp.ret_ext = zext i1 %cmp to i32
407 ret i32 %cmp.ret_ext 455 ret i32 %cmp.ret_ext
408 } 456 }
409 457
410 ; ASM-LABEL: fcmpOleFloat 458 ; ASM-LABEL: fcmpOleFloat
411 ; ASM-NEXT: .LfcmpOleFloat$entry: 459 ; ASM-NEXT: .LfcmpOleFloat$entry:
412 ; ASM-NEXT: c.ole.s $f12, $f14 460 ; ASM-NEXT: c.ole.s $f12, $f14
461 ; ASM-NEXT: addiu $v0, $zero, 1
413 ; ASM-NEXT: movf $v0, $zero, $fcc0 462 ; ASM-NEXT: movf $v0, $zero, $fcc0
414 ; ASM-NEXT: andi $v0, $v0, 1 463 ; ASM-NEXT: andi $v0, $v0, 1
415 ; ASM-NEXT: jr $ra 464 ; ASM-NEXT: jr $ra
416 465
417 ; DIS-LABEL: 00000120 <fcmpOleFloat>: 466 ; DIS-LABEL: 00000120 <fcmpOleFloat>:
418 ; DIS-NEXT: 120: 460e6036 c.ole.s $f12,$f14 467 ; DIS-NEXT: 120: 460e6036 c.ole.s $f12,$f14
419 ; DIS-NEXT: 124:» 00001001 » movf» v0,zero,$fcc0 468 ; DIS-NEXT: 124:» 24020001 » li» v0,1
420 ; DIS-NEXT: 128:» 30420001 » andi» v0,v0,0x1 469 ; DIS-NEXT: 128:» 00001001 » movf» v0,zero,$fcc0
421 ; DIS-NEXT: 12c:» 03e00008 » jr» ra 470 ; DIS-NEXT: 12c:» 30420001 » andi» v0,v0,0x1
471 ; DIS-NEXT: 130:» 03e00008 » jr» ra
422 472
423 ; IASM-LABEL: fcmpOleFloat: 473 ; IASM-LABEL: fcmpOleFloat:
424 ; IASM-NEXT: .LfcmpOleFloat$entry: 474 ; IASM-NEXT: .LfcmpOleFloat$entry:
425 ; IASM-NEXT: .byte 0x36 475 ; IASM-NEXT: .byte 0x36
426 ; IASM-NEXT: .byte 0x60 476 ; IASM-NEXT: .byte 0x60
427 ; IASM-NEXT: .byte 0xe 477 ; IASM-NEXT: .byte 0xe
428 ; IASM-NEXT: .byte 0x46 478 ; IASM-NEXT: .byte 0x46
429 ; IASM-NEXT: .byte 0x1 479 ; IASM-NEXT: .byte 0x1
480 ; IASM-NEXT: .byte 0x0
481 ; IASM-NEXT: .byte 0x2
482 ; IASM-NEXT: .byte 0x24
483 ; IASM-NEXT: .byte 0x1
430 ; IASM-NEXT: .byte 0x10 484 ; IASM-NEXT: .byte 0x10
431 ; IASM-NEXT: .byte 0x0 485 ; IASM-NEXT: .byte 0x0
432 ; IASM-NEXT: .byte 0x0 486 ; IASM-NEXT: .byte 0x0
433 ; IASM-NEXT: .byte 0x1 487 ; IASM-NEXT: .byte 0x1
434 ; IASM-NEXT: .byte 0x0 488 ; IASM-NEXT: .byte 0x0
435 ; IASM-NEXT: .byte 0x42 489 ; IASM-NEXT: .byte 0x42
436 ; IASM-NEXT: .byte 0x30 490 ; IASM-NEXT: .byte 0x30
437 ; IASM-NEXT: .byte 0x8 491 ; IASM-NEXT: .byte 0x8
438 ; IASM-NEXT: .byte 0x0 492 ; IASM-NEXT: .byte 0x0
439 ; IASM-NEXT: .byte 0xe0 493 ; IASM-NEXT: .byte 0xe0
440 ; IASM-NEXT: .byte 0x3 494 ; IASM-NEXT: .byte 0x3
441 495
442 define internal i32 @fcmpOleDouble(double %a, double %b) { 496 define internal i32 @fcmpOleDouble(double %a, double %b) {
443 entry: 497 entry:
444 %cmp = fcmp ole double %a, %b 498 %cmp = fcmp ole double %a, %b
445 %cmp.ret_ext = zext i1 %cmp to i32 499 %cmp.ret_ext = zext i1 %cmp to i32
446 ret i32 %cmp.ret_ext 500 ret i32 %cmp.ret_ext
447 } 501 }
448 502
449 ; ASM-LABEL: fcmpOleDouble 503 ; ASM-LABEL: fcmpOleDouble
450 ; ASM-NEXT: .LfcmpOleDouble$entry: 504 ; ASM-NEXT: .LfcmpOleDouble$entry:
451 ; ASM-NEXT: c.ole.d $f12, $f14 505 ; ASM-NEXT: c.ole.d $f12, $f14
506 ; ASM-NEXT: addiu $v0, $zero, 1
452 ; ASM-NEXT: movf $v0, $zero, $fcc0 507 ; ASM-NEXT: movf $v0, $zero, $fcc0
453 ; ASM-NEXT: andi $v0, $v0, 1 508 ; ASM-NEXT: andi $v0, $v0, 1
454 ; ASM-NEXT: jr $ra 509 ; ASM-NEXT: jr $ra
455 510
456 ; DIS-LABEL: 00000140 <fcmpOleDouble>: 511 ; DIS-LABEL: 00000140 <fcmpOleDouble>:
457 ; DIS-NEXT: 140: 462e6036 c.ole.d $f12,$f14 512 ; DIS-NEXT: 140: 462e6036 c.ole.d $f12,$f14
458 ; DIS-NEXT: 144:» 00001001 » movf» v0,zero,$fcc0 513 ; DIS-NEXT: 144:» 24020001 » li» v0,1
459 ; DIS-NEXT: 148:» 30420001 » andi» v0,v0,0x1 514 ; DIS-NEXT: 148:» 00001001 » movf» v0,zero,$fcc0
460 ; DIS-NEXT: 14c:» 03e00008 » jr» ra 515 ; DIS-NEXT: 14c:» 30420001 » andi» v0,v0,0x1
516 ; DIS-NEXT: 150:» 03e00008 » jr» ra
461 517
462 ; IASM-LABEL: fcmpOleDouble: 518 ; IASM-LABEL: fcmpOleDouble:
463 ; IASM-NEXT: .LfcmpOleDouble$entry: 519 ; IASM-NEXT: .LfcmpOleDouble$entry:
464 ; IASM-NEXT: .byte 0x36 520 ; IASM-NEXT: .byte 0x36
465 ; IASM-NEXT: .byte 0x60 521 ; IASM-NEXT: .byte 0x60
466 ; IASM-NEXT: .byte 0x2e 522 ; IASM-NEXT: .byte 0x2e
467 ; IASM-NEXT: .byte 0x46 523 ; IASM-NEXT: .byte 0x46
468 ; IASM-NEXT: .byte 0x1 524 ; IASM-NEXT: .byte 0x1
525 ; IASM-NEXT: .byte 0x0
526 ; IASM-NEXT: .byte 0x2
527 ; IASM-NEXT: .byte 0x24
528 ; IASM-NEXT: .byte 0x1
469 ; IASM-NEXT: .byte 0x10 529 ; IASM-NEXT: .byte 0x10
470 ; IASM-NEXT: .byte 0x0 530 ; IASM-NEXT: .byte 0x0
471 ; IASM-NEXT: .byte 0x0 531 ; IASM-NEXT: .byte 0x0
472 ; IASM-NEXT: .byte 0x1 532 ; IASM-NEXT: .byte 0x1
473 ; IASM-NEXT: .byte 0x0 533 ; IASM-NEXT: .byte 0x0
474 ; IASM-NEXT: .byte 0x42 534 ; IASM-NEXT: .byte 0x42
475 ; IASM-NEXT: .byte 0x30 535 ; IASM-NEXT: .byte 0x30
476 ; IASM-NEXT: .byte 0x8 536 ; IASM-NEXT: .byte 0x8
477 ; IASM-NEXT: .byte 0x0 537 ; IASM-NEXT: .byte 0x0
478 ; IASM-NEXT: .byte 0xe0 538 ; IASM-NEXT: .byte 0xe0
479 ; IASM-NEXT: .byte 0x3 539 ; IASM-NEXT: .byte 0x3
480 540
481 define internal i32 @fcmpOneFloat(float %a, float %b) { 541 define internal i32 @fcmpOneFloat(float %a, float %b) {
482 entry: 542 entry:
483 %cmp = fcmp one float %a, %b 543 %cmp = fcmp one float %a, %b
484 %cmp.ret_ext = zext i1 %cmp to i32 544 %cmp.ret_ext = zext i1 %cmp to i32
485 ret i32 %cmp.ret_ext 545 ret i32 %cmp.ret_ext
486 } 546 }
487 547
488 ; ASM-LABEL: fcmpOneFloat 548 ; ASM-LABEL: fcmpOneFloat
489 ; ASM-NEXT: .LfcmpOneFloat$entry: 549 ; ASM-NEXT: .LfcmpOneFloat$entry:
490 ; ASM-NEXT: c.ueq.s $f12, $f14 550 ; ASM-NEXT: c.ueq.s $f12, $f14
551 ; ASM-NEXT: addiu $v0, $zero, 1
491 ; ASM-NEXT: movt $v0, $zero, $fcc0 552 ; ASM-NEXT: movt $v0, $zero, $fcc0
492 ; ASM-NEXT: andi $v0, $v0, 1 553 ; ASM-NEXT: andi $v0, $v0, 1
493 ; ASM-NEXT: jr $ra 554 ; ASM-NEXT: jr $ra
494 555
495 ; DIS-LABEL: 00000160 <fcmpOneFloat>: 556 ; DIS-LABEL: 00000160 <fcmpOneFloat>:
496 ; DIS-NEXT: 160: 460e6033 c.ueq.s $f12,$f14 557 ; DIS-NEXT: 160: 460e6033 c.ueq.s $f12,$f14
497 ; DIS-NEXT: 164:» 00011001 » movt» v0,zero,$fcc0 558 ; DIS-NEXT: 164:» 24020001 » li» v0,1
498 ; DIS-NEXT: 168:» 30420001 » andi» v0,v0,0x1 559 ; DIS-NEXT: 168:» 00011001 » movt» v0,zero,$fcc0
499 ; DIS-NEXT: 16c:» 03e00008 » jr» ra 560 ; DIS-NEXT: 16c:» 30420001 » andi» v0,v0,0x1
561 ; DIS-NEXT: 170:» 03e00008 » jr» ra
500 562
501 ; IASM-LABEL: fcmpOneFloat: 563 ; IASM-LABEL: fcmpOneFloat:
502 ; IASM-NEXT: .LfcmpOneFloat$entry: 564 ; IASM-NEXT: .LfcmpOneFloat$entry:
503 ; IASM-NEXT: .byte 0x33 565 ; IASM-NEXT: .byte 0x33
504 ; IASM-NEXT: .byte 0x60 566 ; IASM-NEXT: .byte 0x60
505 ; IASM-NEXT: .byte 0xe 567 ; IASM-NEXT: .byte 0xe
506 ; IASM-NEXT: .byte 0x46 568 ; IASM-NEXT: .byte 0x46
507 ; IASM-NEXT: .byte 0x1 569 ; IASM-NEXT: .byte 0x1
570 ; IASM-NEXT: .byte 0x0
571 ; IASM-NEXT: .byte 0x2
572 ; IASM-NEXT: .byte 0x24
573 ; IASM-NEXT: .byte 0x1
508 ; IASM-NEXT: .byte 0x10 574 ; IASM-NEXT: .byte 0x10
509 ; IASM-NEXT: .byte 0x1 575 ; IASM-NEXT: .byte 0x1
510 ; IASM-NEXT: .byte 0x0 576 ; IASM-NEXT: .byte 0x0
511 ; IASM-NEXT: .byte 0x1 577 ; IASM-NEXT: .byte 0x1
512 ; IASM-NEXT: .byte 0x0 578 ; IASM-NEXT: .byte 0x0
513 ; IASM-NEXT: .byte 0x42 579 ; IASM-NEXT: .byte 0x42
514 ; IASM-NEXT: .byte 0x30 580 ; IASM-NEXT: .byte 0x30
515 ; IASM-NEXT: .byte 0x8 581 ; IASM-NEXT: .byte 0x8
516 ; IASM-NEXT: .byte 0x0 582 ; IASM-NEXT: .byte 0x0
517 ; IASM-NEXT: .byte 0xe0 583 ; IASM-NEXT: .byte 0xe0
518 ; IASM-NEXT: .byte 0x3 584 ; IASM-NEXT: .byte 0x3
519 585
520 define internal i32 @fcmpOneDouble(double %a, double %b) { 586 define internal i32 @fcmpOneDouble(double %a, double %b) {
521 entry: 587 entry:
522 %cmp = fcmp one double %a, %b 588 %cmp = fcmp one double %a, %b
523 %cmp.ret_ext = zext i1 %cmp to i32 589 %cmp.ret_ext = zext i1 %cmp to i32
524 ret i32 %cmp.ret_ext 590 ret i32 %cmp.ret_ext
525 } 591 }
526 592
527 ; ASM-LABEL: fcmpOneDouble 593 ; ASM-LABEL: fcmpOneDouble
528 ; ASM-NEXT: .LfcmpOneDouble$entry: 594 ; ASM-NEXT: .LfcmpOneDouble$entry:
529 ; ASM-NEXT: c.ueq.d $f12, $f14 595 ; ASM-NEXT: c.ueq.d $f12, $f14
596 ; ASM-NEXT: addiu $v0, $zero, 1
530 ; ASM-NEXT: movt $v0, $zero, $fcc0 597 ; ASM-NEXT: movt $v0, $zero, $fcc0
531 ; ASM-NEXT: andi $v0, $v0, 1 598 ; ASM-NEXT: andi $v0, $v0, 1
532 ; ASM-NEXT: jr $ra 599 ; ASM-NEXT: jr $ra
533 600
534 ; DIS-LABEL: 00000180 <fcmpOneDouble>: 601 ; DIS-LABEL: 00000180 <fcmpOneDouble>:
535 ; DIS-NEXT: 180: 462e6033 c.ueq.d $f12,$f14 602 ; DIS-NEXT: 180: 462e6033 c.ueq.d $f12,$f14
536 ; DIS-NEXT: 184:» 00011001 » movt» v0,zero,$fcc0 603 ; DIS-NEXT: 184:» 24020001 » li» v0,1
537 ; DIS-NEXT: 188:» 30420001 » andi» v0,v0,0x1 604 ; DIS-NEXT: 188:» 00011001 » movt» v0,zero,$fcc0
538 ; DIS-NEXT: 18c:» 03e00008 » jr» ra 605 ; DIS-NEXT: 18c:» 30420001 » andi» v0,v0,0x1
606 ; DIS-NEXT: 190:» 03e00008 » jr» ra
539 607
540 ; IASM-LABEL: fcmpOneDouble: 608 ; IASM-LABEL: fcmpOneDouble:
541 ; IASM-NEXT: .LfcmpOneDouble$entry: 609 ; IASM-NEXT: .LfcmpOneDouble$entry:
542 ; IASM-NEXT: .byte 0x33 610 ; IASM-NEXT: .byte 0x33
543 ; IASM-NEXT: .byte 0x60 611 ; IASM-NEXT: .byte 0x60
544 ; IASM-NEXT: .byte 0x2e 612 ; IASM-NEXT: .byte 0x2e
545 ; IASM-NEXT: .byte 0x46 613 ; IASM-NEXT: .byte 0x46
546 ; IASM-NEXT: .byte 0x1 614 ; IASM-NEXT: .byte 0x1
615 ; IASM-NEXT: .byte 0x0
616 ; IASM-NEXT: .byte 0x2
617 ; IASM-NEXT: .byte 0x24
618 ; IASM-NEXT: .byte 0x1
547 ; IASM-NEXT: .byte 0x10 619 ; IASM-NEXT: .byte 0x10
548 ; IASM-NEXT: .byte 0x1 620 ; IASM-NEXT: .byte 0x1
549 ; IASM-NEXT: .byte 0x0 621 ; IASM-NEXT: .byte 0x0
550 ; IASM-NEXT: .byte 0x1 622 ; IASM-NEXT: .byte 0x1
551 ; IASM-NEXT: .byte 0x0 623 ; IASM-NEXT: .byte 0x0
552 ; IASM-NEXT: .byte 0x42 624 ; IASM-NEXT: .byte 0x42
553 ; IASM-NEXT: .byte 0x30 625 ; IASM-NEXT: .byte 0x30
554 ; IASM-NEXT: .byte 0x8 626 ; IASM-NEXT: .byte 0x8
555 ; IASM-NEXT: .byte 0x0 627 ; IASM-NEXT: .byte 0x0
556 ; IASM-NEXT: .byte 0xe0 628 ; IASM-NEXT: .byte 0xe0
557 ; IASM-NEXT: .byte 0x3 629 ; IASM-NEXT: .byte 0x3
558 630
559 define internal i32 @fcmpOrdFloat(float %a, float %b) { 631 define internal i32 @fcmpOrdFloat(float %a, float %b) {
560 entry: 632 entry:
561 %cmp = fcmp ord float %a, %b 633 %cmp = fcmp ord float %a, %b
562 %cmp.ret_ext = zext i1 %cmp to i32 634 %cmp.ret_ext = zext i1 %cmp to i32
563 ret i32 %cmp.ret_ext 635 ret i32 %cmp.ret_ext
564 } 636 }
565 637
566 ; ASM-LABEL: fcmpOrdFloat: 638 ; ASM-LABEL: fcmpOrdFloat:
567 ; ASM-NEXT: .LfcmpOrdFloat$entry: 639 ; ASM-NEXT: .LfcmpOrdFloat$entry:
568 ; ASM-NEXT: c.un.s $f12, $f14 640 ; ASM-NEXT: c.un.s $f12, $f14
641 ; ASM-NEXT: addiu $v0, $zero, 1
569 ; ASM-NEXT: movt $v0, $zero, $fcc0 642 ; ASM-NEXT: movt $v0, $zero, $fcc0
570 ; ASM-NEXT: andi $v0, $v0, 1 643 ; ASM-NEXT: andi $v0, $v0, 1
571 ; ASM-NEXT: jr $ra 644 ; ASM-NEXT: jr $ra
572 645
573 ; DIS-LABEL: 000001a0 <fcmpOrdFloat>: 646 ; DIS-LABEL: 000001a0 <fcmpOrdFloat>:
574 ; DIS-NEXT: 1a0: 460e6031 c.un.s $f12,$f14 647 ; DIS-NEXT: 1a0: 460e6031 c.un.s $f12,$f14
575 ; DIS-NEXT: 1a4:» 00011001 » movt» v0,zero,$fcc0 648 ; DIS-NEXT: 1a4:» 24020001 » li» v0,1
576 ; DIS-NEXT: 1a8:» 30420001 » andi» v0,v0,0x1 649 ; DIS-NEXT: 1a8:» 00011001 » movt» v0,zero,$fcc0
577 ; DIS-NEXT: 1ac:» 03e00008 » jr» ra 650 ; DIS-NEXT: 1ac:» 30420001 » andi» v0,v0,0x1
651 ; DIS-NEXT: 1b0:» 03e00008 » jr» ra
578 652
579 ; IASM-LABEL: fcmpOrdFloat: 653 ; IASM-LABEL: fcmpOrdFloat:
580 ; IASM-NEXT: .LfcmpOrdFloat$entry: 654 ; IASM-NEXT: .LfcmpOrdFloat$entry:
581 ; IASM-NEXT: .byte 0x31 655 ; IASM-NEXT: .byte 0x31
582 ; IASM-NEXT: .byte 0x60 656 ; IASM-NEXT: .byte 0x60
583 ; IASM-NEXT: .byte 0xe 657 ; IASM-NEXT: .byte 0xe
584 ; IASM-NEXT: .byte 0x46 658 ; IASM-NEXT: .byte 0x46
585 ; IASM-NEXT: .byte 0x1 659 ; IASM-NEXT: .byte 0x1
660 ; IASM-NEXT: .byte 0x0
661 ; IASM-NEXT: .byte 0x2
662 ; IASM-NEXT: .byte 0x24
663 ; IASM-NEXT: .byte 0x1
586 ; IASM-NEXT: .byte 0x10 664 ; IASM-NEXT: .byte 0x10
587 ; IASM-NEXT: .byte 0x1 665 ; IASM-NEXT: .byte 0x1
588 ; IASM-NEXT: .byte 0x0 666 ; IASM-NEXT: .byte 0x0
589 ; IASM-NEXT: .byte 0x1 667 ; IASM-NEXT: .byte 0x1
590 ; IASM-NEXT: .byte 0x0 668 ; IASM-NEXT: .byte 0x0
591 ; IASM-NEXT: .byte 0x42 669 ; IASM-NEXT: .byte 0x42
592 ; IASM-NEXT: .byte 0x30 670 ; IASM-NEXT: .byte 0x30
593 ; IASM-NEXT: .byte 0x8 671 ; IASM-NEXT: .byte 0x8
594 ; IASM-NEXT: .byte 0x0 672 ; IASM-NEXT: .byte 0x0
595 ; IASM-NEXT: .byte 0xe0 673 ; IASM-NEXT: .byte 0xe0
596 ; IASM-NEXT: .byte 0x3 674 ; IASM-NEXT: .byte 0x3
597 675
598 define internal i32 @fcmpOrdDouble(double %a, double %b) { 676 define internal i32 @fcmpOrdDouble(double %a, double %b) {
599 entry: 677 entry:
600 %cmp = fcmp ord double %a, %b 678 %cmp = fcmp ord double %a, %b
601 %cmp.ret_ext = zext i1 %cmp to i32 679 %cmp.ret_ext = zext i1 %cmp to i32
602 ret i32 %cmp.ret_ext 680 ret i32 %cmp.ret_ext
603 } 681 }
604 682
605 ; ASM-LABEL: fcmpOrdDouble: 683 ; ASM-LABEL: fcmpOrdDouble:
606 ; ASM-NEXT: .LfcmpOrdDouble$entry: 684 ; ASM-NEXT: .LfcmpOrdDouble$entry:
607 ; ASM-NEXT: c.un.d $f12, $f14 685 ; ASM-NEXT: c.un.d $f12, $f14
686 ; ASM-NEXT: addiu $v0, $zero, 1
608 ; ASM-NEXT: movt $v0, $zero, $fcc0 687 ; ASM-NEXT: movt $v0, $zero, $fcc0
609 ; ASM-NEXT: andi $v0, $v0, 1 688 ; ASM-NEXT: andi $v0, $v0, 1
610 ; ASM-NEXT: jr $ra 689 ; ASM-NEXT: jr $ra
611 690
612 ; DIS-LABEL: 000001c0 <fcmpOrdDouble>: 691 ; DIS-LABEL: 000001c0 <fcmpOrdDouble>:
613 ; DIS-NEXT: 1c0: 462e6031 c.un.d $f12,$f14 692 ; DIS-NEXT: 1c0: 462e6031 c.un.d $f12,$f14
614 ; DIS-NEXT: 1c4:» 00011001 » movt» v0,zero,$fcc0 693 ; DIS-NEXT: 1c4:» 24020001 » li» v0,1
615 ; DIS-NEXT: 1c8:» 30420001 » andi» v0,v0,0x1 694 ; DIS-NEXT: 1c8:» 00011001 » movt» v0,zero,$fcc0
616 ; DIS-NEXT: 1cc:» 03e00008 » jr» ra 695 ; DIS-NEXT: 1cc:» 30420001 » andi» v0,v0,0x1
696 ; DIS-NEXT: 1d0:» 03e00008 » jr» ra
617 697
618 ; IASM-LABEL: fcmpOrdDouble: 698 ; IASM-LABEL: fcmpOrdDouble:
619 ; IASM-NEXT: .LfcmpOrdDouble$entry: 699 ; IASM-NEXT: .LfcmpOrdDouble$entry:
620 ; IASM-NEXT: .byte 0x31 700 ; IASM-NEXT: .byte 0x31
621 ; IASM-NEXT: .byte 0x60 701 ; IASM-NEXT: .byte 0x60
622 ; IASM-NEXT: .byte 0x2e 702 ; IASM-NEXT: .byte 0x2e
623 ; IASM-NEXT: .byte 0x46 703 ; IASM-NEXT: .byte 0x46
624 ; IASM-NEXT: .byte 0x1 704 ; IASM-NEXT: .byte 0x1
705 ; IASM-NEXT: .byte 0x0
706 ; IASM-NEXT: .byte 0x2
707 ; IASM-NEXT: .byte 0x24
708 ; IASM-NEXT: .byte 0x1
625 ; IASM-NEXT: .byte 0x10 709 ; IASM-NEXT: .byte 0x10
626 ; IASM-NEXT: .byte 0x1 710 ; IASM-NEXT: .byte 0x1
627 ; IASM-NEXT: .byte 0x0 711 ; IASM-NEXT: .byte 0x0
628 ; IASM-NEXT: .byte 0x1 712 ; IASM-NEXT: .byte 0x1
629 ; IASM-NEXT: .byte 0x0 713 ; IASM-NEXT: .byte 0x0
630 ; IASM-NEXT: .byte 0x42 714 ; IASM-NEXT: .byte 0x42
631 ; IASM-NEXT: .byte 0x30 715 ; IASM-NEXT: .byte 0x30
632 ; IASM-NEXT: .byte 0x8 716 ; IASM-NEXT: .byte 0x8
633 ; IASM-NEXT: .byte 0x0 717 ; IASM-NEXT: .byte 0x0
634 ; IASM-NEXT: .byte 0xe0 718 ; IASM-NEXT: .byte 0xe0
635 ; IASM-NEXT: .byte 0x3 719 ; IASM-NEXT: .byte 0x3
636 720
637 define internal i32 @fcmpUeqFloat(float %a, float %b) { 721 define internal i32 @fcmpUeqFloat(float %a, float %b) {
638 entry: 722 entry:
639 %cmp = fcmp ueq float %a, %b 723 %cmp = fcmp ueq float %a, %b
640 %cmp.ret_ext = zext i1 %cmp to i32 724 %cmp.ret_ext = zext i1 %cmp to i32
641 ret i32 %cmp.ret_ext 725 ret i32 %cmp.ret_ext
642 } 726 }
643 727
644 ; ASM-LABEL: fcmpUeqFloat 728 ; ASM-LABEL: fcmpUeqFloat
645 ; ASM-NEXT: .LfcmpUeqFloat$entry: 729 ; ASM-NEXT: .LfcmpUeqFloat$entry:
646 ; ASM-NEXT: c.ueq.s $f12, $f14 730 ; ASM-NEXT: c.ueq.s $f12, $f14
731 ; ASM-NEXT: addiu $v0, $zero, 1
647 ; ASM-NEXT: movf $v0, $zero, $fcc0 732 ; ASM-NEXT: movf $v0, $zero, $fcc0
648 ; ASM-NEXT: andi $v0, $v0, 1 733 ; ASM-NEXT: andi $v0, $v0, 1
649 ; ASM-NEXT: jr $ra 734 ; ASM-NEXT: jr $ra
650 735
651 ; DIS-LABEL: 000001e0 <fcmpUeqFloat>: 736 ; DIS-LABEL: 000001e0 <fcmpUeqFloat>:
652 ; DIS-NEXT: 1e0: 460e6033 c.ueq.s $f12,$f14 737 ; DIS-NEXT: 1e0: 460e6033 c.ueq.s $f12,$f14
653 ; DIS-NEXT: 1e4:» 00001001 » movf» v0,zero,$fcc0 738 ; DIS-NEXT: 1e4:» 24020001 » li» v0,1
654 ; DIS-NEXT: 1e8:» 30420001 » andi» v0,v0,0x1 739 ; DIS-NEXT: 1e8:» 00001001 » movf» v0,zero,$fcc0
655 ; DIS-NEXT: 1ec:» 03e00008 » jr» ra 740 ; DIS-NEXT: 1ec:» 30420001 » andi» v0,v0,0x1
741 ; DIS-NEXT: 1f0:» 03e00008 » jr» ra
656 742
657 ; IASM-LABEL: fcmpUeqFloat: 743 ; IASM-LABEL: fcmpUeqFloat:
658 ; IASM-NEXT: .LfcmpUeqFloat$entry: 744 ; IASM-NEXT: .LfcmpUeqFloat$entry:
659 ; IASM-NEXT: .byte 0x33 745 ; IASM-NEXT: .byte 0x33
660 ; IASM-NEXT: .byte 0x60 746 ; IASM-NEXT: .byte 0x60
661 ; IASM-NEXT: .byte 0xe 747 ; IASM-NEXT: .byte 0xe
662 ; IASM-NEXT: .byte 0x46 748 ; IASM-NEXT: .byte 0x46
663 ; IASM-NEXT: .byte 0x1 749 ; IASM-NEXT: .byte 0x1
750 ; IASM-NEXT: .byte 0x0
751 ; IASM-NEXT: .byte 0x2
752 ; IASM-NEXT: .byte 0x24
753 ; IASM-NEXT: .byte 0x1
664 ; IASM-NEXT: .byte 0x10 754 ; IASM-NEXT: .byte 0x10
665 ; IASM-NEXT: .byte 0x0 755 ; IASM-NEXT: .byte 0x0
666 ; IASM-NEXT: .byte 0x0 756 ; IASM-NEXT: .byte 0x0
667 ; IASM-NEXT: .byte 0x1 757 ; IASM-NEXT: .byte 0x1
668 ; IASM-NEXT: .byte 0x0 758 ; IASM-NEXT: .byte 0x0
669 ; IASM-NEXT: .byte 0x42 759 ; IASM-NEXT: .byte 0x42
670 ; IASM-NEXT: .byte 0x30 760 ; IASM-NEXT: .byte 0x30
671 ; IASM-NEXT: .byte 0x8 761 ; IASM-NEXT: .byte 0x8
672 ; IASM-NEXT: .byte 0x0 762 ; IASM-NEXT: .byte 0x0
673 ; IASM-NEXT: .byte 0xe0 763 ; IASM-NEXT: .byte 0xe0
674 ; IASM-NEXT: .byte 0x3 764 ; IASM-NEXT: .byte 0x3
675 765
676 define internal i32 @fcmpUeqDouble(double %a, double %b) { 766 define internal i32 @fcmpUeqDouble(double %a, double %b) {
677 entry: 767 entry:
678 %cmp = fcmp ueq double %a, %b 768 %cmp = fcmp ueq double %a, %b
679 %cmp.ret_ext = zext i1 %cmp to i32 769 %cmp.ret_ext = zext i1 %cmp to i32
680 ret i32 %cmp.ret_ext 770 ret i32 %cmp.ret_ext
681 } 771 }
682 772
683 ; ASM-LABEL: fcmpUeqDouble 773 ; ASM-LABEL: fcmpUeqDouble
684 ; ASM-NEXT: .LfcmpUeqDouble$entry: 774 ; ASM-NEXT: .LfcmpUeqDouble$entry:
685 ; ASM-NEXT: c.ueq.d $f12, $f14 775 ; ASM-NEXT: c.ueq.d $f12, $f14
776 ; ASM-NEXT: addiu $v0, $zero, 1
686 ; ASM-NEXT: movf $v0, $zero, $fcc0 777 ; ASM-NEXT: movf $v0, $zero, $fcc0
687 ; ASM-NEXT: andi $v0, $v0, 1 778 ; ASM-NEXT: andi $v0, $v0, 1
688 ; ASM-NEXT: jr $ra 779 ; ASM-NEXT: jr $ra
689 780
690 ; DIS-LABEL: 00000200 <fcmpUeqDouble>: 781 ; DIS-LABEL: 00000200 <fcmpUeqDouble>:
691 ; DIS-NEXT: 200: 462e6033 c.ueq.d $f12,$f14 782 ; DIS-NEXT: 200: 462e6033 c.ueq.d $f12,$f14
692 ; DIS-NEXT: 204:» 00001001 » movf» v0,zero,$fcc0 783 ; DIS-NEXT: 204:» 24020001 » li» v0,1
693 ; DIS-NEXT: 208:» 30420001 » andi» v0,v0,0x1 784 ; DIS-NEXT: 208:» 00001001 » movf» v0,zero,$fcc0
694 ; DIS-NEXT: 20c:» 03e00008 » jr» ra 785 ; DIS-NEXT: 20c:» 30420001 » andi» v0,v0,0x1
786 ; DIS-NEXT: 210:» 03e00008 » jr» ra
695 787
696 ; IASM-LABEL: fcmpUeqDouble: 788 ; IASM-LABEL: fcmpUeqDouble:
697 ; IASM-NEXT: .LfcmpUeqDouble$entry: 789 ; IASM-NEXT: .LfcmpUeqDouble$entry:
698 ; IASM-NEXT: .byte 0x33 790 ; IASM-NEXT: .byte 0x33
699 ; IASM-NEXT: .byte 0x60 791 ; IASM-NEXT: .byte 0x60
700 ; IASM-NEXT: .byte 0x2e 792 ; IASM-NEXT: .byte 0x2e
701 ; IASM-NEXT: .byte 0x46 793 ; IASM-NEXT: .byte 0x46
702 ; IASM-NEXT: .byte 0x1 794 ; IASM-NEXT: .byte 0x1
795 ; IASM-NEXT: .byte 0x0
796 ; IASM-NEXT: .byte 0x2
797 ; IASM-NEXT: .byte 0x24
798 ; IASM-NEXT: .byte 0x1
703 ; IASM-NEXT: .byte 0x10 799 ; IASM-NEXT: .byte 0x10
704 ; IASM-NEXT: .byte 0x0 800 ; IASM-NEXT: .byte 0x0
705 ; IASM-NEXT: .byte 0x0 801 ; IASM-NEXT: .byte 0x0
706 ; IASM-NEXT: .byte 0x1 802 ; IASM-NEXT: .byte 0x1
707 ; IASM-NEXT: .byte 0x0 803 ; IASM-NEXT: .byte 0x0
708 ; IASM-NEXT: .byte 0x42 804 ; IASM-NEXT: .byte 0x42
709 ; IASM-NEXT: .byte 0x30 805 ; IASM-NEXT: .byte 0x30
710 ; IASM-NEXT: .byte 0x8 806 ; IASM-NEXT: .byte 0x8
711 ; IASM-NEXT: .byte 0x0 807 ; IASM-NEXT: .byte 0x0
712 ; IASM-NEXT: .byte 0xe0 808 ; IASM-NEXT: .byte 0xe0
713 ; IASM-NEXT: .byte 0x3 809 ; IASM-NEXT: .byte 0x3
714 810
715 define internal i32 @fcmpUgtFloat(float %a, float %b) { 811 define internal i32 @fcmpUgtFloat(float %a, float %b) {
716 entry: 812 entry:
717 %cmp = fcmp ugt float %a, %b 813 %cmp = fcmp ugt float %a, %b
718 %cmp.ret_ext = zext i1 %cmp to i32 814 %cmp.ret_ext = zext i1 %cmp to i32
719 ret i32 %cmp.ret_ext 815 ret i32 %cmp.ret_ext
720 } 816 }
721 817
722 ; ASM-LABEL: fcmpUgtFloat 818 ; ASM-LABEL: fcmpUgtFloat
723 ; ASM-NEXT: .LfcmpUgtFloat$entry: 819 ; ASM-NEXT: .LfcmpUgtFloat$entry:
724 ; ASM-NEXT: c.ole.s $f12, $f14 820 ; ASM-NEXT: c.ole.s $f12, $f14
821 ; ASM-NEXT: addiu $v0, $zero, 1
725 ; ASM-NEXT: movt $v0, $zero, $fcc0 822 ; ASM-NEXT: movt $v0, $zero, $fcc0
726 ; ASM-NEXT: andi $v0, $v0, 1 823 ; ASM-NEXT: andi $v0, $v0, 1
727 ; ASM-NEXT: jr $ra 824 ; ASM-NEXT: jr $ra
728 825
729 ; DIS-LABEL: 00000220 <fcmpUgtFloat>: 826 ; DIS-LABEL: 00000220 <fcmpUgtFloat>:
730 ; DIS-NEXT: 220: 460e6036 c.ole.s $f12,$f14 827 ; DIS-NEXT: 220: 460e6036 c.ole.s $f12,$f14
731 ; DIS-NEXT: 224:» 00011001 » movt» v0,zero,$fcc0 828 ; DIS-NEXT: 224:» 24020001 » li» v0,1
732 ; DIS-NEXT: 228:» 30420001 » andi» v0,v0,0x1 829 ; DIS-NEXT: 228:» 00011001 » movt» v0,zero,$fcc0
733 ; DIS-NEXT: 22c:» 03e00008 » jr» ra 830 ; DIS-NEXT: 22c:» 30420001 » andi» v0,v0,0x1
831 ; DIS-NEXT: 230:» 03e00008 » jr» ra
734 832
735 ; IASM-LABEL: fcmpUgtFloat: 833 ; IASM-LABEL: fcmpUgtFloat:
736 ; IASM-NEXT: .LfcmpUgtFloat$entry: 834 ; IASM-NEXT: .LfcmpUgtFloat$entry:
737 ; IASM-NEXT: .byte 0x36 835 ; IASM-NEXT: .byte 0x36
738 ; IASM-NEXT: .byte 0x60 836 ; IASM-NEXT: .byte 0x60
739 ; IASM-NEXT: .byte 0xe 837 ; IASM-NEXT: .byte 0xe
740 ; IASM-NEXT: .byte 0x46 838 ; IASM-NEXT: .byte 0x46
741 ; IASM-NEXT: .byte 0x1 839 ; IASM-NEXT: .byte 0x1
840 ; IASM-NEXT: .byte 0x0
841 ; IASM-NEXT: .byte 0x2
842 ; IASM-NEXT: .byte 0x24
843 ; IASM-NEXT: .byte 0x1
742 ; IASM-NEXT: .byte 0x10 844 ; IASM-NEXT: .byte 0x10
743 ; IASM-NEXT: .byte 0x1 845 ; IASM-NEXT: .byte 0x1
744 ; IASM-NEXT: .byte 0x0 846 ; IASM-NEXT: .byte 0x0
745 ; IASM-NEXT: .byte 0x1 847 ; IASM-NEXT: .byte 0x1
746 ; IASM-NEXT: .byte 0x0 848 ; IASM-NEXT: .byte 0x0
747 ; IASM-NEXT: .byte 0x42 849 ; IASM-NEXT: .byte 0x42
748 ; IASM-NEXT: .byte 0x30 850 ; IASM-NEXT: .byte 0x30
749 ; IASM-NEXT: .byte 0x8 851 ; IASM-NEXT: .byte 0x8
750 ; IASM-NEXT: .byte 0x0 852 ; IASM-NEXT: .byte 0x0
751 ; IASM-NEXT: .byte 0xe0 853 ; IASM-NEXT: .byte 0xe0
752 ; IASM-NEXT: .byte 0x3 854 ; IASM-NEXT: .byte 0x3
753 855
754 define internal i32 @fcmpUgtDouble(double %a, double %b) { 856 define internal i32 @fcmpUgtDouble(double %a, double %b) {
755 entry: 857 entry:
756 %cmp = fcmp ugt double %a, %b 858 %cmp = fcmp ugt double %a, %b
757 %cmp.ret_ext = zext i1 %cmp to i32 859 %cmp.ret_ext = zext i1 %cmp to i32
758 ret i32 %cmp.ret_ext 860 ret i32 %cmp.ret_ext
759 } 861 }
760 862
761 ; ASM-LABEL: fcmpUgtDouble 863 ; ASM-LABEL: fcmpUgtDouble
762 ; ASM-NEXT: .LfcmpUgtDouble$entry: 864 ; ASM-NEXT: .LfcmpUgtDouble$entry:
763 ; ASM-NEXT: c.ole.d $f12, $f14 865 ; ASM-NEXT: c.ole.d $f12, $f14
866 ; ASM-NEXT: addiu $v0, $zero, 1
764 ; ASM-NEXT: movt $v0, $zero, $fcc0 867 ; ASM-NEXT: movt $v0, $zero, $fcc0
765 ; ASM-NEXT: andi $v0, $v0, 1 868 ; ASM-NEXT: andi $v0, $v0, 1
766 ; ASM-NEXT: jr $ra 869 ; ASM-NEXT: jr $ra
767 870
768 ; DIS-LABEL: 00000240 <fcmpUgtDouble>: 871 ; DIS-LABEL: 00000240 <fcmpUgtDouble>:
769 ; DIS-NEXT: 240: 462e6036 c.ole.d $f12,$f14 872 ; DIS-NEXT: 240: 462e6036 c.ole.d $f12,$f14
770 ; DIS-NEXT: 244:» 00011001 » movt» v0,zero,$fcc0 873 ; DIS-NEXT: 244:» 24020001 » li» v0,1
771 ; DIS-NEXT: 248:» 30420001 » andi» v0,v0,0x1 874 ; DIS-NEXT: 248:» 00011001 » movt» v0,zero,$fcc0
772 ; DIS-NEXT: 24c:» 03e00008 » jr» ra 875 ; DIS-NEXT: 24c:» 30420001 » andi» v0,v0,0x1
876 ; DIS-NEXT: 250:» 03e00008 » jr» ra
773 877
774 ; IASM-LABEL: fcmpUgtDouble: 878 ; IASM-LABEL: fcmpUgtDouble:
775 ; IASM-NEXT: .LfcmpUgtDouble$entry: 879 ; IASM-NEXT: .LfcmpUgtDouble$entry:
776 ; IASM-NEXT: .byte 0x36 880 ; IASM-NEXT: .byte 0x36
777 ; IASM-NEXT: .byte 0x60 881 ; IASM-NEXT: .byte 0x60
778 ; IASM-NEXT: .byte 0x2e 882 ; IASM-NEXT: .byte 0x2e
779 ; IASM-NEXT: .byte 0x46 883 ; IASM-NEXT: .byte 0x46
780 ; IASM-NEXT: .byte 0x1 884 ; IASM-NEXT: .byte 0x1
885 ; IASM-NEXT: .byte 0x0
886 ; IASM-NEXT: .byte 0x2
887 ; IASM-NEXT: .byte 0x24
888 ; IASM-NEXT: .byte 0x1
781 ; IASM-NEXT: .byte 0x10 889 ; IASM-NEXT: .byte 0x10
782 ; IASM-NEXT: .byte 0x1 890 ; IASM-NEXT: .byte 0x1
783 ; IASM-NEXT: .byte 0x0 891 ; IASM-NEXT: .byte 0x0
784 ; IASM-NEXT: .byte 0x1 892 ; IASM-NEXT: .byte 0x1
785 ; IASM-NEXT: .byte 0x0 893 ; IASM-NEXT: .byte 0x0
786 ; IASM-NEXT: .byte 0x42 894 ; IASM-NEXT: .byte 0x42
787 ; IASM-NEXT: .byte 0x30 895 ; IASM-NEXT: .byte 0x30
788 ; IASM-NEXT: .byte 0x8 896 ; IASM-NEXT: .byte 0x8
789 ; IASM-NEXT: .byte 0x0 897 ; IASM-NEXT: .byte 0x0
790 ; IASM-NEXT: .byte 0xe0 898 ; IASM-NEXT: .byte 0xe0
791 ; IASM-NEXT: .byte 0x3 899 ; IASM-NEXT: .byte 0x3
792 900
793 define internal i32 @fcmpUgeFloat(float %a, float %b) { 901 define internal i32 @fcmpUgeFloat(float %a, float %b) {
794 entry: 902 entry:
795 %cmp = fcmp uge float %a, %b 903 %cmp = fcmp uge float %a, %b
796 %cmp.ret_ext = zext i1 %cmp to i32 904 %cmp.ret_ext = zext i1 %cmp to i32
797 ret i32 %cmp.ret_ext 905 ret i32 %cmp.ret_ext
798 } 906 }
799 907
800 ; ASM-LABEL: fcmpUgeFloat 908 ; ASM-LABEL: fcmpUgeFloat
801 ; ASM-NEXT: .LfcmpUgeFloat$entry: 909 ; ASM-NEXT: .LfcmpUgeFloat$entry:
802 ; ASM-NEXT: c.olt.s $f12, $f14 910 ; ASM-NEXT: c.olt.s $f12, $f14
911 ; ASM-NEXT: addiu $v0, $zero, 1
803 ; ASM-NEXT: movt $v0, $zero, $fcc0 912 ; ASM-NEXT: movt $v0, $zero, $fcc0
804 ; ASM-NEXT: andi $v0, $v0, 1 913 ; ASM-NEXT: andi $v0, $v0, 1
805 ; ASM-NEXT: jr $ra 914 ; ASM-NEXT: jr $ra
806 915
807 ; DIS-LABEL: 00000260 <fcmpUgeFloat>: 916 ; DIS-LABEL: 00000260 <fcmpUgeFloat>:
808 ; DIS-NEXT: 260: 460e6034 c.olt.s $f12,$f14 917 ; DIS-NEXT: 260: 460e6034 c.olt.s $f12,$f14
809 ; DIS-NEXT: 264:» 00011001 » movt» v0,zero,$fcc0 918 ; DIS-NEXT: 264:» 24020001 » li» v0,1
810 ; DIS-NEXT: 268:» 30420001 » andi» v0,v0,0x1 919 ; DIS-NEXT: 268:» 00011001 » movt» v0,zero,$fcc0
811 ; DIS-NEXT: 26c:» 03e00008 » jr» ra 920 ; DIS-NEXT: 26c:» 30420001 » andi» v0,v0,0x1
921 ; DIS-NEXT: 270:» 03e00008 » jr» ra
812 922
813 ; IASM-LABEL: fcmpUgeFloat: 923 ; IASM-LABEL: fcmpUgeFloat:
814 ; IASM-NEXT: .LfcmpUgeFloat$entry: 924 ; IASM-NEXT: .LfcmpUgeFloat$entry:
815 ; IASM-NEXT: .byte 0x34 925 ; IASM-NEXT: .byte 0x34
816 ; IASM-NEXT: .byte 0x60 926 ; IASM-NEXT: .byte 0x60
817 ; IASM-NEXT: .byte 0xe 927 ; IASM-NEXT: .byte 0xe
818 ; IASM-NEXT: .byte 0x46 928 ; IASM-NEXT: .byte 0x46
819 ; IASM-NEXT: .byte 0x1 929 ; IASM-NEXT: .byte 0x1
930 ; IASM-NEXT: .byte 0x0
931 ; IASM-NEXT: .byte 0x2
932 ; IASM-NEXT: .byte 0x24
933 ; IASM-NEXT: .byte 0x1
820 ; IASM-NEXT: .byte 0x10 934 ; IASM-NEXT: .byte 0x10
821 ; IASM-NEXT: .byte 0x1 935 ; IASM-NEXT: .byte 0x1
822 ; IASM-NEXT: .byte 0x0 936 ; IASM-NEXT: .byte 0x0
823 ; IASM-NEXT: .byte 0x1 937 ; IASM-NEXT: .byte 0x1
824 ; IASM-NEXT: .byte 0x0 938 ; IASM-NEXT: .byte 0x0
825 ; IASM-NEXT: .byte 0x42 939 ; IASM-NEXT: .byte 0x42
826 ; IASM-NEXT: .byte 0x30 940 ; IASM-NEXT: .byte 0x30
827 ; IASM-NEXT: .byte 0x8 941 ; IASM-NEXT: .byte 0x8
828 ; IASM-NEXT: .byte 0x0 942 ; IASM-NEXT: .byte 0x0
829 ; IASM-NEXT: .byte 0xe0 943 ; IASM-NEXT: .byte 0xe0
830 ; IASM-NEXT: .byte 0x3 944 ; IASM-NEXT: .byte 0x3
831 945
832 define internal i32 @fcmpUgeDouble(double %a, double %b) { 946 define internal i32 @fcmpUgeDouble(double %a, double %b) {
833 entry: 947 entry:
834 %cmp = fcmp uge double %a, %b 948 %cmp = fcmp uge double %a, %b
835 %cmp.ret_ext = zext i1 %cmp to i32 949 %cmp.ret_ext = zext i1 %cmp to i32
836 ret i32 %cmp.ret_ext 950 ret i32 %cmp.ret_ext
837 } 951 }
838 952
839 ; ASM-LABEL: fcmpUgeDouble 953 ; ASM-LABEL: fcmpUgeDouble
840 ; ASM-NEXT: .LfcmpUgeDouble$entry: 954 ; ASM-NEXT: .LfcmpUgeDouble$entry:
841 ; ASM-NEXT: c.olt.d $f12, $f14 955 ; ASM-NEXT: c.olt.d $f12, $f14
956 ; ASM-NEXT: addiu $v0, $zero, 1
842 ; ASM-NEXT: movt $v0, $zero, $fcc0 957 ; ASM-NEXT: movt $v0, $zero, $fcc0
843 ; ASM-NEXT: andi $v0, $v0, 1 958 ; ASM-NEXT: andi $v0, $v0, 1
844 ; ASM-NEXT: jr $ra 959 ; ASM-NEXT: jr $ra
845 960
846 ; DIS-LABEL: 00000280 <fcmpUgeDouble>: 961 ; DIS-LABEL: 00000280 <fcmpUgeDouble>:
847 ; DIS-NEXT: 280: 462e6034 c.olt.d $f12,$f14 962 ; DIS-NEXT: 280: 462e6034 c.olt.d $f12,$f14
848 ; DIS-NEXT: 284:» 00011001 » movt» v0,zero,$fcc0 963 ; DIS-NEXT: 284:» 24020001 » li» v0,1
849 ; DIS-NEXT: 288:» 30420001 » andi» v0,v0,0x1 964 ; DIS-NEXT: 288:» 00011001 » movt» v0,zero,$fcc0
850 ; DIS-NEXT: 28c:» 03e00008 » jr» ra 965 ; DIS-NEXT: 28c:» 30420001 » andi» v0,v0,0x1
966 ; DIS-NEXT: 290:» 03e00008 » jr» ra
851 967
852 ; IASM-LABEL: fcmpUgeDouble: 968 ; IASM-LABEL: fcmpUgeDouble:
853 ; IASM-NEXT: .LfcmpUgeDouble$entry: 969 ; IASM-NEXT: .LfcmpUgeDouble$entry:
854 ; IASM-NEXT: .byte 0x34 970 ; IASM-NEXT: .byte 0x34
855 ; IASM-NEXT: .byte 0x60 971 ; IASM-NEXT: .byte 0x60
856 ; IASM-NEXT: .byte 0x2e 972 ; IASM-NEXT: .byte 0x2e
857 ; IASM-NEXT: .byte 0x46 973 ; IASM-NEXT: .byte 0x46
858 ; IASM-NEXT: .byte 0x1 974 ; IASM-NEXT: .byte 0x1
975 ; IASM-NEXT: .byte 0x0
976 ; IASM-NEXT: .byte 0x2
977 ; IASM-NEXT: .byte 0x24
978 ; IASM-NEXT: .byte 0x1
859 ; IASM-NEXT: .byte 0x10 979 ; IASM-NEXT: .byte 0x10
860 ; IASM-NEXT: .byte 0x1 980 ; IASM-NEXT: .byte 0x1
861 ; IASM-NEXT: .byte 0x0 981 ; IASM-NEXT: .byte 0x0
862 ; IASM-NEXT: .byte 0x1 982 ; IASM-NEXT: .byte 0x1
863 ; IASM-NEXT: .byte 0x0 983 ; IASM-NEXT: .byte 0x0
864 ; IASM-NEXT: .byte 0x42 984 ; IASM-NEXT: .byte 0x42
865 ; IASM-NEXT: .byte 0x30 985 ; IASM-NEXT: .byte 0x30
866 ; IASM-NEXT: .byte 0x8 986 ; IASM-NEXT: .byte 0x8
867 ; IASM-NEXT: .byte 0x0 987 ; IASM-NEXT: .byte 0x0
868 ; IASM-NEXT: .byte 0xe0 988 ; IASM-NEXT: .byte 0xe0
869 ; IASM-NEXT: .byte 0x3 989 ; IASM-NEXT: .byte 0x3
870 990
871 define internal i32 @fcmpUltFloat(float %a, float %b) { 991 define internal i32 @fcmpUltFloat(float %a, float %b) {
872 entry: 992 entry:
873 %cmp = fcmp ult float %a, %b 993 %cmp = fcmp ult float %a, %b
874 %cmp.ret_ext = zext i1 %cmp to i32 994 %cmp.ret_ext = zext i1 %cmp to i32
875 ret i32 %cmp.ret_ext 995 ret i32 %cmp.ret_ext
876 } 996 }
877 997
878 ; ASM-LABEL: fcmpUltFloat 998 ; ASM-LABEL: fcmpUltFloat
879 ; ASM-NEXT: .LfcmpUltFloat$entry: 999 ; ASM-NEXT: .LfcmpUltFloat$entry:
880 ; ASM-NEXT: c.ult.s $f12, $f14 1000 ; ASM-NEXT: c.ult.s $f12, $f14
1001 ; ASM-NEXT: addiu $v0, $zero, 1
881 ; ASM-NEXT: movf $v0, $zero, $fcc0 1002 ; ASM-NEXT: movf $v0, $zero, $fcc0
882 ; ASM-NEXT: andi $v0, $v0, 1 1003 ; ASM-NEXT: andi $v0, $v0, 1
883 ; ASM-NEXT: jr $ra 1004 ; ASM-NEXT: jr $ra
884 1005
885 ; DIS-LABEL: 000002a0 <fcmpUltFloat>: 1006 ; DIS-LABEL: 000002a0 <fcmpUltFloat>:
886 ; DIS-NEXT: 2a0: 460e6035 c.ult.s $f12,$f14 1007 ; DIS-NEXT: 2a0: 460e6035 c.ult.s $f12,$f14
887 ; DIS-NEXT: 2a4:» 00001001 » movf» v0,zero,$fcc0 1008 ; DIS-NEXT: 2a4:» 24020001 » li» v0,1
888 ; DIS-NEXT: 2a8:» 30420001 » andi» v0,v0,0x1 1009 ; DIS-NEXT: 2a8:» 00001001 » movf» v0,zero,$fcc0
889 ; DIS-NEXT: 2ac:» 03e00008 » jr» ra 1010 ; DIS-NEXT: 2ac:» 30420001 » andi» v0,v0,0x1
1011 ; DIS-NEXT: 2b0:» 03e00008 » jr» ra
890 1012
891 ; IASM-LABEL: fcmpUltFloat: 1013 ; IASM-LABEL: fcmpUltFloat:
892 ; IASM-NEXT: .LfcmpUltFloat$entry: 1014 ; IASM-NEXT: .LfcmpUltFloat$entry:
893 ; IASM-NEXT: .byte 0x35 1015 ; IASM-NEXT: .byte 0x35
894 ; IASM-NEXT: .byte 0x60 1016 ; IASM-NEXT: .byte 0x60
895 ; IASM-NEXT: .byte 0xe 1017 ; IASM-NEXT: .byte 0xe
896 ; IASM-NEXT: .byte 0x46 1018 ; IASM-NEXT: .byte 0x46
897 ; IASM-NEXT: .byte 0x1 1019 ; IASM-NEXT: .byte 0x1
1020 ; IASM-NEXT: .byte 0x0
1021 ; IASM-NEXT: .byte 0x2
1022 ; IASM-NEXT: .byte 0x24
1023 ; IASM-NEXT: .byte 0x1
898 ; IASM-NEXT: .byte 0x10 1024 ; IASM-NEXT: .byte 0x10
899 ; IASM-NEXT: .byte 0x0 1025 ; IASM-NEXT: .byte 0x0
900 ; IASM-NEXT: .byte 0x0 1026 ; IASM-NEXT: .byte 0x0
901 ; IASM-NEXT: .byte 0x1 1027 ; IASM-NEXT: .byte 0x1
902 ; IASM-NEXT: .byte 0x0 1028 ; IASM-NEXT: .byte 0x0
903 ; IASM-NEXT: .byte 0x42 1029 ; IASM-NEXT: .byte 0x42
904 ; IASM-NEXT: .byte 0x30 1030 ; IASM-NEXT: .byte 0x30
905 ; IASM-NEXT: .byte 0x8 1031 ; IASM-NEXT: .byte 0x8
906 ; IASM-NEXT: .byte 0x0 1032 ; IASM-NEXT: .byte 0x0
907 ; IASM-NEXT: .byte 0xe0 1033 ; IASM-NEXT: .byte 0xe0
908 ; IASM-NEXT: .byte 0x3 1034 ; IASM-NEXT: .byte 0x3
909 1035
910 define internal i32 @fcmpUltDouble(double %a, double %b) { 1036 define internal i32 @fcmpUltDouble(double %a, double %b) {
911 entry: 1037 entry:
912 %cmp = fcmp ult double %a, %b 1038 %cmp = fcmp ult double %a, %b
913 %cmp.ret_ext = zext i1 %cmp to i32 1039 %cmp.ret_ext = zext i1 %cmp to i32
914 ret i32 %cmp.ret_ext 1040 ret i32 %cmp.ret_ext
915 } 1041 }
916 1042
917 ; ASM-LABEL: fcmpUltDouble 1043 ; ASM-LABEL: fcmpUltDouble
918 ; ASM-NEXT: .LfcmpUltDouble$entry: 1044 ; ASM-NEXT: .LfcmpUltDouble$entry:
919 ; ASM-NEXT: c.ult.d $f12, $f14 1045 ; ASM-NEXT: c.ult.d $f12, $f14
1046 ; ASM-NEXT: addiu $v0, $zero, 1
920 ; ASM-NEXT: movf $v0, $zero, $fcc0 1047 ; ASM-NEXT: movf $v0, $zero, $fcc0
921 ; ASM-NEXT: andi $v0, $v0, 1 1048 ; ASM-NEXT: andi $v0, $v0, 1
922 ; ASM-NEXT: jr $ra 1049 ; ASM-NEXT: jr $ra
923 1050
924 ; DIS-LABEL: 000002c0 <fcmpUltDouble>: 1051 ; DIS-LABEL: 000002c0 <fcmpUltDouble>:
925 ; DIS-NEXT: 2c0: 462e6035 c.ult.d $f12,$f14 1052 ; DIS-NEXT: 2c0: 462e6035 c.ult.d $f12,$f14
926 ; DIS-NEXT: 2c4:» 00001001 » movf» v0,zero,$fcc0 1053 ; DIS-NEXT: 2c4:» 24020001 » li» v0,1
927 ; DIS-NEXT: 2c8:» 30420001 » andi» v0,v0,0x1 1054 ; DIS-NEXT: 2c8:» 00001001 » movf» v0,zero,$fcc0
928 ; DIS-NEXT: 2cc:» 03e00008 » jr» ra 1055 ; DIS-NEXT: 2cc:» 30420001 » andi» v0,v0,0x1
1056 ; DIS-NEXT: 2d0:» 03e00008 » jr» ra
929 1057
930 ; IASM-LABEL: fcmpUltDouble: 1058 ; IASM-LABEL: fcmpUltDouble:
931 ; IASM-NEXT: .LfcmpUltDouble$entry: 1059 ; IASM-NEXT: .LfcmpUltDouble$entry:
932 ; IASM-NEXT: .byte 0x35 1060 ; IASM-NEXT: .byte 0x35
933 ; IASM-NEXT: .byte 0x60 1061 ; IASM-NEXT: .byte 0x60
934 ; IASM-NEXT: .byte 0x2e 1062 ; IASM-NEXT: .byte 0x2e
935 ; IASM-NEXT: .byte 0x46 1063 ; IASM-NEXT: .byte 0x46
936 ; IASM-NEXT: .byte 0x1 1064 ; IASM-NEXT: .byte 0x1
1065 ; IASM-NEXT: .byte 0x0
1066 ; IASM-NEXT: .byte 0x2
1067 ; IASM-NEXT: .byte 0x24
1068 ; IASM-NEXT: .byte 0x1
937 ; IASM-NEXT: .byte 0x10 1069 ; IASM-NEXT: .byte 0x10
938 ; IASM-NEXT: .byte 0x0 1070 ; IASM-NEXT: .byte 0x0
939 ; IASM-NEXT: .byte 0x0 1071 ; IASM-NEXT: .byte 0x0
940 ; IASM-NEXT: .byte 0x1 1072 ; IASM-NEXT: .byte 0x1
941 ; IASM-NEXT: .byte 0x0 1073 ; IASM-NEXT: .byte 0x0
942 ; IASM-NEXT: .byte 0x42 1074 ; IASM-NEXT: .byte 0x42
943 ; IASM-NEXT: .byte 0x30 1075 ; IASM-NEXT: .byte 0x30
944 ; IASM-NEXT: .byte 0x8 1076 ; IASM-NEXT: .byte 0x8
945 ; IASM-NEXT: .byte 0x0 1077 ; IASM-NEXT: .byte 0x0
946 ; IASM-NEXT: .byte 0xe0 1078 ; IASM-NEXT: .byte 0xe0
947 ; IASM-NEXT: .byte 0x3 1079 ; IASM-NEXT: .byte 0x3
948 1080
949 define internal i32 @fcmpUleFloat(float %a, float %b) { 1081 define internal i32 @fcmpUleFloat(float %a, float %b) {
950 entry: 1082 entry:
951 %cmp = fcmp ule float %a, %b 1083 %cmp = fcmp ule float %a, %b
952 %cmp.ret_ext = zext i1 %cmp to i32 1084 %cmp.ret_ext = zext i1 %cmp to i32
953 ret i32 %cmp.ret_ext 1085 ret i32 %cmp.ret_ext
954 } 1086 }
955 1087
956 ; ASM-LABEL: fcmpUleFloat 1088 ; ASM-LABEL: fcmpUleFloat
957 ; ASM-NEXT: .LfcmpUleFloat$entry: 1089 ; ASM-NEXT: .LfcmpUleFloat$entry:
958 ; ASM-NEXT: c.ule.s $f12, $f14 1090 ; ASM-NEXT: c.ule.s $f12, $f14
1091 ; ASM-NEXT: addiu $v0, $zero, 1
959 ; ASM-NEXT: movf $v0, $zero, $fcc0 1092 ; ASM-NEXT: movf $v0, $zero, $fcc0
960 ; ASM-NEXT: andi $v0, $v0, 1 1093 ; ASM-NEXT: andi $v0, $v0, 1
961 ; ASM-NEXT: jr $ra 1094 ; ASM-NEXT: jr $ra
962 1095
963 ; DIS-LABEL: 000002e0 <fcmpUleFloat>: 1096 ; DIS-LABEL: 000002e0 <fcmpUleFloat>:
964 ; DIS-NEXT: 2e0: 460e6037 c.ule.s $f12,$f14 1097 ; DIS-NEXT: 2e0: 460e6037 c.ule.s $f12,$f14
965 ; DIS-NEXT: 2e4:» 00001001 » movf» v0,zero,$fcc0 1098 ; DIS-NEXT: 2e4:» 24020001 » li» v0,1
966 ; DIS-NEXT: 2e8:» 30420001 » andi» v0,v0,0x1 1099 ; DIS-NEXT: 2e8:» 00001001 » movf» v0,zero,$fcc0
967 ; DIS-NEXT: 2ec:» 03e00008 » jr» ra 1100 ; DIS-NEXT: 2ec:» 30420001 » andi» v0,v0,0x1
1101 ; DIS-NEXT: 2f0:» 03e00008 » jr» ra
968 1102
969 ; IASM-LABEL: fcmpUleFloat: 1103 ; IASM-LABEL: fcmpUleFloat:
970 ; IASM-NEXT: .LfcmpUleFloat$entry: 1104 ; IASM-NEXT: .LfcmpUleFloat$entry:
971 ; IASM-NEXT: .byte 0x37 1105 ; IASM-NEXT: .byte 0x37
972 ; IASM-NEXT: .byte 0x60 1106 ; IASM-NEXT: .byte 0x60
973 ; IASM-NEXT: .byte 0xe 1107 ; IASM-NEXT: .byte 0xe
974 ; IASM-NEXT: .byte 0x46 1108 ; IASM-NEXT: .byte 0x46
975 ; IASM-NEXT: .byte 0x1 1109 ; IASM-NEXT: .byte 0x1
1110 ; IASM-NEXT: .byte 0x0
1111 ; IASM-NEXT: .byte 0x2
1112 ; IASM-NEXT: .byte 0x24
1113 ; IASM-NEXT: .byte 0x1
976 ; IASM-NEXT: .byte 0x10 1114 ; IASM-NEXT: .byte 0x10
977 ; IASM-NEXT: .byte 0x0 1115 ; IASM-NEXT: .byte 0x0
978 ; IASM-NEXT: .byte 0x0 1116 ; IASM-NEXT: .byte 0x0
979 ; IASM-NEXT: .byte 0x1 1117 ; IASM-NEXT: .byte 0x1
980 ; IASM-NEXT: .byte 0x0 1118 ; IASM-NEXT: .byte 0x0
981 ; IASM-NEXT: .byte 0x42 1119 ; IASM-NEXT: .byte 0x42
982 ; IASM-NEXT: .byte 0x30 1120 ; IASM-NEXT: .byte 0x30
983 ; IASM-NEXT: .byte 0x8 1121 ; IASM-NEXT: .byte 0x8
984 ; IASM-NEXT: .byte 0x0 1122 ; IASM-NEXT: .byte 0x0
985 ; IASM-NEXT: .byte 0xe0 1123 ; IASM-NEXT: .byte 0xe0
986 ; IASM-NEXT: .byte 0x3 1124 ; IASM-NEXT: .byte 0x3
987 1125
988 define internal i32 @fcmpUleDouble(double %a, double %b) { 1126 define internal i32 @fcmpUleDouble(double %a, double %b) {
989 entry: 1127 entry:
990 %cmp = fcmp ule double %a, %b 1128 %cmp = fcmp ule double %a, %b
991 %cmp.ret_ext = zext i1 %cmp to i32 1129 %cmp.ret_ext = zext i1 %cmp to i32
992 ret i32 %cmp.ret_ext 1130 ret i32 %cmp.ret_ext
993 } 1131 }
994 1132
995 ; ASM-LABEL: fcmpUleDouble 1133 ; ASM-LABEL: fcmpUleDouble
996 ; ASM-NEXT: .LfcmpUleDouble$entry: 1134 ; ASM-NEXT: .LfcmpUleDouble$entry:
997 ; ASM-NEXT: c.ule.d $f12, $f14 1135 ; ASM-NEXT: c.ule.d $f12, $f14
1136 ; ASM-NEXT: addiu $v0, $zero, 1
998 ; ASM-NEXT: movf $v0, $zero, $fcc0 1137 ; ASM-NEXT: movf $v0, $zero, $fcc0
999 ; ASM-NEXT: andi $v0, $v0, 1 1138 ; ASM-NEXT: andi $v0, $v0, 1
1000 ; ASM-NEXT: jr $ra 1139 ; ASM-NEXT: jr $ra
1001 1140
1002 ; DIS-LABEL: 00000300 <fcmpUleDouble>: 1141 ; DIS-LABEL: 00000300 <fcmpUleDouble>:
1003 ; DIS-NEXT: 300: 462e6037 c.ule.d $f12,$f14 1142 ; DIS-NEXT: 300: 462e6037 c.ule.d $f12,$f14
1004 ; DIS-NEXT: 304:» 00001001 » movf» v0,zero,$fcc0 1143 ; DIS-NEXT: 304:» 24020001 » li» v0,1
1005 ; DIS-NEXT: 308:» 30420001 » andi» v0,v0,0x1 1144 ; DIS-NEXT: 308:» 00001001 » movf» v0,zero,$fcc0
1006 ; DIS-NEXT: 30c:» 03e00008 » jr» ra 1145 ; DIS-NEXT: 30c:» 30420001 » andi» v0,v0,0x1
1146 ; DIS-NEXT: 310:» 03e00008 » jr» ra
1007 1147
1008 ; IASM-LABEL: fcmpUleDouble: 1148 ; IASM-LABEL: fcmpUleDouble:
1009 ; IASM-NEXT: .LfcmpUleDouble$entry: 1149 ; IASM-NEXT: .LfcmpUleDouble$entry:
1010 ; IASM-NEXT: .byte 0x37 1150 ; IASM-NEXT: .byte 0x37
1011 ; IASM-NEXT: .byte 0x60 1151 ; IASM-NEXT: .byte 0x60
1012 ; IASM-NEXT: .byte 0x2e 1152 ; IASM-NEXT: .byte 0x2e
1013 ; IASM-NEXT: .byte 0x46 1153 ; IASM-NEXT: .byte 0x46
1014 ; IASM-NEXT: .byte 0x1 1154 ; IASM-NEXT: .byte 0x1
1155 ; IASM-NEXT: .byte 0x0
1156 ; IASM-NEXT: .byte 0x2
1157 ; IASM-NEXT: .byte 0x24
1158 ; IASM-NEXT: .byte 0x1
1015 ; IASM-NEXT: .byte 0x10 1159 ; IASM-NEXT: .byte 0x10
1016 ; IASM-NEXT: .byte 0x0 1160 ; IASM-NEXT: .byte 0x0
1017 ; IASM-NEXT: .byte 0x0 1161 ; IASM-NEXT: .byte 0x0
1018 ; IASM-NEXT: .byte 0x1 1162 ; IASM-NEXT: .byte 0x1
1019 ; IASM-NEXT: .byte 0x0 1163 ; IASM-NEXT: .byte 0x0
1020 ; IASM-NEXT: .byte 0x42 1164 ; IASM-NEXT: .byte 0x42
1021 ; IASM-NEXT: .byte 0x30 1165 ; IASM-NEXT: .byte 0x30
1022 ; IASM-NEXT: .byte 0x8 1166 ; IASM-NEXT: .byte 0x8
1023 ; IASM-NEXT: .byte 0x0 1167 ; IASM-NEXT: .byte 0x0
1024 ; IASM-NEXT: .byte 0xe0 1168 ; IASM-NEXT: .byte 0xe0
1025 ; IASM-NEXT: .byte 0x3 1169 ; IASM-NEXT: .byte 0x3
1026 1170
1027 define internal i32 @fcmpUneFloat(float %a, float %b) { 1171 define internal i32 @fcmpUneFloat(float %a, float %b) {
1028 entry: 1172 entry:
1029 %cmp = fcmp une float %a, %b 1173 %cmp = fcmp une float %a, %b
1030 %cmp.ret_ext = zext i1 %cmp to i32 1174 %cmp.ret_ext = zext i1 %cmp to i32
1031 ret i32 %cmp.ret_ext 1175 ret i32 %cmp.ret_ext
1032 } 1176 }
1033 1177
1034 ; ASM-LABEL: fcmpUneFloat 1178 ; ASM-LABEL: fcmpUneFloat
1035 ; ASM-NEXT: .LfcmpUneFloat$entry: 1179 ; ASM-NEXT: .LfcmpUneFloat$entry:
1036 ; ASM-NEXT: c.eq.s $f12, $f14 1180 ; ASM-NEXT: c.eq.s $f12, $f14
1181 ; ASM-NEXT: addiu $v0, $zero, 1
1037 ; ASM-NEXT: movt $v0, $zero, $fcc0 1182 ; ASM-NEXT: movt $v0, $zero, $fcc0
1038 ; ASM-NEXT: andi $v0, $v0, 1 1183 ; ASM-NEXT: andi $v0, $v0, 1
1039 ; ASM-NEXT: jr $ra 1184 ; ASM-NEXT: jr $ra
1040 1185
1041 ; DIS-LABEL: 00000320 <fcmpUneFloat>: 1186 ; DIS-LABEL: 00000320 <fcmpUneFloat>:
1042 ; DIS-NEXT: 320: 460e6032 c.eq.s $f12,$f14 1187 ; DIS-NEXT: 320: 460e6032 c.eq.s $f12,$f14
1043 ; DIS-NEXT: 324:» 00011001 » movt» v0,zero,$fcc0 1188 ; DIS-NEXT: 324:» 24020001 » li» v0,1
1044 ; DIS-NEXT: 328:» 30420001 » andi» v0,v0,0x1 1189 ; DIS-NEXT: 328:» 00011001 » movt» v0,zero,$fcc0
1045 ; DIS-NEXT: 32c:» 03e00008 » jr» ra 1190 ; DIS-NEXT: 32c:» 30420001 » andi» v0,v0,0x1
1191 ; DIS-NEXT: 330:» 03e00008 » jr» ra
1046 1192
1047 ; IASM-LABEL: fcmpUneFloat: 1193 ; IASM-LABEL: fcmpUneFloat:
1048 ; IASM-NEXT: .LfcmpUneFloat$entry: 1194 ; IASM-NEXT: .LfcmpUneFloat$entry:
1049 ; IASM-NEXT: .byte 0x32 1195 ; IASM-NEXT: .byte 0x32
1050 ; IASM-NEXT: .byte 0x60 1196 ; IASM-NEXT: .byte 0x60
1051 ; IASM-NEXT: .byte 0xe 1197 ; IASM-NEXT: .byte 0xe
1052 ; IASM-NEXT: .byte 0x46 1198 ; IASM-NEXT: .byte 0x46
1053 ; IASM-NEXT: .byte 0x1 1199 ; IASM-NEXT: .byte 0x1
1200 ; IASM-NEXT: .byte 0x0
1201 ; IASM-NEXT: .byte 0x2
1202 ; IASM-NEXT: .byte 0x24
1203 ; IASM-NEXT: .byte 0x1
1054 ; IASM-NEXT: .byte 0x10 1204 ; IASM-NEXT: .byte 0x10
1055 ; IASM-NEXT: .byte 0x1 1205 ; IASM-NEXT: .byte 0x1
1056 ; IASM-NEXT: .byte 0x0 1206 ; IASM-NEXT: .byte 0x0
1057 ; IASM-NEXT: .byte 0x1 1207 ; IASM-NEXT: .byte 0x1
1058 ; IASM-NEXT: .byte 0x0 1208 ; IASM-NEXT: .byte 0x0
1059 ; IASM-NEXT: .byte 0x42 1209 ; IASM-NEXT: .byte 0x42
1060 ; IASM-NEXT: .byte 0x30 1210 ; IASM-NEXT: .byte 0x30
1061 ; IASM-NEXT: .byte 0x8 1211 ; IASM-NEXT: .byte 0x8
1062 ; IASM-NEXT: .byte 0x0 1212 ; IASM-NEXT: .byte 0x0
1063 ; IASM-NEXT: .byte 0xe0 1213 ; IASM-NEXT: .byte 0xe0
1064 ; IASM-NEXT: .byte 0x3 1214 ; IASM-NEXT: .byte 0x3
1065 1215
1066 define internal i32 @fcmpUneDouble(double %a, double %b) { 1216 define internal i32 @fcmpUneDouble(double %a, double %b) {
1067 entry: 1217 entry:
1068 %cmp = fcmp une double %a, %b 1218 %cmp = fcmp une double %a, %b
1069 %cmp.ret_ext = zext i1 %cmp to i32 1219 %cmp.ret_ext = zext i1 %cmp to i32
1070 ret i32 %cmp.ret_ext 1220 ret i32 %cmp.ret_ext
1071 } 1221 }
1072 1222
1073 ; ASM-LABEL: fcmpUneDouble 1223 ; ASM-LABEL: fcmpUneDouble
1074 ; ASM-NEXT: .LfcmpUneDouble$entry: 1224 ; ASM-NEXT: .LfcmpUneDouble$entry:
1075 ; ASM-NEXT: c.eq.d $f12, $f14 1225 ; ASM-NEXT: c.eq.d $f12, $f14
1226 ; ASM-NEXT: addiu $v0, $zero, 1
1076 ; ASM-NEXT: movt $v0, $zero, $fcc0 1227 ; ASM-NEXT: movt $v0, $zero, $fcc0
1077 ; ASM-NEXT: andi $v0, $v0, 1 1228 ; ASM-NEXT: andi $v0, $v0, 1
1078 ; ASM-NEXT: jr $ra 1229 ; ASM-NEXT: jr $ra
1079 1230
1080 ; DIS-LABEL: 00000340 <fcmpUneDouble>: 1231 ; DIS-LABEL: 00000340 <fcmpUneDouble>:
1081 ; DIS-NEXT: 340: 462e6032 c.eq.d $f12,$f14 1232 ; DIS-NEXT: 340: 462e6032 c.eq.d $f12,$f14
1082 ; DIS-NEXT: 344:» 00011001 » movt» v0,zero,$fcc0 1233 ; DIS-NEXT: 344:» 24020001 » li» v0,1
1083 ; DIS-NEXT: 348:» 30420001 » andi» v0,v0,0x1 1234 ; DIS-NEXT: 348:» 00011001 » movt» v0,zero,$fcc0
1084 ; DIS-NEXT: 34c:» 03e00008 » jr» ra 1235 ; DIS-NEXT: 34c:» 30420001 » andi» v0,v0,0x1
1236 ; DIS-NEXT: 350:» 03e00008 » jr» ra
1085 1237
1086 ; IASM-LABEL: fcmpUneDouble: 1238 ; IASM-LABEL: fcmpUneDouble:
1087 ; IASM-NEXT: .LfcmpUneDouble$entry: 1239 ; IASM-NEXT: .LfcmpUneDouble$entry:
1088 ; IASM-NEXT: .byte 0x32 1240 ; IASM-NEXT: .byte 0x32
1089 ; IASM-NEXT: .byte 0x60 1241 ; IASM-NEXT: .byte 0x60
1090 ; IASM-NEXT: .byte 0x2e 1242 ; IASM-NEXT: .byte 0x2e
1091 ; IASM-NEXT: .byte 0x46 1243 ; IASM-NEXT: .byte 0x46
1092 ; IASM-NEXT: .byte 0x1 1244 ; IASM-NEXT: .byte 0x1
1245 ; IASM-NEXT: .byte 0x0
1246 ; IASM-NEXT: .byte 0x2
1247 ; IASM-NEXT: .byte 0x24
1248 ; IASM-NEXT: .byte 0x1
1093 ; IASM-NEXT: .byte 0x10 1249 ; IASM-NEXT: .byte 0x10
1094 ; IASM-NEXT: .byte 0x1 1250 ; IASM-NEXT: .byte 0x1
1095 ; IASM-NEXT: .byte 0x0 1251 ; IASM-NEXT: .byte 0x0
1096 ; IASM-NEXT: .byte 0x1 1252 ; IASM-NEXT: .byte 0x1
1097 ; IASM-NEXT: .byte 0x0 1253 ; IASM-NEXT: .byte 0x0
1098 ; IASM-NEXT: .byte 0x42 1254 ; IASM-NEXT: .byte 0x42
1099 ; IASM-NEXT: .byte 0x30 1255 ; IASM-NEXT: .byte 0x30
1100 ; IASM-NEXT: .byte 0x8 1256 ; IASM-NEXT: .byte 0x8
1101 ; IASM-NEXT: .byte 0x0 1257 ; IASM-NEXT: .byte 0x0
1102 ; IASM-NEXT: .byte 0xe0 1258 ; IASM-NEXT: .byte 0xe0
1103 ; IASM-NEXT: .byte 0x3 1259 ; IASM-NEXT: .byte 0x3
1104 1260
1105 define internal i32 @fcmpUnoFloat(float %a, float %b) { 1261 define internal i32 @fcmpUnoFloat(float %a, float %b) {
1106 entry: 1262 entry:
1107 %cmp = fcmp uno float %a, %b 1263 %cmp = fcmp uno float %a, %b
1108 %cmp.ret_ext = zext i1 %cmp to i32 1264 %cmp.ret_ext = zext i1 %cmp to i32
1109 ret i32 %cmp.ret_ext 1265 ret i32 %cmp.ret_ext
1110 } 1266 }
1111 1267
1112 ; ASM-LABEL: fcmpUnoFloat 1268 ; ASM-LABEL: fcmpUnoFloat
1113 ; ASM-NEXT: .LfcmpUnoFloat$entry: 1269 ; ASM-NEXT: .LfcmpUnoFloat$entry:
1114 ; ASM-NEXT: c.un.s $f12, $f14 1270 ; ASM-NEXT: c.un.s $f12, $f14
1271 ; ASM-NEXT: addiu $v0, $zero, 1
1115 ; ASM-NEXT: movf $v0, $zero, $fcc0 1272 ; ASM-NEXT: movf $v0, $zero, $fcc0
1116 ; ASM-NEXT: andi $v0, $v0, 1 1273 ; ASM-NEXT: andi $v0, $v0, 1
1117 ; ASM-NEXT: jr $ra 1274 ; ASM-NEXT: jr $ra
1118 1275
1119 ; DIS-LABEL: 00000360 <fcmpUnoFloat>: 1276 ; DIS-LABEL: 00000360 <fcmpUnoFloat>:
1120 ; DIS-NEXT: 360: 460e6031 c.un.s $f12,$f14 1277 ; DIS-NEXT: 360: 460e6031 c.un.s $f12,$f14
1121 ; DIS-NEXT: 364:» 00001001 » movf» v0,zero,$fcc0 1278 ; DIS-NEXT: 364:» 24020001 » li» v0,1
1122 ; DIS-NEXT: 368:» 30420001 » andi» v0,v0,0x1 1279 ; DIS-NEXT: 368:» 00001001 » movf» v0,zero,$fcc0
1123 ; DIS-NEXT: 36c:» 03e00008 » jr» ra 1280 ; DIS-NEXT: 36c:» 30420001 » andi» v0,v0,0x1
1281 ; DIS-NEXT: 370:» 03e00008 » jr» ra
1124 1282
1125 ; IASM-LABEL: fcmpUnoFloat: 1283 ; IASM-LABEL: fcmpUnoFloat:
1126 ; IASM-NEXT: .LfcmpUnoFloat$entry: 1284 ; IASM-NEXT: .LfcmpUnoFloat$entry:
1127 ; IASM-NEXT: .byte 0x31 1285 ; IASM-NEXT: .byte 0x31
1128 ; IASM-NEXT: .byte 0x60 1286 ; IASM-NEXT: .byte 0x60
1129 ; IASM-NEXT: .byte 0xe 1287 ; IASM-NEXT: .byte 0xe
1130 ; IASM-NEXT: .byte 0x46 1288 ; IASM-NEXT: .byte 0x46
1131 ; IASM-NEXT: .byte 0x1 1289 ; IASM-NEXT: .byte 0x1
1290 ; IASM-NEXT: .byte 0x0
1291 ; IASM-NEXT: .byte 0x2
1292 ; IASM-NEXT: .byte 0x24
1293 ; IASM-NEXT: .byte 0x1
1132 ; IASM-NEXT: .byte 0x10 1294 ; IASM-NEXT: .byte 0x10
1133 ; IASM-NEXT: .byte 0x0 1295 ; IASM-NEXT: .byte 0x0
1134 ; IASM-NEXT: .byte 0x0 1296 ; IASM-NEXT: .byte 0x0
1135 ; IASM-NEXT: .byte 0x1 1297 ; IASM-NEXT: .byte 0x1
1136 ; IASM-NEXT: .byte 0x0 1298 ; IASM-NEXT: .byte 0x0
1137 ; IASM-NEXT: .byte 0x42 1299 ; IASM-NEXT: .byte 0x42
1138 ; IASM-NEXT: .byte 0x30 1300 ; IASM-NEXT: .byte 0x30
1139 ; IASM-NEXT: .byte 0x8 1301 ; IASM-NEXT: .byte 0x8
1140 ; IASM-NEXT: .byte 0x0 1302 ; IASM-NEXT: .byte 0x0
1141 ; IASM-NEXT: .byte 0xe0 1303 ; IASM-NEXT: .byte 0xe0
1142 ; IASM-NEXT: .byte 0x3 1304 ; IASM-NEXT: .byte 0x3
1143 1305
1144 define internal i32 @fcmpUnoDouble(double %a, double %b) { 1306 define internal i32 @fcmpUnoDouble(double %a, double %b) {
1145 entry: 1307 entry:
1146 %cmp = fcmp uno double %a, %b 1308 %cmp = fcmp uno double %a, %b
1147 %cmp.ret_ext = zext i1 %cmp to i32 1309 %cmp.ret_ext = zext i1 %cmp to i32
1148 ret i32 %cmp.ret_ext 1310 ret i32 %cmp.ret_ext
1149 } 1311 }
1150 1312
1151 ; ASM-LABEL: fcmpUnoDouble 1313 ; ASM-LABEL: fcmpUnoDouble
1152 ; ASM-NEXT: .LfcmpUnoDouble$entry: 1314 ; ASM-NEXT: .LfcmpUnoDouble$entry:
1153 ; ASM-NEXT: c.un.d $f12, $f14 1315 ; ASM-NEXT: c.un.d $f12, $f14
1316 ; ASM-NEXT: addiu $v0, $zero, 1
1154 ; ASM-NEXT: movf $v0, $zero, $fcc0 1317 ; ASM-NEXT: movf $v0, $zero, $fcc0
1155 ; ASM-NEXT: andi $v0, $v0, 1 1318 ; ASM-NEXT: andi $v0, $v0, 1
1156 ; ASM-NEXT: jr $ra 1319 ; ASM-NEXT: jr $ra
1157 1320
1158 ; DIS-LABEL: 00000380 <fcmpUnoDouble>: 1321 ; DIS-LABEL: 00000380 <fcmpUnoDouble>:
1159 ; DIS-NEXT: 380: 462e6031 c.un.d $f12,$f14 1322 ; DIS-NEXT: 380: 462e6031 c.un.d $f12,$f14
1160 ; DIS-NEXT: 384:» 00001001 » movf» v0,zero,$fcc0 1323 ; DIS-NEXT: 384:» 24020001 » li» v0,1
1161 ; DIS-NEXT: 388:» 30420001 » andi» v0,v0,0x1 1324 ; DIS-NEXT: 388:» 00001001 » movf» v0,zero,$fcc0
1162 ; DIS-NEXT: 38c:» 03e00008 » jr» ra 1325 ; DIS-NEXT: 38c:» 30420001 » andi» v0,v0,0x1
1326 ; DIS-NEXT: 390:» 03e00008 » jr» ra
1163 1327
1164 ; IASM-LABEL: fcmpUnoDouble: 1328 ; IASM-LABEL: fcmpUnoDouble:
1165 ; IASM-NEXT: .LfcmpUnoDouble$entry: 1329 ; IASM-NEXT: .LfcmpUnoDouble$entry:
1166 ; IASM-NEXT: .byte 0x31 1330 ; IASM-NEXT: .byte 0x31
1167 ; IASM-NEXT: .byte 0x60 1331 ; IASM-NEXT: .byte 0x60
1168 ; IASM-NEXT: .byte 0x2e 1332 ; IASM-NEXT: .byte 0x2e
1169 ; IASM-NEXT: .byte 0x46 1333 ; IASM-NEXT: .byte 0x46
1170 ; IASM-NEXT: .byte 0x1 1334 ; IASM-NEXT: .byte 0x1
1335 ; IASM-NEXT: .byte 0x0
1336 ; IASM-NEXT: .byte 0x2
1337 ; IASM-NEXT: .byte 0x24
1338 ; IASM-NEXT: .byte 0x1
1171 ; IASM-NEXT: .byte 0x10 1339 ; IASM-NEXT: .byte 0x10
1172 ; IASM-NEXT: .byte 0x0 1340 ; IASM-NEXT: .byte 0x0
1173 ; IASM-NEXT: .byte 0x0 1341 ; IASM-NEXT: .byte 0x0
1174 ; IASM-NEXT: .byte 0x1 1342 ; IASM-NEXT: .byte 0x1
1175 ; IASM-NEXT: .byte 0x0 1343 ; IASM-NEXT: .byte 0x0
1176 ; IASM-NEXT: .byte 0x42 1344 ; IASM-NEXT: .byte 0x42
1177 ; IASM-NEXT: .byte 0x30 1345 ; IASM-NEXT: .byte 0x30
1178 ; IASM-NEXT: .byte 0x8 1346 ; IASM-NEXT: .byte 0x8
1179 ; IASM-NEXT: .byte 0x0 1347 ; IASM-NEXT: .byte 0x0
1180 ; IASM-NEXT: .byte 0xe0 1348 ; IASM-NEXT: .byte 0xe0
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1238 ; IASM-NEXT: .byte 0x2 1406 ; IASM-NEXT: .byte 0x2
1239 ; IASM-NEXT: .byte 0x24 1407 ; IASM-NEXT: .byte 0x24
1240 ; IASM-NEXT: .byte 0x1 1408 ; IASM-NEXT: .byte 0x1
1241 ; IASM-NEXT: .byte 0x0 1409 ; IASM-NEXT: .byte 0x0
1242 ; IASM-NEXT: .byte 0x42 1410 ; IASM-NEXT: .byte 0x42
1243 ; IASM-NEXT: .byte 0x30 1411 ; IASM-NEXT: .byte 0x30
1244 ; IASM-NEXT: .byte 0x8 1412 ; IASM-NEXT: .byte 0x8
1245 ; IASM-NEXT: .byte 0x0 1413 ; IASM-NEXT: .byte 0x0
1246 ; IASM-NEXT: .byte 0xe0 1414 ; IASM-NEXT: .byte 0xe0
1247 ; IASM-NEXT: .byte 0x3 1415 ; IASM-NEXT: .byte 0x3
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698