| OLD | NEW |
| 1 ; This tries to be a comprehensive test of f32 and f64 compare operations. | 1 ; This tries to be a comprehensive test of f32 and f64 compare operations. |
| 2 | 2 |
| 3 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 \ | 3 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -O2 \ |
| 4 ; RUN: -allow-externally-defined-symbols | FileCheck %s | 4 ; RUN: -allow-externally-defined-symbols | FileCheck %s |
| 5 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 \ | 5 ; RUN: %p2i --filetype=obj --disassemble -i %s --args -Om1 \ |
| 6 ; RUN: -allow-externally-defined-symbols | FileCheck %s \ | 6 ; RUN: -allow-externally-defined-symbols | FileCheck %s \ |
| 7 ; RUN: --check-prefix=CHECK-OM1 | 7 ; RUN: --check-prefix=CHECK-OM1 |
| 8 | 8 |
| 9 ; RUN: %if --need=allow_dump --need=target_ARM32 --command %p2i --filetype=asm \ | 9 ; RUN: %if --need=allow_dump --need=target_ARM32 --command %p2i --filetype=asm \ |
| 10 ; RUN: --target arm32 -i %s --args -O2 \ | 10 ; RUN: --target arm32 -i %s --args -O2 \ |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 ; ARM32-O2: bne | 69 ; ARM32-O2: bne |
| 70 ; ARM32: bl func | 70 ; ARM32: bl func |
| 71 ; ARM32: vcmp.f64 | 71 ; ARM32: vcmp.f64 |
| 72 ; ARM32: vmrs | 72 ; ARM32: vmrs |
| 73 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 | 73 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 |
| 74 ; ARM32-OM1: moveq [[R1]], #1 | 74 ; ARM32-OM1: moveq [[R1]], #1 |
| 75 ; ARM32-O2: bne | 75 ; ARM32-O2: bne |
| 76 ; MIPS32-LABEL: fcmpEq | 76 ; MIPS32-LABEL: fcmpEq |
| 77 ; MIPS32-LABEL: .LfcmpEq$entry | 77 ; MIPS32-LABEL: .LfcmpEq$entry |
| 78 ; MIPS32: c.eq.s | 78 ; MIPS32: c.eq.s |
| 79 ; MIPS32: movf | 79 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 80 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 80 ; MIPS32-LABEL: .LfcmpEq$if.end | 81 ; MIPS32-LABEL: .LfcmpEq$if.end |
| 81 ; MIPS32: c.eq.d | 82 ; MIPS32: c.eq.d |
| 82 ; MIPS32: movf | 83 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 84 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 83 | 85 |
| 84 declare void @func() | 86 declare void @func() |
| 85 | 87 |
| 86 define internal void @fcmpNe(float %a, float %b, double %c, double %d) { | 88 define internal void @fcmpNe(float %a, float %b, double %c, double %d) { |
| 87 entry: | 89 entry: |
| 88 %cmp = fcmp une float %a, %b | 90 %cmp = fcmp une float %a, %b |
| 89 br i1 %cmp, label %if.then, label %if.end | 91 br i1 %cmp, label %if.then, label %if.end |
| 90 | 92 |
| 91 if.then: ; preds = %entry | 93 if.then: ; preds = %entry |
| 92 call void @func() | 94 call void @func() |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 132 ; ARM32-OM1: movne [[R0]], #1 | 134 ; ARM32-OM1: movne [[R0]], #1 |
| 133 ; ARM32-O2: beq | 135 ; ARM32-O2: beq |
| 134 ; ARM32: vcmp.f64 | 136 ; ARM32: vcmp.f64 |
| 135 ; ARM32: vmrs | 137 ; ARM32: vmrs |
| 136 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 | 138 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 |
| 137 ; ARM32-OM1: movne [[R1]], #1 | 139 ; ARM32-OM1: movne [[R1]], #1 |
| 138 ; ARM32-O2: beq | 140 ; ARM32-O2: beq |
| 139 ; MIPS32-LABEL: fcmpNe | 141 ; MIPS32-LABEL: fcmpNe |
| 140 ; MIPS32-LABEL: .LfcmpNe$entry | 142 ; MIPS32-LABEL: .LfcmpNe$entry |
| 141 ; MIPS32: c.eq.s | 143 ; MIPS32: c.eq.s |
| 142 ; MIPS32: movt | 144 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 145 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 143 ; MIPS32-LABEL: .LfcmpNe$if.end | 146 ; MIPS32-LABEL: .LfcmpNe$if.end |
| 144 ; MIPS32: c.eq.d | 147 ; MIPS32: c.eq.d |
| 145 ; MIPS32: movt | 148 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 149 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 146 | 150 |
| 147 define internal void @fcmpGt(float %a, float %b, double %c, double %d) { | 151 define internal void @fcmpGt(float %a, float %b, double %c, double %d) { |
| 148 entry: | 152 entry: |
| 149 %cmp = fcmp ogt float %a, %b | 153 %cmp = fcmp ogt float %a, %b |
| 150 br i1 %cmp, label %if.then, label %if.end | 154 br i1 %cmp, label %if.then, label %if.end |
| 151 | 155 |
| 152 if.then: ; preds = %entry | 156 if.then: ; preds = %entry |
| 153 call void @func() | 157 call void @func() |
| 154 br label %if.end | 158 br label %if.end |
| 155 | 159 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 185 ; ARM32-OM1: movgt [[R0]], #1 | 189 ; ARM32-OM1: movgt [[R0]], #1 |
| 186 ; ARM32-O2: ble | 190 ; ARM32-O2: ble |
| 187 ; ARM32: vcmp.f64 | 191 ; ARM32: vcmp.f64 |
| 188 ; ARM32: vmrs | 192 ; ARM32: vmrs |
| 189 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 | 193 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 |
| 190 ; ARM32-OM1: movgt [[R1]], #1 | 194 ; ARM32-OM1: movgt [[R1]], #1 |
| 191 ; ARM32-O2: ble | 195 ; ARM32-O2: ble |
| 192 ; MIPS32-LABEL: fcmpGt | 196 ; MIPS32-LABEL: fcmpGt |
| 193 ; MIPS32-LABEL: .LfcmpGt$entry | 197 ; MIPS32-LABEL: .LfcmpGt$entry |
| 194 ; MIPS32: c.ule.s | 198 ; MIPS32: c.ule.s |
| 195 ; MIPS32: movt | 199 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 200 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 196 ; MIPS32-LABEL: .LfcmpGt$if.end | 201 ; MIPS32-LABEL: .LfcmpGt$if.end |
| 197 ; MIPS32: c.ule.d | 202 ; MIPS32: c.ule.d |
| 198 ; MIPS32: movt | 203 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 204 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 199 | 205 |
| 200 define internal void @fcmpGe(float %a, float %b, double %c, double %d) { | 206 define internal void @fcmpGe(float %a, float %b, double %c, double %d) { |
| 201 entry: | 207 entry: |
| 202 %cmp = fcmp ult float %a, %b | 208 %cmp = fcmp ult float %a, %b |
| 203 br i1 %cmp, label %if.end, label %if.then | 209 br i1 %cmp, label %if.end, label %if.then |
| 204 | 210 |
| 205 if.then: ; preds = %entry | 211 if.then: ; preds = %entry |
| 206 call void @func() | 212 call void @func() |
| 207 br label %if.end | 213 br label %if.end |
| 208 | 214 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 238 ; ARM32-OM1: movlt [[R0]], #1 | 244 ; ARM32-OM1: movlt [[R0]], #1 |
| 239 ; ARM32-O2: blt | 245 ; ARM32-O2: blt |
| 240 ; ARM32: vcmp.f64 | 246 ; ARM32: vcmp.f64 |
| 241 ; ARM32: vmrs | 247 ; ARM32: vmrs |
| 242 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 | 248 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 |
| 243 ; ARM32-OM1: movlt [[R1]], #1 | 249 ; ARM32-OM1: movlt [[R1]], #1 |
| 244 ; ARM32-O2: blt | 250 ; ARM32-O2: blt |
| 245 ; MIPS32-LABEL: fcmpGe | 251 ; MIPS32-LABEL: fcmpGe |
| 246 ; MIPS32-LABEL: .LfcmpGe$entry | 252 ; MIPS32-LABEL: .LfcmpGe$entry |
| 247 ; MIPS32: c.ult.s | 253 ; MIPS32: c.ult.s |
| 248 ; MIPS32: movf | 254 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 255 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 249 ; MIPS32-LABEL: .LfcmpGe$if.end | 256 ; MIPS32-LABEL: .LfcmpGe$if.end |
| 250 ; MIPS32: c.ult.d | 257 ; MIPS32: c.ult.d |
| 251 ; MIPS32: movf | 258 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 259 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 252 | 260 |
| 253 define internal void @fcmpLt(float %a, float %b, double %c, double %d) { | 261 define internal void @fcmpLt(float %a, float %b, double %c, double %d) { |
| 254 entry: | 262 entry: |
| 255 %cmp = fcmp olt float %a, %b | 263 %cmp = fcmp olt float %a, %b |
| 256 br i1 %cmp, label %if.then, label %if.end | 264 br i1 %cmp, label %if.then, label %if.end |
| 257 | 265 |
| 258 if.then: ; preds = %entry | 266 if.then: ; preds = %entry |
| 259 call void @func() | 267 call void @func() |
| 260 br label %if.end | 268 br label %if.end |
| 261 | 269 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 291 ; ARM32-OM1: movmi [[R0]], #1 | 299 ; ARM32-OM1: movmi [[R0]], #1 |
| 292 ; ARM32-O2: bpl | 300 ; ARM32-O2: bpl |
| 293 ; ARM32: vcmp.f64 | 301 ; ARM32: vcmp.f64 |
| 294 ; ARM32: vmrs | 302 ; ARM32: vmrs |
| 295 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 | 303 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 |
| 296 ; ARM32-OM1: movmi [[R1]], #1 | 304 ; ARM32-OM1: movmi [[R1]], #1 |
| 297 ; ARM32-O2: bpl | 305 ; ARM32-O2: bpl |
| 298 ; MIPS32-LABEL: fcmpLt | 306 ; MIPS32-LABEL: fcmpLt |
| 299 ; MIPS32-LABEL: .LfcmpLt$entry | 307 ; MIPS32-LABEL: .LfcmpLt$entry |
| 300 ; MIPS32: c.olt.s | 308 ; MIPS32: c.olt.s |
| 301 ; MIPS32: movf | 309 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 310 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 302 ; MIPS32-LABEL: .LfcmpLt$if.end | 311 ; MIPS32-LABEL: .LfcmpLt$if.end |
| 303 ; MIPS32: c.olt.d | 312 ; MIPS32: c.olt.d |
| 304 ; MIPS32: movf | 313 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 314 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 305 | 315 |
| 306 define internal void @fcmpLe(float %a, float %b, double %c, double %d) { | 316 define internal void @fcmpLe(float %a, float %b, double %c, double %d) { |
| 307 entry: | 317 entry: |
| 308 %cmp = fcmp ugt float %a, %b | 318 %cmp = fcmp ugt float %a, %b |
| 309 br i1 %cmp, label %if.end, label %if.then | 319 br i1 %cmp, label %if.end, label %if.then |
| 310 | 320 |
| 311 if.then: ; preds = %entry | 321 if.then: ; preds = %entry |
| 312 call void @func() | 322 call void @func() |
| 313 br label %if.end | 323 br label %if.end |
| 314 | 324 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 344 ; ARM32-OM1: movhi [[R0]], #1 | 354 ; ARM32-OM1: movhi [[R0]], #1 |
| 345 ; ARM32-O2: bhi | 355 ; ARM32-O2: bhi |
| 346 ; ARM32: vcmp.f64 | 356 ; ARM32: vcmp.f64 |
| 347 ; ARM32: vmrs | 357 ; ARM32: vmrs |
| 348 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 | 358 ; ARM32-OM1: mov [[R1:r[0-9]+]], #0 |
| 349 ; ARM32-OM1: movhi [[R1]], #1 | 359 ; ARM32-OM1: movhi [[R1]], #1 |
| 350 ; ARM32-O2: bhi | 360 ; ARM32-O2: bhi |
| 351 ; MIPS32-LABEL: fcmpLe | 361 ; MIPS32-LABEL: fcmpLe |
| 352 ; MIPS32-LABEL: .LfcmpLe$entry | 362 ; MIPS32-LABEL: .LfcmpLe$entry |
| 353 ; MIPS32: c.ole.s | 363 ; MIPS32: c.ole.s |
| 354 ; MIPS32: movt | 364 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 365 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 355 ; MIPS32-LABEL: .LfcmpLe$if.end | 366 ; MIPS32-LABEL: .LfcmpLe$if.end |
| 356 ; MIPS32: c.ole.d | 367 ; MIPS32: c.ole.d |
| 357 ; MIPS32: movt | 368 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 369 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 358 | 370 |
| 359 define internal i32 @fcmpFalseFloat(float %a, float %b) { | 371 define internal i32 @fcmpFalseFloat(float %a, float %b) { |
| 360 entry: | 372 entry: |
| 361 %cmp = fcmp false float %a, %b | 373 %cmp = fcmp false float %a, %b |
| 362 %cmp.ret_ext = zext i1 %cmp to i32 | 374 %cmp.ret_ext = zext i1 %cmp to i32 |
| 363 ret i32 %cmp.ret_ext | 375 ret i32 %cmp.ret_ext |
| 364 } | 376 } |
| 365 ; CHECK-LABEL: fcmpFalseFloat | 377 ; CHECK-LABEL: fcmpFalseFloat |
| 366 ; CHECK: mov {{.*}},0x0 | 378 ; CHECK: mov {{.*}},0x0 |
| 367 ; ARM32-LABEL: fcmpFalseFloat | 379 ; ARM32-LABEL: fcmpFalseFloat |
| (...skipping 27 matching lines...) Expand all Loading... |
| 395 ; CHECK: jne | 407 ; CHECK: jne |
| 396 ; CHECK: jp | 408 ; CHECK: jp |
| 397 ; ARM32-LABEL: fcmpOeqFloat | 409 ; ARM32-LABEL: fcmpOeqFloat |
| 398 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 410 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 399 ; ARM32: vcmp.f32 | 411 ; ARM32: vcmp.f32 |
| 400 ; ARM32: vmrs | 412 ; ARM32: vmrs |
| 401 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 413 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 402 ; ARM32: moveq [[R]], #1 | 414 ; ARM32: moveq [[R]], #1 |
| 403 ; MIPS32-LABEL: fcmpOeqFloat | 415 ; MIPS32-LABEL: fcmpOeqFloat |
| 404 ; MIPS32: c.eq.s | 416 ; MIPS32: c.eq.s |
| 405 ; MIPS32: movf | 417 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 418 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 406 | 419 |
| 407 define internal i32 @fcmpOeqDouble(double %a, double %b) { | 420 define internal i32 @fcmpOeqDouble(double %a, double %b) { |
| 408 entry: | 421 entry: |
| 409 %cmp = fcmp oeq double %a, %b | 422 %cmp = fcmp oeq double %a, %b |
| 410 %cmp.ret_ext = zext i1 %cmp to i32 | 423 %cmp.ret_ext = zext i1 %cmp to i32 |
| 411 ret i32 %cmp.ret_ext | 424 ret i32 %cmp.ret_ext |
| 412 } | 425 } |
| 413 ; CHECK-LABEL: fcmpOeqDouble | 426 ; CHECK-LABEL: fcmpOeqDouble |
| 414 ; CHECK: ucomisd | 427 ; CHECK: ucomisd |
| 415 ; CHECK: jne | 428 ; CHECK: jne |
| 416 ; CHECK: jp | 429 ; CHECK: jp |
| 417 ; ARM32-LABEL: fcmpOeqDouble | 430 ; ARM32-LABEL: fcmpOeqDouble |
| 418 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 431 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 419 ; ARM32: vcmp.f64 | 432 ; ARM32: vcmp.f64 |
| 420 ; ARM32: vmrs | 433 ; ARM32: vmrs |
| 421 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 434 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 422 ; ARM32: moveq [[R]], #1 | 435 ; ARM32: moveq [[R]], #1 |
| 423 ; MIPS32-LABEL: fcmpOeqDouble | 436 ; MIPS32-LABEL: fcmpOeqDouble |
| 424 ; MIPS32: c.eq.d | 437 ; MIPS32: c.eq.d |
| 425 ; MIPS32: movf | 438 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 439 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 426 | 440 |
| 427 define internal i32 @fcmpOgtFloat(float %a, float %b) { | 441 define internal i32 @fcmpOgtFloat(float %a, float %b) { |
| 428 entry: | 442 entry: |
| 429 %cmp = fcmp ogt float %a, %b | 443 %cmp = fcmp ogt float %a, %b |
| 430 %cmp.ret_ext = zext i1 %cmp to i32 | 444 %cmp.ret_ext = zext i1 %cmp to i32 |
| 431 ret i32 %cmp.ret_ext | 445 ret i32 %cmp.ret_ext |
| 432 } | 446 } |
| 433 ; CHECK-LABEL: fcmpOgtFloat | 447 ; CHECK-LABEL: fcmpOgtFloat |
| 434 ; CHECK: ucomiss | 448 ; CHECK: ucomiss |
| 435 ; CHECK: seta | 449 ; CHECK: seta |
| 436 ; ARM32-LABEL: fcmpOgtFloat | 450 ; ARM32-LABEL: fcmpOgtFloat |
| 437 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 451 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 438 ; ARM32: vcmp.f32 | 452 ; ARM32: vcmp.f32 |
| 439 ; ARM32: vmrs | 453 ; ARM32: vmrs |
| 440 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 454 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 441 ; ARM32: movgt [[R]], #1 | 455 ; ARM32: movgt [[R]], #1 |
| 442 ; MIPS32-LABEL: fcmpOgtFloat | 456 ; MIPS32-LABEL: fcmpOgtFloat |
| 443 ; MIPS32: c.ule.s | 457 ; MIPS32: c.ule.s |
| 444 ; MIPS32: movt | 458 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 459 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 445 | 460 |
| 446 define internal i32 @fcmpOgtDouble(double %a, double %b) { | 461 define internal i32 @fcmpOgtDouble(double %a, double %b) { |
| 447 entry: | 462 entry: |
| 448 %cmp = fcmp ogt double %a, %b | 463 %cmp = fcmp ogt double %a, %b |
| 449 %cmp.ret_ext = zext i1 %cmp to i32 | 464 %cmp.ret_ext = zext i1 %cmp to i32 |
| 450 ret i32 %cmp.ret_ext | 465 ret i32 %cmp.ret_ext |
| 451 } | 466 } |
| 452 ; CHECK-LABEL: fcmpOgtDouble | 467 ; CHECK-LABEL: fcmpOgtDouble |
| 453 ; CHECK: ucomisd | 468 ; CHECK: ucomisd |
| 454 ; CHECK: seta | 469 ; CHECK: seta |
| 455 ; ARM32-LABEL: fcmpOgtDouble | 470 ; ARM32-LABEL: fcmpOgtDouble |
| 456 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 471 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 457 ; ARM32: vcmp.f64 | 472 ; ARM32: vcmp.f64 |
| 458 ; ARM32: vmrs | 473 ; ARM32: vmrs |
| 459 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 474 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 460 ; ARM32: movgt [[R]], #1 | 475 ; ARM32: movgt [[R]], #1 |
| 461 ; MIPS32-LABEL: fcmpOgtDouble | 476 ; MIPS32-LABEL: fcmpOgtDouble |
| 462 ; MIPS32: c.ule.d | 477 ; MIPS32: c.ule.d |
| 463 ; MIPS32: movt | 478 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 479 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 464 | 480 |
| 465 define internal i32 @fcmpOgeFloat(float %a, float %b) { | 481 define internal i32 @fcmpOgeFloat(float %a, float %b) { |
| 466 entry: | 482 entry: |
| 467 %cmp = fcmp oge float %a, %b | 483 %cmp = fcmp oge float %a, %b |
| 468 %cmp.ret_ext = zext i1 %cmp to i32 | 484 %cmp.ret_ext = zext i1 %cmp to i32 |
| 469 ret i32 %cmp.ret_ext | 485 ret i32 %cmp.ret_ext |
| 470 } | 486 } |
| 471 ; CHECK-LABEL: fcmpOgeFloat | 487 ; CHECK-LABEL: fcmpOgeFloat |
| 472 ; CHECK: ucomiss | 488 ; CHECK: ucomiss |
| 473 ; CHECK: setae | 489 ; CHECK: setae |
| 474 ; ARM32-LABEL: fcmpOgeFloat | 490 ; ARM32-LABEL: fcmpOgeFloat |
| 475 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 491 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 476 ; ARM32: vcmp.f32 | 492 ; ARM32: vcmp.f32 |
| 477 ; ARM32: vmrs | 493 ; ARM32: vmrs |
| 478 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 494 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 479 ; ARM32: movge [[R]], #1 | 495 ; ARM32: movge [[R]], #1 |
| 480 ; MIPS32-LABEL: fcmpOgeFloat | 496 ; MIPS32-LABEL: fcmpOgeFloat |
| 481 ; MIPS32: c.ult.s | 497 ; MIPS32: c.ult.s |
| 482 ; MIPS32: movt | 498 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 499 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 483 | 500 |
| 484 define internal i32 @fcmpOgeDouble(double %a, double %b) { | 501 define internal i32 @fcmpOgeDouble(double %a, double %b) { |
| 485 entry: | 502 entry: |
| 486 %cmp = fcmp oge double %a, %b | 503 %cmp = fcmp oge double %a, %b |
| 487 %cmp.ret_ext = zext i1 %cmp to i32 | 504 %cmp.ret_ext = zext i1 %cmp to i32 |
| 488 ret i32 %cmp.ret_ext | 505 ret i32 %cmp.ret_ext |
| 489 } | 506 } |
| 490 ; CHECK-LABEL: fcmpOgeDouble | 507 ; CHECK-LABEL: fcmpOgeDouble |
| 491 ; CHECK: ucomisd | 508 ; CHECK: ucomisd |
| 492 ; CHECK: setae | 509 ; CHECK: setae |
| 493 ; ARM32-LABEL: fcmpOgeDouble | 510 ; ARM32-LABEL: fcmpOgeDouble |
| 494 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 511 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 495 ; ARM32: vcmp.f64 | 512 ; ARM32: vcmp.f64 |
| 496 ; ARM32: vmrs | 513 ; ARM32: vmrs |
| 497 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 514 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 498 ; ARM32: movge [[R]], #1 | 515 ; ARM32: movge [[R]], #1 |
| 499 ; MIPS32-LABEL: fcmpOgeDouble | 516 ; MIPS32-LABEL: fcmpOgeDouble |
| 500 ; MIPS32: c.ult.d | 517 ; MIPS32: c.ult.d |
| 501 ; MIPS32: movt | 518 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 519 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 502 | 520 |
| 503 define internal i32 @fcmpOltFloat(float %a, float %b) { | 521 define internal i32 @fcmpOltFloat(float %a, float %b) { |
| 504 entry: | 522 entry: |
| 505 %cmp = fcmp olt float %a, %b | 523 %cmp = fcmp olt float %a, %b |
| 506 %cmp.ret_ext = zext i1 %cmp to i32 | 524 %cmp.ret_ext = zext i1 %cmp to i32 |
| 507 ret i32 %cmp.ret_ext | 525 ret i32 %cmp.ret_ext |
| 508 } | 526 } |
| 509 ; CHECK-LABEL: fcmpOltFloat | 527 ; CHECK-LABEL: fcmpOltFloat |
| 510 ; CHECK: ucomiss | 528 ; CHECK: ucomiss |
| 511 ; CHECK: seta | 529 ; CHECK: seta |
| 512 ; ARM32-LABEL: fcmpOltFloat | 530 ; ARM32-LABEL: fcmpOltFloat |
| 513 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 531 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 514 ; ARM32: vcmp.f32 | 532 ; ARM32: vcmp.f32 |
| 515 ; ARM32: vmrs | 533 ; ARM32: vmrs |
| 516 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 534 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 517 ; ARM32: movmi [[R]], #1 | 535 ; ARM32: movmi [[R]], #1 |
| 518 ; MIPS32-LABEL: fcmpOltFloat | 536 ; MIPS32-LABEL: fcmpOltFloat |
| 519 ; MIPS32: c.olt.s | 537 ; MIPS32: c.olt.s |
| 520 ; MIPS32: movf | 538 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 539 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 521 | 540 |
| 522 define internal i32 @fcmpOltDouble(double %a, double %b) { | 541 define internal i32 @fcmpOltDouble(double %a, double %b) { |
| 523 entry: | 542 entry: |
| 524 %cmp = fcmp olt double %a, %b | 543 %cmp = fcmp olt double %a, %b |
| 525 %cmp.ret_ext = zext i1 %cmp to i32 | 544 %cmp.ret_ext = zext i1 %cmp to i32 |
| 526 ret i32 %cmp.ret_ext | 545 ret i32 %cmp.ret_ext |
| 527 } | 546 } |
| 528 ; CHECK-LABEL: fcmpOltDouble | 547 ; CHECK-LABEL: fcmpOltDouble |
| 529 ; CHECK: ucomisd | 548 ; CHECK: ucomisd |
| 530 ; CHECK: seta | 549 ; CHECK: seta |
| 531 ; ARM32-LABEL: fcmpOltDouble | 550 ; ARM32-LABEL: fcmpOltDouble |
| 532 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 551 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 533 ; ARM32: vcmp.f64 | 552 ; ARM32: vcmp.f64 |
| 534 ; ARM32: vmrs | 553 ; ARM32: vmrs |
| 535 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 554 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 536 ; ARM32: movmi [[R]], #1 | 555 ; ARM32: movmi [[R]], #1 |
| 537 ; MIPS32-LABEL: fcmpOltDouble | 556 ; MIPS32-LABEL: fcmpOltDouble |
| 538 ; MIPS32: c.olt.d | 557 ; MIPS32: c.olt.d |
| 539 ; MIPS32: movf | 558 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 559 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 540 | 560 |
| 541 define internal i32 @fcmpOleFloat(float %a, float %b) { | 561 define internal i32 @fcmpOleFloat(float %a, float %b) { |
| 542 entry: | 562 entry: |
| 543 %cmp = fcmp ole float %a, %b | 563 %cmp = fcmp ole float %a, %b |
| 544 %cmp.ret_ext = zext i1 %cmp to i32 | 564 %cmp.ret_ext = zext i1 %cmp to i32 |
| 545 ret i32 %cmp.ret_ext | 565 ret i32 %cmp.ret_ext |
| 546 } | 566 } |
| 547 ; CHECK-LABEL: fcmpOleFloat | 567 ; CHECK-LABEL: fcmpOleFloat |
| 548 ; CHECK: ucomiss | 568 ; CHECK: ucomiss |
| 549 ; CHECK: setae | 569 ; CHECK: setae |
| 550 ; ARM32-LABEL: fcmpOleFloat | 570 ; ARM32-LABEL: fcmpOleFloat |
| 551 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 571 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 552 ; ARM32: vcmp.f32 | 572 ; ARM32: vcmp.f32 |
| 553 ; ARM32: vmrs | 573 ; ARM32: vmrs |
| 554 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 574 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 555 ; ARM32: movls [[R]], #1 | 575 ; ARM32: movls [[R]], #1 |
| 556 ; MIPS32-LABEL: fcmpOleFloat | 576 ; MIPS32-LABEL: fcmpOleFloat |
| 557 ; MIPS32: c.ole.s | 577 ; MIPS32: c.ole.s |
| 558 ; MIPS32: movf | 578 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 579 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 559 | 580 |
| 560 define internal i32 @fcmpOleDouble(double %a, double %b) { | 581 define internal i32 @fcmpOleDouble(double %a, double %b) { |
| 561 entry: | 582 entry: |
| 562 %cmp = fcmp ole double %a, %b | 583 %cmp = fcmp ole double %a, %b |
| 563 %cmp.ret_ext = zext i1 %cmp to i32 | 584 %cmp.ret_ext = zext i1 %cmp to i32 |
| 564 ret i32 %cmp.ret_ext | 585 ret i32 %cmp.ret_ext |
| 565 } | 586 } |
| 566 ; CHECK-LABEL: fcmpOleDouble | 587 ; CHECK-LABEL: fcmpOleDouble |
| 567 ; CHECK: ucomisd | 588 ; CHECK: ucomisd |
| 568 ; CHECK: setae | 589 ; CHECK: setae |
| 569 ; ARM32-LABEL: fcmpOleDouble | 590 ; ARM32-LABEL: fcmpOleDouble |
| 570 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 591 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 571 ; ARM32: vcmp.f64 | 592 ; ARM32: vcmp.f64 |
| 572 ; ARM32: vmrs | 593 ; ARM32: vmrs |
| 573 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 594 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 574 ; ARM32: movls [[R]], #1 | 595 ; ARM32: movls [[R]], #1 |
| 575 ; MIPS32-LABEL: fcmpOleDouble | 596 ; MIPS32-LABEL: fcmpOleDouble |
| 576 ; MIPS32: c.ole.d | 597 ; MIPS32: c.ole.d |
| 577 ; MIPS32: movf | 598 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 599 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 578 | 600 |
| 579 define internal i32 @fcmpOneFloat(float %a, float %b) { | 601 define internal i32 @fcmpOneFloat(float %a, float %b) { |
| 580 entry: | 602 entry: |
| 581 %cmp = fcmp one float %a, %b | 603 %cmp = fcmp one float %a, %b |
| 582 %cmp.ret_ext = zext i1 %cmp to i32 | 604 %cmp.ret_ext = zext i1 %cmp to i32 |
| 583 ret i32 %cmp.ret_ext | 605 ret i32 %cmp.ret_ext |
| 584 } | 606 } |
| 585 ; CHECK-LABEL: fcmpOneFloat | 607 ; CHECK-LABEL: fcmpOneFloat |
| 586 ; CHECK: ucomiss | 608 ; CHECK: ucomiss |
| 587 ; CHECK: setne | 609 ; CHECK: setne |
| 588 ; ARM32-LABEL: fcmpOneFloat | 610 ; ARM32-LABEL: fcmpOneFloat |
| 589 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 611 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 590 ; ARM32: vcmp.f32 | 612 ; ARM32: vcmp.f32 |
| 591 ; ARM32: vmrs | 613 ; ARM32: vmrs |
| 592 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 614 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 593 ; ARM32: movmi [[R]], #1 | 615 ; ARM32: movmi [[R]], #1 |
| 594 ; ARM32: movgt [[R]], #1 | 616 ; ARM32: movgt [[R]], #1 |
| 595 ; MIPS32-LABEL: fcmpOneFloat | 617 ; MIPS32-LABEL: fcmpOneFloat |
| 596 ; MIPS32: c.ueq.s | 618 ; MIPS32: c.ueq.s |
| 597 ; MIPS32: movt | 619 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 620 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 598 | 621 |
| 599 define internal i32 @fcmpOneDouble(double %a, double %b) { | 622 define internal i32 @fcmpOneDouble(double %a, double %b) { |
| 600 entry: | 623 entry: |
| 601 %cmp = fcmp one double %a, %b | 624 %cmp = fcmp one double %a, %b |
| 602 %cmp.ret_ext = zext i1 %cmp to i32 | 625 %cmp.ret_ext = zext i1 %cmp to i32 |
| 603 ret i32 %cmp.ret_ext | 626 ret i32 %cmp.ret_ext |
| 604 } | 627 } |
| 605 ; CHECK-LABEL: fcmpOneDouble | 628 ; CHECK-LABEL: fcmpOneDouble |
| 606 ; CHECK: ucomisd | 629 ; CHECK: ucomisd |
| 607 ; CHECK: setne | 630 ; CHECK: setne |
| 608 ; ARM32-LABEL: fcmpOneDouble | 631 ; ARM32-LABEL: fcmpOneDouble |
| 609 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 632 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 610 ; ARM32: vcmp.f64 | 633 ; ARM32: vcmp.f64 |
| 611 ; ARM32: vmrs | 634 ; ARM32: vmrs |
| 612 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 635 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 613 ; ARM32: movmi [[R]], #1 | 636 ; ARM32: movmi [[R]], #1 |
| 614 ; ARM32: movgt [[R]], #1 | 637 ; ARM32: movgt [[R]], #1 |
| 615 ; MIPS32-LABEL: fcmpOneDouble | 638 ; MIPS32-LABEL: fcmpOneDouble |
| 616 ; MIPS32: c.ueq.d | 639 ; MIPS32: c.ueq.d |
| 617 ; MIPS32: movt | 640 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 641 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 618 | 642 |
| 619 define internal i32 @fcmpOrdFloat(float %a, float %b) { | 643 define internal i32 @fcmpOrdFloat(float %a, float %b) { |
| 620 entry: | 644 entry: |
| 621 %cmp = fcmp ord float %a, %b | 645 %cmp = fcmp ord float %a, %b |
| 622 %cmp.ret_ext = zext i1 %cmp to i32 | 646 %cmp.ret_ext = zext i1 %cmp to i32 |
| 623 ret i32 %cmp.ret_ext | 647 ret i32 %cmp.ret_ext |
| 624 } | 648 } |
| 625 ; CHECK-LABEL: fcmpOrdFloat | 649 ; CHECK-LABEL: fcmpOrdFloat |
| 626 ; CHECK: ucomiss | 650 ; CHECK: ucomiss |
| 627 ; CHECK: setnp | 651 ; CHECK: setnp |
| 628 ; ARM32-LABEL: fcmpOrdFloat | 652 ; ARM32-LABEL: fcmpOrdFloat |
| 629 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 653 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 630 ; ARM32: vcmp.f32 | 654 ; ARM32: vcmp.f32 |
| 631 ; ARM32: vmrs | 655 ; ARM32: vmrs |
| 632 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 656 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 633 ; ARM32: movvc [[R]], #1 | 657 ; ARM32: movvc [[R]], #1 |
| 634 ; MIPS32-LABEL: fcmpOrdFloat | 658 ; MIPS32-LABEL: fcmpOrdFloat |
| 635 ; MIPS32: c.un.s | 659 ; MIPS32: c.un.s |
| 636 ; MIPS32: movt | 660 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 661 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 637 | 662 |
| 638 define internal i32 @fcmpOrdDouble(double %a, double %b) { | 663 define internal i32 @fcmpOrdDouble(double %a, double %b) { |
| 639 entry: | 664 entry: |
| 640 %cmp = fcmp ord double %a, %b | 665 %cmp = fcmp ord double %a, %b |
| 641 %cmp.ret_ext = zext i1 %cmp to i32 | 666 %cmp.ret_ext = zext i1 %cmp to i32 |
| 642 ret i32 %cmp.ret_ext | 667 ret i32 %cmp.ret_ext |
| 643 } | 668 } |
| 644 ; CHECK-LABEL: fcmpOrdDouble | 669 ; CHECK-LABEL: fcmpOrdDouble |
| 645 ; CHECK: ucomisd | 670 ; CHECK: ucomisd |
| 646 ; CHECK: setnp | 671 ; CHECK: setnp |
| 647 ; ARM32-LABEL: fcmpOrdDouble | 672 ; ARM32-LABEL: fcmpOrdDouble |
| 648 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 673 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 649 ; ARM32: vcmp.f64 | 674 ; ARM32: vcmp.f64 |
| 650 ; ARM32: vmrs | 675 ; ARM32: vmrs |
| 651 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 676 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 652 ; ARM32: movvc [[R]], #1 | 677 ; ARM32: movvc [[R]], #1 |
| 653 ; MIPS32-LABEL: fcmpOrdDouble | 678 ; MIPS32-LABEL: fcmpOrdDouble |
| 654 ; MIPS32: c.un.d | 679 ; MIPS32: c.un.d |
| 655 ; MIPS32: movt | 680 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 681 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 656 | 682 |
| 657 define internal i32 @fcmpUeqFloat(float %a, float %b) { | 683 define internal i32 @fcmpUeqFloat(float %a, float %b) { |
| 658 entry: | 684 entry: |
| 659 %cmp = fcmp ueq float %a, %b | 685 %cmp = fcmp ueq float %a, %b |
| 660 %cmp.ret_ext = zext i1 %cmp to i32 | 686 %cmp.ret_ext = zext i1 %cmp to i32 |
| 661 ret i32 %cmp.ret_ext | 687 ret i32 %cmp.ret_ext |
| 662 } | 688 } |
| 663 ; CHECK-LABEL: fcmpUeqFloat | 689 ; CHECK-LABEL: fcmpUeqFloat |
| 664 ; CHECK: ucomiss | 690 ; CHECK: ucomiss |
| 665 ; CHECK: sete | 691 ; CHECK: sete |
| 666 ; ARM32-LABEL: fcmpUeqFloat | 692 ; ARM32-LABEL: fcmpUeqFloat |
| 667 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 693 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 668 ; ARM32: vcmp.f32 | 694 ; ARM32: vcmp.f32 |
| 669 ; ARM32: vmrs | 695 ; ARM32: vmrs |
| 670 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 696 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 671 ; ARM32: moveq [[R]], #1 | 697 ; ARM32: moveq [[R]], #1 |
| 672 ; ARM32: movvs [[R]], #1 | 698 ; ARM32: movvs [[R]], #1 |
| 673 ; MIPS32-LABEL: fcmpUeqFloat | 699 ; MIPS32-LABEL: fcmpUeqFloat |
| 674 ; MIPS32: c.ueq.s | 700 ; MIPS32: c.ueq.s |
| 675 ; MIPS32: movf | 701 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 702 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 676 | 703 |
| 677 define internal i32 @fcmpUeqDouble(double %a, double %b) { | 704 define internal i32 @fcmpUeqDouble(double %a, double %b) { |
| 678 entry: | 705 entry: |
| 679 %cmp = fcmp ueq double %a, %b | 706 %cmp = fcmp ueq double %a, %b |
| 680 %cmp.ret_ext = zext i1 %cmp to i32 | 707 %cmp.ret_ext = zext i1 %cmp to i32 |
| 681 ret i32 %cmp.ret_ext | 708 ret i32 %cmp.ret_ext |
| 682 } | 709 } |
| 683 ; CHECK-LABEL: fcmpUeqDouble | 710 ; CHECK-LABEL: fcmpUeqDouble |
| 684 ; CHECK: ucomisd | 711 ; CHECK: ucomisd |
| 685 ; CHECK: sete | 712 ; CHECK: sete |
| 686 ; ARM32-LABEL: fcmpUeqDouble | 713 ; ARM32-LABEL: fcmpUeqDouble |
| 687 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 714 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 688 ; ARM32: vcmp.f64 | 715 ; ARM32: vcmp.f64 |
| 689 ; ARM32: vmrs | 716 ; ARM32: vmrs |
| 690 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 717 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 691 ; ARM32: moveq [[R]], #1 | 718 ; ARM32: moveq [[R]], #1 |
| 692 ; ARM32: movvs [[R]], #1 | 719 ; ARM32: movvs [[R]], #1 |
| 693 ; MIPS32-LABEL: fcmpUeqDouble | 720 ; MIPS32-LABEL: fcmpUeqDouble |
| 694 ; MIPS32: c.ueq.d | 721 ; MIPS32: c.ueq.d |
| 695 ; MIPS32: movf | 722 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 723 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 696 | 724 |
| 697 define internal i32 @fcmpUgtFloat(float %a, float %b) { | 725 define internal i32 @fcmpUgtFloat(float %a, float %b) { |
| 698 entry: | 726 entry: |
| 699 %cmp = fcmp ugt float %a, %b | 727 %cmp = fcmp ugt float %a, %b |
| 700 %cmp.ret_ext = zext i1 %cmp to i32 | 728 %cmp.ret_ext = zext i1 %cmp to i32 |
| 701 ret i32 %cmp.ret_ext | 729 ret i32 %cmp.ret_ext |
| 702 } | 730 } |
| 703 ; CHECK-LABEL: fcmpUgtFloat | 731 ; CHECK-LABEL: fcmpUgtFloat |
| 704 ; CHECK: ucomiss | 732 ; CHECK: ucomiss |
| 705 ; CHECK: setb | 733 ; CHECK: setb |
| 706 ; ARM32-LABEL: fcmpUgtFloat | 734 ; ARM32-LABEL: fcmpUgtFloat |
| 707 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 735 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 708 ; ARM32: vcmp.f32 | 736 ; ARM32: vcmp.f32 |
| 709 ; ARM32: vmrs | 737 ; ARM32: vmrs |
| 710 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 738 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 711 ; ARM32: movhi [[R]], #1 | 739 ; ARM32: movhi [[R]], #1 |
| 712 ; MIPS32-LABEL: fcmpUgtFloat | 740 ; MIPS32-LABEL: fcmpUgtFloat |
| 713 ; MIPS32: c.ole.s | 741 ; MIPS32: c.ole.s |
| 714 ; MIPS32: movt | 742 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 743 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 715 | 744 |
| 716 define internal i32 @fcmpUgtDouble(double %a, double %b) { | 745 define internal i32 @fcmpUgtDouble(double %a, double %b) { |
| 717 entry: | 746 entry: |
| 718 %cmp = fcmp ugt double %a, %b | 747 %cmp = fcmp ugt double %a, %b |
| 719 %cmp.ret_ext = zext i1 %cmp to i32 | 748 %cmp.ret_ext = zext i1 %cmp to i32 |
| 720 ret i32 %cmp.ret_ext | 749 ret i32 %cmp.ret_ext |
| 721 } | 750 } |
| 722 ; CHECK-LABEL: fcmpUgtDouble | 751 ; CHECK-LABEL: fcmpUgtDouble |
| 723 ; CHECK: ucomisd | 752 ; CHECK: ucomisd |
| 724 ; CHECK: setb | 753 ; CHECK: setb |
| 725 ; ARM32-LABEL: fcmpUgtDouble | 754 ; ARM32-LABEL: fcmpUgtDouble |
| 726 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 755 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 727 ; ARM32: vcmp.f64 | 756 ; ARM32: vcmp.f64 |
| 728 ; ARM32: vmrs | 757 ; ARM32: vmrs |
| 729 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 758 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 730 ; ARM32: movhi [[R]], #1 | 759 ; ARM32: movhi [[R]], #1 |
| 731 ; MIPS32-LABEL: fcmpUgtDouble | 760 ; MIPS32-LABEL: fcmpUgtDouble |
| 732 ; MIPS32: c.ole.d | 761 ; MIPS32: c.ole.d |
| 733 ; MIPS32: movt | 762 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 763 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 734 | 764 |
| 735 define internal i32 @fcmpUgeFloat(float %a, float %b) { | 765 define internal i32 @fcmpUgeFloat(float %a, float %b) { |
| 736 entry: | 766 entry: |
| 737 %cmp = fcmp uge float %a, %b | 767 %cmp = fcmp uge float %a, %b |
| 738 %cmp.ret_ext = zext i1 %cmp to i32 | 768 %cmp.ret_ext = zext i1 %cmp to i32 |
| 739 ret i32 %cmp.ret_ext | 769 ret i32 %cmp.ret_ext |
| 740 } | 770 } |
| 741 ; CHECK-LABEL: fcmpUgeFloat | 771 ; CHECK-LABEL: fcmpUgeFloat |
| 742 ; CHECK: ucomiss | 772 ; CHECK: ucomiss |
| 743 ; CHECK: setbe | 773 ; CHECK: setbe |
| 744 ; ARM32-LABEL: fcmpUgeFloat | 774 ; ARM32-LABEL: fcmpUgeFloat |
| 745 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 775 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 746 ; ARM32: vcmp.f32 | 776 ; ARM32: vcmp.f32 |
| 747 ; ARM32: vmrs | 777 ; ARM32: vmrs |
| 748 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 778 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 749 ; ARM32: movpl [[R]], #1 | 779 ; ARM32: movpl [[R]], #1 |
| 750 ; MIPS32-LABEL: fcmpUgeFloat | 780 ; MIPS32-LABEL: fcmpUgeFloat |
| 751 ; MIPS32: c.olt.s | 781 ; MIPS32: c.olt.s |
| 752 ; MIPS32: movt | 782 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 783 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 753 | 784 |
| 754 define internal i32 @fcmpUgeDouble(double %a, double %b) { | 785 define internal i32 @fcmpUgeDouble(double %a, double %b) { |
| 755 entry: | 786 entry: |
| 756 %cmp = fcmp uge double %a, %b | 787 %cmp = fcmp uge double %a, %b |
| 757 %cmp.ret_ext = zext i1 %cmp to i32 | 788 %cmp.ret_ext = zext i1 %cmp to i32 |
| 758 ret i32 %cmp.ret_ext | 789 ret i32 %cmp.ret_ext |
| 759 } | 790 } |
| 760 ; CHECK-LABEL: fcmpUgeDouble | 791 ; CHECK-LABEL: fcmpUgeDouble |
| 761 ; CHECK: ucomisd | 792 ; CHECK: ucomisd |
| 762 ; CHECK: setbe | 793 ; CHECK: setbe |
| 763 ; ARM32-LABEL: fcmpUgeDouble | 794 ; ARM32-LABEL: fcmpUgeDouble |
| 764 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 795 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 765 ; ARM32: vcmp.f64 | 796 ; ARM32: vcmp.f64 |
| 766 ; ARM32: vmrs | 797 ; ARM32: vmrs |
| 767 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 798 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 768 ; ARM32: movpl [[R]], #1 | 799 ; ARM32: movpl [[R]], #1 |
| 769 ; MIPS32-LABEL: fcmpUgeDouble | 800 ; MIPS32-LABEL: fcmpUgeDouble |
| 770 ; MIPS32: c.olt.d | 801 ; MIPS32: c.olt.d |
| 771 ; MIPS32: movt | 802 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 803 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 772 | 804 |
| 773 define internal i32 @fcmpUltFloat(float %a, float %b) { | 805 define internal i32 @fcmpUltFloat(float %a, float %b) { |
| 774 entry: | 806 entry: |
| 775 %cmp = fcmp ult float %a, %b | 807 %cmp = fcmp ult float %a, %b |
| 776 %cmp.ret_ext = zext i1 %cmp to i32 | 808 %cmp.ret_ext = zext i1 %cmp to i32 |
| 777 ret i32 %cmp.ret_ext | 809 ret i32 %cmp.ret_ext |
| 778 } | 810 } |
| 779 ; CHECK-LABEL: fcmpUltFloat | 811 ; CHECK-LABEL: fcmpUltFloat |
| 780 ; CHECK: ucomiss | 812 ; CHECK: ucomiss |
| 781 ; CHECK: setb | 813 ; CHECK: setb |
| 782 ; ARM32-LABEL: fcmpUltFloat | 814 ; ARM32-LABEL: fcmpUltFloat |
| 783 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 815 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 784 ; ARM32: vcmp.f32 | 816 ; ARM32: vcmp.f32 |
| 785 ; ARM32: vmrs | 817 ; ARM32: vmrs |
| 786 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 818 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 787 ; ARM32: movlt [[R]], #1 | 819 ; ARM32: movlt [[R]], #1 |
| 788 ; MIPS32-LABEL: fcmpUltFloat | 820 ; MIPS32-LABEL: fcmpUltFloat |
| 789 ; MIPS32: c.ult.s | 821 ; MIPS32: c.ult.s |
| 790 ; MIPS32: movf | 822 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 823 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 791 | 824 |
| 792 define internal i32 @fcmpUltDouble(double %a, double %b) { | 825 define internal i32 @fcmpUltDouble(double %a, double %b) { |
| 793 entry: | 826 entry: |
| 794 %cmp = fcmp ult double %a, %b | 827 %cmp = fcmp ult double %a, %b |
| 795 %cmp.ret_ext = zext i1 %cmp to i32 | 828 %cmp.ret_ext = zext i1 %cmp to i32 |
| 796 ret i32 %cmp.ret_ext | 829 ret i32 %cmp.ret_ext |
| 797 } | 830 } |
| 798 ; CHECK-LABEL: fcmpUltDouble | 831 ; CHECK-LABEL: fcmpUltDouble |
| 799 ; CHECK: ucomisd | 832 ; CHECK: ucomisd |
| 800 ; CHECK: setb | 833 ; CHECK: setb |
| 801 ; ARM32-LABEL: fcmpUltDouble | 834 ; ARM32-LABEL: fcmpUltDouble |
| 802 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 835 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 803 ; ARM32: vcmp.f64 | 836 ; ARM32: vcmp.f64 |
| 804 ; ARM32: vmrs | 837 ; ARM32: vmrs |
| 805 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 838 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 806 ; ARM32: movlt [[R]], #1 | 839 ; ARM32: movlt [[R]], #1 |
| 807 ; MIPS32-LABEL: fcmpUltDouble | 840 ; MIPS32-LABEL: fcmpUltDouble |
| 808 ; MIPS32: c.ult.d | 841 ; MIPS32: c.ult.d |
| 809 ; MIPS32: movf | 842 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 843 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 810 | 844 |
| 811 define internal i32 @fcmpUleFloat(float %a, float %b) { | 845 define internal i32 @fcmpUleFloat(float %a, float %b) { |
| 812 entry: | 846 entry: |
| 813 %cmp = fcmp ule float %a, %b | 847 %cmp = fcmp ule float %a, %b |
| 814 %cmp.ret_ext = zext i1 %cmp to i32 | 848 %cmp.ret_ext = zext i1 %cmp to i32 |
| 815 ret i32 %cmp.ret_ext | 849 ret i32 %cmp.ret_ext |
| 816 } | 850 } |
| 817 ; CHECK-LABEL: fcmpUleFloat | 851 ; CHECK-LABEL: fcmpUleFloat |
| 818 ; CHECK: ucomiss | 852 ; CHECK: ucomiss |
| 819 ; CHECK: setbe | 853 ; CHECK: setbe |
| 820 ; ARM32-LABEL: fcmpUleFloat | 854 ; ARM32-LABEL: fcmpUleFloat |
| 821 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 855 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 822 ; ARM32: vcmp.f32 | 856 ; ARM32: vcmp.f32 |
| 823 ; ARM32: vmrs | 857 ; ARM32: vmrs |
| 824 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 858 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 825 ; ARM32: movle [[R]], #1 | 859 ; ARM32: movle [[R]], #1 |
| 826 ; MIPS32-LABEL: fcmpUleFloat | 860 ; MIPS32-LABEL: fcmpUleFloat |
| 827 ; MIPS32: c.ule.s | 861 ; MIPS32: c.ule.s |
| 828 ; MIPS32: movf | 862 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 863 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 829 | 864 |
| 830 define internal i32 @fcmpUleDouble(double %a, double %b) { | 865 define internal i32 @fcmpUleDouble(double %a, double %b) { |
| 831 entry: | 866 entry: |
| 832 %cmp = fcmp ule double %a, %b | 867 %cmp = fcmp ule double %a, %b |
| 833 %cmp.ret_ext = zext i1 %cmp to i32 | 868 %cmp.ret_ext = zext i1 %cmp to i32 |
| 834 ret i32 %cmp.ret_ext | 869 ret i32 %cmp.ret_ext |
| 835 } | 870 } |
| 836 ; CHECK-LABEL: fcmpUleDouble | 871 ; CHECK-LABEL: fcmpUleDouble |
| 837 ; CHECK: ucomisd | 872 ; CHECK: ucomisd |
| 838 ; CHECK: setbe | 873 ; CHECK: setbe |
| 839 ; ARM32-LABEL: fcmpUleDouble | 874 ; ARM32-LABEL: fcmpUleDouble |
| 840 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 875 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 841 ; ARM32: vcmp.f64 | 876 ; ARM32: vcmp.f64 |
| 842 ; ARM32: vmrs | 877 ; ARM32: vmrs |
| 843 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 878 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 844 ; ARM32: movle [[R]], #1 | 879 ; ARM32: movle [[R]], #1 |
| 845 ; MIPS32-LABEL: fcmpUleDouble | 880 ; MIPS32-LABEL: fcmpUleDouble |
| 846 ; MIPS32: c.ule.d | 881 ; MIPS32: c.ule.d |
| 847 ; MIPS32: movf | 882 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 883 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 848 | 884 |
| 849 define internal i32 @fcmpUneFloat(float %a, float %b) { | 885 define internal i32 @fcmpUneFloat(float %a, float %b) { |
| 850 entry: | 886 entry: |
| 851 %cmp = fcmp une float %a, %b | 887 %cmp = fcmp une float %a, %b |
| 852 %cmp.ret_ext = zext i1 %cmp to i32 | 888 %cmp.ret_ext = zext i1 %cmp to i32 |
| 853 ret i32 %cmp.ret_ext | 889 ret i32 %cmp.ret_ext |
| 854 } | 890 } |
| 855 ; CHECK-LABEL: fcmpUneFloat | 891 ; CHECK-LABEL: fcmpUneFloat |
| 856 ; CHECK: ucomiss | 892 ; CHECK: ucomiss |
| 857 ; CHECK: jne | 893 ; CHECK: jne |
| 858 ; CHECK: jp | 894 ; CHECK: jp |
| 859 ; ARM32-LABEL: fcmpUneFloat | 895 ; ARM32-LABEL: fcmpUneFloat |
| 860 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 896 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 861 ; ARM32: vcmp.f32 | 897 ; ARM32: vcmp.f32 |
| 862 ; ARM32: vmrs | 898 ; ARM32: vmrs |
| 863 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 899 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 864 ; ARM32: movne [[R]], #1 | 900 ; ARM32: movne [[R]], #1 |
| 865 ; MIPS32-LABEL: fcmpUneFloat | 901 ; MIPS32-LABEL: fcmpUneFloat |
| 866 ; MIPS32: c.eq.s | 902 ; MIPS32: c.eq.s |
| 867 ; MIPS32: movt | 903 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 904 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 868 | 905 |
| 869 define internal i32 @fcmpUneDouble(double %a, double %b) { | 906 define internal i32 @fcmpUneDouble(double %a, double %b) { |
| 870 entry: | 907 entry: |
| 871 %cmp = fcmp une double %a, %b | 908 %cmp = fcmp une double %a, %b |
| 872 %cmp.ret_ext = zext i1 %cmp to i32 | 909 %cmp.ret_ext = zext i1 %cmp to i32 |
| 873 ret i32 %cmp.ret_ext | 910 ret i32 %cmp.ret_ext |
| 874 } | 911 } |
| 875 ; CHECK-LABEL: fcmpUneDouble | 912 ; CHECK-LABEL: fcmpUneDouble |
| 876 ; CHECK: ucomisd | 913 ; CHECK: ucomisd |
| 877 ; CHECK: jne | 914 ; CHECK: jne |
| 878 ; CHECK: jp | 915 ; CHECK: jp |
| 879 ; ARM32-LABEL: fcmpUneDouble | 916 ; ARM32-LABEL: fcmpUneDouble |
| 880 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 917 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 881 ; ARM32: vcmp.f64 | 918 ; ARM32: vcmp.f64 |
| 882 ; ARM32: vmrs | 919 ; ARM32: vmrs |
| 883 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 920 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 884 ; ARM32: movne [[R]], #1 | 921 ; ARM32: movne [[R]], #1 |
| 885 ; MIPS32-LABEL: fcmpUneDouble | 922 ; MIPS32-LABEL: fcmpUneDouble |
| 886 ; MIPS32: c.eq.d | 923 ; MIPS32: c.eq.d |
| 887 ; MIPS32: movt | 924 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 925 ; MIPS32: movt [[REG]], $zero, {{.*}} |
| 888 | 926 |
| 889 define internal i32 @fcmpUnoFloat(float %a, float %b) { | 927 define internal i32 @fcmpUnoFloat(float %a, float %b) { |
| 890 entry: | 928 entry: |
| 891 %cmp = fcmp uno float %a, %b | 929 %cmp = fcmp uno float %a, %b |
| 892 %cmp.ret_ext = zext i1 %cmp to i32 | 930 %cmp.ret_ext = zext i1 %cmp to i32 |
| 893 ret i32 %cmp.ret_ext | 931 ret i32 %cmp.ret_ext |
| 894 } | 932 } |
| 895 ; CHECK-LABEL: fcmpUnoFloat | 933 ; CHECK-LABEL: fcmpUnoFloat |
| 896 ; CHECK: ucomiss | 934 ; CHECK: ucomiss |
| 897 ; CHECK: setp | 935 ; CHECK: setp |
| 898 ; ARM32-LABEL: fcmpUnoFloat | 936 ; ARM32-LABEL: fcmpUnoFloat |
| 899 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 937 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 900 ; ARM32: vcmp.f32 | 938 ; ARM32: vcmp.f32 |
| 901 ; ARM32: vmrs | 939 ; ARM32: vmrs |
| 902 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 940 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 903 ; ARM32: movvs [[R]], #1 | 941 ; ARM32: movvs [[R]], #1 |
| 904 ; MIPS32-LABEL: fcmpUnoFloat | 942 ; MIPS32-LABEL: fcmpUnoFloat |
| 905 ; MIPS32: c.un.s | 943 ; MIPS32: c.un.s |
| 906 ; MIPS32: movf | 944 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 945 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 907 | 946 |
| 908 define internal i32 @fcmpUnoDouble(double %a, double %b) { | 947 define internal i32 @fcmpUnoDouble(double %a, double %b) { |
| 909 entry: | 948 entry: |
| 910 %cmp = fcmp uno double %a, %b | 949 %cmp = fcmp uno double %a, %b |
| 911 %cmp.ret_ext = zext i1 %cmp to i32 | 950 %cmp.ret_ext = zext i1 %cmp to i32 |
| 912 ret i32 %cmp.ret_ext | 951 ret i32 %cmp.ret_ext |
| 913 } | 952 } |
| 914 ; CHECK-LABEL: fcmpUnoDouble | 953 ; CHECK-LABEL: fcmpUnoDouble |
| 915 ; CHECK: ucomisd | 954 ; CHECK: ucomisd |
| 916 ; CHECK: setp | 955 ; CHECK: setp |
| 917 ; ARM32-LABEL: fcmpUnoDouble | 956 ; ARM32-LABEL: fcmpUnoDouble |
| 918 ; ARM32-O2: mov [[R:r[0-9]+]], #0 | 957 ; ARM32-O2: mov [[R:r[0-9]+]], #0 |
| 919 ; ARM32: vcmp.f64 | 958 ; ARM32: vcmp.f64 |
| 920 ; ARM32: vmrs | 959 ; ARM32: vmrs |
| 921 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 | 960 ; ARM32-OM1: mov [[R:r[0-9]+]], #0 |
| 922 ; ARM32: movvs [[R]], #1 | 961 ; ARM32: movvs [[R]], #1 |
| 923 ; MIPS32-LABEL: fcmpUnoDouble | 962 ; MIPS32-LABEL: fcmpUnoDouble |
| 924 ; MIPS32: c.un.d | 963 ; MIPS32: c.un.d |
| 925 ; MIPS32: movf | 964 ; MIPS32: addiu [[REG:.*]], $zero, 1 |
| 965 ; MIPS32: movf [[REG]], $zero, {{.*}} |
| 926 | 966 |
| 927 define internal i32 @fcmpTrueFloat(float %a, float %b) { | 967 define internal i32 @fcmpTrueFloat(float %a, float %b) { |
| 928 entry: | 968 entry: |
| 929 %cmp = fcmp true float %a, %b | 969 %cmp = fcmp true float %a, %b |
| 930 %cmp.ret_ext = zext i1 %cmp to i32 | 970 %cmp.ret_ext = zext i1 %cmp to i32 |
| 931 ret i32 %cmp.ret_ext | 971 ret i32 %cmp.ret_ext |
| 932 } | 972 } |
| 933 ; CHECK-LABEL: fcmpTrueFloat | 973 ; CHECK-LABEL: fcmpTrueFloat |
| 934 ; CHECK: mov {{.*}},0x1 | 974 ; CHECK: mov {{.*}},0x1 |
| 935 ; ARM32-LABEL: fcmpTrueFloat | 975 ; ARM32-LABEL: fcmpTrueFloat |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 984 ; CHECK: ja | 1024 ; CHECK: ja |
| 985 ; CHECK: movsd | 1025 ; CHECK: movsd |
| 986 ; ARM32-LABEL: selectDoubleVarVar | 1026 ; ARM32-LABEL: selectDoubleVarVar |
| 987 ; ARM32: vcmp.f64 | 1027 ; ARM32: vcmp.f64 |
| 988 ; ARM32-OM1: vmovne.f64 d{{[0-9]+}} | 1028 ; ARM32-OM1: vmovne.f64 d{{[0-9]+}} |
| 989 ; ARM32-O2: vmovmi.f64 d{{[0-9]+}} | 1029 ; ARM32-O2: vmovmi.f64 d{{[0-9]+}} |
| 990 ; ARM32: bx | 1030 ; ARM32: bx |
| 991 ; MIPS32-LABEL: selectDoubleVarVar | 1031 ; MIPS32-LABEL: selectDoubleVarVar |
| 992 ; MIPS32: movn.d {{.*}} | 1032 ; MIPS32: movn.d {{.*}} |
| 993 ; MIPS32: mov.d {{.*}} | 1033 ; MIPS32: mov.d {{.*}} |
| OLD | NEW |