1584 lines · plain
1# RUN: llc -debugify-and-strip-all-safe=0 -mtriple arm-- -run-pass=regbankselect %s -o - | FileCheck %s2# RUN: llc -debugify-and-strip-all-safe=0 -mtriple thumbv7-- -run-pass=regbankselect %s -o - | FileCheck %s3--- |4 define void @test_add_s32() { ret void }5 define void @test_sub_s32() { ret void }6 define void @test_mul_s32() { ret void }7 8 define void @test_sdiv_s32() #1 { ret void }9 define void @test_udiv_s32() #1 { ret void }10 11 define void @test_and_s32() { ret void}12 define void @test_or_s32() { ret void}13 define void @test_xor_s32() { ret void}14 15 define void @test_lshr_s32() { ret void }16 define void @test_ashr_s32() { ret void }17 define void @test_shl_s32() { ret void }18 19 define void @test_loads() #0 { ret void }20 define void @test_stores() #0 { ret void }21 22 define void @test_stack() { ret void }23 24 define void @test_gep() { ret void }25 26 define void @test_constants() { ret void }27 28 define void @test_inttoptr_s32() { ret void }29 define void @test_ptrtoint_s32() { ret void }30 31 define void @test_ctlz_s32() #3 { ret void }32 33 @a_global = global float 1.034 define void @test_globals() { ret void }35 36 define void @test_anyext_s8_32() { ret void }37 define void @test_anyext_s16_32() { ret void }38 39 define void @test_trunc_s32_16() { ret void }40 define void @test_trunc_s64_32() #0 { ret void }41 42 define void @test_icmp_eq_s32() { ret void }43 define void @test_fcmp_one_s32() #0 { ret void }44 define void @test_fcmp_ugt_s64() #0 { ret void }45 46 define void @test_select_s32() { ret void }47 48 define void @test_br() { ret void }49 50 define void @test_phi_s32() { ret void }51 define void @test_phi_s64() #0 { ret void }52 53 define void @test_fadd_s32() #0 { ret void }54 define void @test_fadd_s64() #0 { ret void }55 56 define void @test_fsub_s32() #0 { ret void }57 define void @test_fsub_s64() #0 { ret void }58 59 define void @test_fmul_s32() #0 { ret void }60 define void @test_fmul_s64() #0 { ret void }61 62 define void @test_fdiv_s32() #0 { ret void }63 define void @test_fdiv_s64() #0 { ret void }64 65 define void @test_fneg_s32() #0 { ret void }66 define void @test_fneg_s64() #0 { ret void }67 68 define void @test_fma_s32() #2 { ret void }69 define void @test_fma_s64() #2 { ret void }70 71 define void @test_fpext_s32_to_s64() #0 { ret void }72 define void @test_fptrunc_s64_to_s32() #0 { ret void }73 74 define void @test_fpconst_s32() #0 { ret void }75 define void @test_fpconst_s64() #0 { ret void }76 77 define void @test_fptosi_s32() #0 { ret void }78 define void @test_fptosi_s64() #0 { ret void }79 define void @test_fptoui_s32() #0 { ret void }80 define void @test_fptoui_s64() #0 { ret void }81 82 define void @test_sitofp_s32() #0 { ret void }83 define void @test_sitofp_s64() #0 { ret void }84 define void @test_uitofp_s32() #0 { ret void }85 define void @test_uitofp_s64() #0 { ret void }86 87 define void @test_soft_fp_s64() #0 { ret void }88 89 define void @test_dbg_value() #0 { ret void }90 91 attributes #0 = { "target-features"="+vfp2"}92 attributes #1 = { "target-features"="+hwdiv-arm,+hwdiv" }93 attributes #2 = { "target-features"="+vfp4"}94 attributes #3 = { "target-features"="+v5t"}95 96 !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "llvm", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)97 !1 = !DIFile(filename: "dbg.ll", directory: "/tmp")98 !2 = !{}99 !5 = distinct !DISubprogram(name: "test_dbg_value", scope: !1, file: !1, line: 1, type: !6, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: false, unit: !0, retainedNodes: !2)100 !6 = !DISubroutineType(types: !2)101 !7 = !DILocalVariable(name: "x", arg: 1, scope: !5, file: !1, line: 1, type: !8)102 !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)103 !9 = !DILocation(line: 1, column: 1, scope: !5)104...105---106name: test_add_s32107# CHECK-LABEL: name: test_add_s32108legalized: true109regBankSelected: false110selected: false111# CHECK: registers:112# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }113# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }114# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }115 116registers:117 - { id: 0, class: _ }118 - { id: 1, class: _ }119 - { id: 2, class: _ }120body: |121 bb.0:122 liveins: $r0, $r1123 124 %0(s32) = COPY $r0125 %1(s32) = COPY $r1126 %2(s32) = G_ADD %0, %1127 $r0 = COPY %2(s32)128 BX_RET 14, $noreg, implicit $r0129 130...131---132name: test_sub_s32133# CHECK-LABEL: name: test_sub_s32134legalized: true135regBankSelected: false136selected: false137# CHECK: registers:138# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }139# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }140# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }141 142registers:143 - { id: 0, class: _ }144 - { id: 1, class: _ }145 - { id: 2, class: _ }146body: |147 bb.0:148 liveins: $r0, $r1149 150 %0(s32) = COPY $r0151 %1(s32) = COPY $r1152 %2(s32) = G_SUB %0, %1153 $r0 = COPY %2(s32)154 BX_RET 14, $noreg, implicit $r0155 156...157---158name: test_mul_s32159# CHECK-LABEL: name: test_mul_s32160legalized: true161regBankSelected: false162selected: false163# CHECK: registers:164# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }165# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }166# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }167 168registers:169 - { id: 0, class: _ }170 - { id: 1, class: _ }171 - { id: 2, class: _ }172body: |173 bb.0:174 liveins: $r0, $r1175 176 %0(s32) = COPY $r0177 %1(s32) = COPY $r1178 %2(s32) = G_MUL %0, %1179 $r0 = COPY %2(s32)180 BX_RET 14, $noreg, implicit $r0181 182...183---184name: test_sdiv_s32185# CHECK-LABEL: name: test_sdiv_s32186legalized: true187regBankSelected: false188selected: false189# CHECK: registers:190# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }191# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }192# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }193 194registers:195 - { id: 0, class: _ }196 - { id: 1, class: _ }197 - { id: 2, class: _ }198body: |199 bb.0:200 liveins: $r0, $r1201 202 %0(s32) = COPY $r0203 %1(s32) = COPY $r1204 %2(s32) = G_SDIV %0, %1205 $r0 = COPY %2(s32)206 BX_RET 14, $noreg, implicit $r0207 208...209---210name: test_udiv_s32211# CHECK-LABEL: name: test_udiv_s32212legalized: true213regBankSelected: false214selected: false215# CHECK: registers:216# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }217# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }218# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }219 220registers:221 - { id: 0, class: _ }222 - { id: 1, class: _ }223 - { id: 2, class: _ }224body: |225 bb.0:226 liveins: $r0, $r1227 228 %0(s32) = COPY $r0229 %1(s32) = COPY $r1230 %2(s32) = G_UDIV %0, %1231 $r0 = COPY %2(s32)232 BX_RET 14, $noreg, implicit $r0233 234...235---236name: test_and_s32237# CHECK-LABEL: name: test_and_s32238legalized: true239regBankSelected: false240selected: false241# CHECK: registers:242# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }243# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }244# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }245 246registers:247 - { id: 0, class: _ }248 - { id: 1, class: _ }249 - { id: 2, class: _ }250body: |251 bb.0:252 liveins: $r0, $r1253 254 %0(s32) = COPY $r0255 %1(s32) = COPY $r1256 %2(s32) = G_AND %0, %1257 $r0 = COPY %2(s32)258 BX_RET 14, $noreg, implicit $r0259 260...261---262name: test_or_s32263# CHECK-LABEL: name: test_or_s32264legalized: true265regBankSelected: false266selected: false267# CHECK: registers:268# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }269# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }270# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }271 272registers:273 - { id: 0, class: _ }274 - { id: 1, class: _ }275 - { id: 2, class: _ }276body: |277 bb.0:278 liveins: $r0, $r1279 280 %0(s32) = COPY $r0281 %1(s32) = COPY $r1282 %2(s32) = G_OR %0, %1283 $r0 = COPY %2(s32)284 BX_RET 14, $noreg, implicit $r0285 286...287---288name: test_xor_s32289# CHECK-LABEL: name: test_xor_s32290legalized: true291regBankSelected: false292selected: false293# CHECK: registers:294# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }295# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }296# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }297 298registers:299 - { id: 0, class: _ }300 - { id: 1, class: _ }301 - { id: 2, class: _ }302body: |303 bb.0:304 liveins: $r0, $r1305 306 %0(s32) = COPY $r0307 %1(s32) = COPY $r1308 %2(s32) = G_XOR %0, %1309 $r0 = COPY %2(s32)310 BX_RET 14, $noreg, implicit $r0311 312...313---314name: test_lshr_s32315# CHECK-LABEL: name: test_lshr_s32316legalized: true317regBankSelected: false318selected: false319# CHECK: registers:320# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }321# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }322# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }323 324registers:325 - { id: 0, class: _ }326 - { id: 1, class: _ }327 - { id: 2, class: _ }328body: |329 bb.0:330 liveins: $r0, $r1331 332 %0(s32) = COPY $r0333 %1(s32) = COPY $r1334 %2(s32) = G_LSHR %0, %1335 $r0 = COPY %2(s32)336 BX_RET 14, $noreg, implicit $r0337 338...339---340name: test_ashr_s32341# CHECK-LABEL: name: test_ashr_s32342legalized: true343regBankSelected: false344selected: false345# CHECK: registers:346# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }347# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }348# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }349 350registers:351 - { id: 0, class: _ }352 - { id: 1, class: _ }353 - { id: 2, class: _ }354body: |355 bb.0:356 liveins: $r0, $r1357 358 %0(s32) = COPY $r0359 %1(s32) = COPY $r1360 %2(s32) = G_ASHR %0, %1361 $r0 = COPY %2(s32)362 BX_RET 14, $noreg, implicit $r0363 364...365---366name: test_shl_s32367# CHECK-LABEL: name: test_shl_s32368legalized: true369regBankSelected: false370selected: false371# CHECK: registers:372# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }373# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }374# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }375 376registers:377 - { id: 0, class: _ }378 - { id: 1, class: _ }379 - { id: 2, class: _ }380body: |381 bb.0:382 liveins: $r0, $r1383 384 %0(s32) = COPY $r0385 %1(s32) = COPY $r1386 %2(s32) = G_SHL %0, %1387 $r0 = COPY %2(s32)388 BX_RET 14, $noreg, implicit $r0389 390...391---392name: test_loads393# CHECK-LABEL: name: test_loads394legalized: true395regBankSelected: false396selected: false397# CHECK: registers:398# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }399# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }400# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }401# CHECK: - { id: 3, class: gprb, preferred-register: '', flags: [ ] }402# CHECK: - { id: 4, class: gprb, preferred-register: '', flags: [ ] }403# CHECK: - { id: 5, class: fprb, preferred-register: '', flags: [ ] }404 405registers:406 - { id: 0, class: _ }407 - { id: 1, class: _ }408 - { id: 2, class: _ }409 - { id: 3, class: _ }410 - { id: 4, class: _ }411 - { id: 5, class: _ }412 - { id: 6, class: _ }413body: |414 bb.0:415 liveins: $r0416 %0(p0) = COPY $r0417 %5(s64) = G_LOAD %0 :: (load (s64))418 %1(s32) = G_LOAD %0 :: (load (s32))419 %2(s16) = G_LOAD %0 :: (load (s16))420 %3(s8) = G_LOAD %0 :: (load (s8))421 %4(p0) = G_LOAD %0 :: (load (p0))422 BX_RET 14, $noreg, implicit $r0423 424...425---426name: test_stores427# CHECK-LABEL: name: test_stores428legalized: true429regBankSelected: false430selected: false431# CHECK: registers:432# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }433# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }434# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }435# CHECK: - { id: 3, class: gprb, preferred-register: '', flags: [ ] }436# CHECK: - { id: 4, class: fprb, preferred-register: '', flags: [ ] }437registers:438 - { id: 0, class: _ }439 - { id: 1, class: _ }440 - { id: 2, class: _ }441 - { id: 3, class: _ }442 - { id: 4, class: _ }443 - { id: 5, class: _ }444 - { id: 6, class: _ }445body: |446 bb.0:447 liveins: $r0, $r1, $r5, $d6448 %0(p0) = COPY $r0449 %1(s32) = COPY $r1450 G_STORE %1(s32), %0 :: (store (s32))451 %2(s16) = G_TRUNC %1(s32)452 G_STORE %2(s16), %0 :: (store (s16))453 %3(s8) = G_TRUNC %1(s32)454 G_STORE %3(s8), %0 :: (store (s8))455 %4(s64) = COPY $d6456 G_STORE %4(s64), %0 :: (store (s64))457 BX_RET 14, $noreg, implicit $r0458 459...460---461name: test_stack462# CHECK-LABEL: name: test_stack463legalized: true464regBankSelected: false465selected: false466# CHECK: registers:467# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }468# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }469# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }470# CHECK: - { id: 3, class: gprb, preferred-register: '', flags: [ ] }471# CHECK: - { id: 4, class: gprb, preferred-register: '', flags: [ ] }472registers:473 - { id: 0, class: _ }474 - { id: 1, class: _ }475 - { id: 2, class: _ }476 - { id: 3, class: _ }477 - { id: 4, class: _ }478fixedStack:479 - { id: 0, offset: 0, size: 4, alignment: 4, isImmutable: true, isAliased: false }480body: |481 bb.0:482 %0(p0) = G_FRAME_INDEX %fixed-stack.0483 %1(s32) = G_LOAD %0(p0) :: (load (s32) from %fixed-stack.0, align 4)484 485 %2(p0) = COPY $sp486 %3(s32) = G_CONSTANT i32 8487 %4(p0) = G_PTR_ADD %2, %3(s32)488 G_STORE %1(s32), %4(p0) :: (store (s32))489 490 BX_RET 14, $noreg491 492...493---494name: test_gep495# CHECK-LABEL: name: test_gep496legalized: true497regBankSelected: false498selected: false499# CHECK: registers:500# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }501# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }502# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }503 504registers:505 - { id: 0, class: _ }506 - { id: 1, class: _ }507 - { id: 2, class: _ }508body: |509 bb.0:510 liveins: $r0, $r1511 512 %0(p0) = COPY $r0513 %1(s32) = COPY $r1514 %2(p0) = G_PTR_ADD %0, %1(s32)515 $r0 = COPY %2(p0)516 BX_RET 14, $noreg, implicit $r0517...518---519name: test_constants520# CHECK-LABEL: name: test_constants521legalized: true522regBankSelected: false523selected: false524# CHECK: registers:525# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }526registers:527 - { id: 0, class: _ }528body: |529 bb.0:530 %0(s32) = G_CONSTANT i32 42531 $r0 = COPY %0(s32)532 BX_RET 14, $noreg, implicit $r0533...534---535name: test_inttoptr_s32536# CHECK-LABEL: name: test_inttoptr_s32537legalized: true538regBankSelected: false539selected: false540# CHECK: registers:541# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }542# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }543registers:544 - { id: 0, class: _ }545 - { id: 1, class: _ }546body: |547 bb.0:548 %0(s32) = COPY $r0549 %1(p0) = G_INTTOPTR %0(s32)550 $r0 = COPY %1(p0)551 BX_RET 14, $noreg, implicit $r0552...553---554name: test_ptrtoint_s32555# CHECK-LABEL: name: test_ptrtoint_s32556legalized: true557regBankSelected: false558selected: false559# CHECK: registers:560# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }561# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }562registers:563 - { id: 0, class: _ }564 - { id: 1, class: _ }565body: |566 bb.0:567 %0(p0) = COPY $r0568 %1(s32) = G_PTRTOINT %0(p0)569 $r0 = COPY %1(s32)570 BX_RET 14, $noreg, implicit $r0571...572---573name: test_ctlz_s32574# CHECK-LABEL: name: test_ctlz_s32575legalized: true576regBankSelected: false577selected: false578# CHECK: registers:579# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }580# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }581registers:582 - { id: 0, class: _ }583 - { id: 1, class: _ }584body: |585 bb.0:586 %0(s32) = COPY $r0587 %1(s32) = G_CTLZ %0(s32)588 $r0 = COPY %1(s32)589 BX_RET 14, $noreg, implicit $r0590...591---592name: test_globals593# CHECK-LABEL: name: test_globals594legalized: true595regBankSelected: false596selected: false597# CHECK: registers:598# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }599registers:600 - { id: 0, class: _ }601body: |602 bb.0:603 %0(p0) = G_GLOBAL_VALUE @a_global604 $r0 = COPY %0(p0)605 BX_RET 14, $noreg, implicit $r0606...607---608name: test_anyext_s8_32609# CHECK-LABEL: name: test_anyext_s8_32610legalized: true611regBankSelected: false612selected: false613# CHECK: registers:614# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }615# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }616# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }617registers:618 - { id: 0, class: _ }619 - { id: 1, class: _ }620 - { id: 2, class: _ }621body: |622 bb.0:623 liveins: $r0624 625 %0(s32) = COPY $r0626 %1(s8) = G_TRUNC %0(s32)627 %2(s32) = G_ANYEXT %1(s8)628 $r0 = COPY %2(s32)629 BX_RET 14, $noreg, implicit $r0630...631---632name: test_anyext_s16_32633# CHECK-LABEL: name: test_anyext_s16_32634legalized: true635regBankSelected: false636selected: false637# CHECK: registers:638# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }639# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }640# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }641registers:642 - { id: 0, class: _ }643 - { id: 1, class: _ }644 - { id: 2, class: _ }645body: |646 bb.0:647 liveins: $r0648 649 %0(s32) = COPY $r0650 %1(s16) = G_TRUNC %0(s32)651 %2(s32) = G_ANYEXT %1(s16)652 $r0 = COPY %2(s32)653 BX_RET 14, $noreg, implicit $r0654...655---656name: test_trunc_s32_16657# CHECK-LABEL: name: test_trunc_s32_16658legalized: true659regBankSelected: false660selected: false661# CHECK: registers:662# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }663# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }664# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }665registers:666 - { id: 0, class: _ }667 - { id: 1, class: _ }668 - { id: 2, class: _ }669body: |670 bb.0:671 liveins: $r0, $r1672 673 %0(s32) = COPY $r0674 %2(p0) = COPY $r1675 %1(s16) = G_TRUNC %0(s32)676 G_STORE %1(s16), %2 :: (store (s16))677 BX_RET 14, $noreg678...679---680name: test_trunc_s64_32681# CHECK-LABEL: name: test_trunc_s64_32682legalized: true683regBankSelected: false684selected: false685# CHECK: registers:686# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }687# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }688# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }689registers:690 - { id: 0, class: _ }691 - { id: 1, class: _ }692 - { id: 2, class: _ }693body: |694 bb.0:695 liveins: $r0, $d0696 697 %0(s64) = COPY $d0698 %2(p0) = COPY $r0699 %1(s32) = G_TRUNC %0(s64)700 G_STORE %1(s32), %2 :: (store (s32))701 BX_RET 14, $noreg702...703---704name: test_icmp_eq_s32705# CHECK-LABEL: name: test_icmp_eq_s32706legalized: true707regBankSelected: false708selected: false709# CHECK: registers:710# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }711# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }712# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }713# CHECK: - { id: 3, class: gprb, preferred-register: '', flags: [ ] }714 715registers:716 - { id: 0, class: _ }717 - { id: 1, class: _ }718 - { id: 2, class: _ }719 - { id: 3, class: _ }720body: |721 bb.0:722 liveins: $r0, $r1723 724 %0(s32) = COPY $r0725 %1(s32) = COPY $r1726 %2(s1) = G_ICMP intpred(eq), %0(s32), %1727 %3(s32) = G_ZEXT %2(s1)728 $r0 = COPY %3(s32)729 BX_RET 14, $noreg, implicit $r0730 731...732---733name: test_fcmp_one_s32734# CHECK-LABEL: name: test_fcmp_one_s32735legalized: true736regBankSelected: false737selected: false738# CHECK: registers:739# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }740# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }741# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }742# CHECK: - { id: 3, class: gprb, preferred-register: '', flags: [ ] }743 744registers:745 - { id: 0, class: _ }746 - { id: 1, class: _ }747 - { id: 2, class: _ }748 - { id: 3, class: _ }749body: |750 bb.0:751 liveins: $s0, $s1752 753 %0(s32) = COPY $s0754 %1(s32) = COPY $s1755 %2(s1) = G_FCMP floatpred(one), %0(s32), %1756 %3(s32) = G_ZEXT %2(s1)757 $r0 = COPY %3(s32)758 BX_RET 14, $noreg, implicit $r0759 760...761---762name: test_fcmp_ugt_s64763# CHECK-LABEL: name: test_fcmp_ugt_s64764legalized: true765regBankSelected: false766selected: false767# CHECK: registers:768# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }769# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }770# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }771# CHECK: - { id: 3, class: gprb, preferred-register: '', flags: [ ] }772 773registers:774 - { id: 0, class: _ }775 - { id: 1, class: _ }776 - { id: 2, class: _ }777 - { id: 3, class: _ }778body: |779 bb.0:780 liveins: $d0, $d1781 782 %0(s64) = COPY $d0783 %1(s64) = COPY $d1784 %2(s1) = G_FCMP floatpred(ugt), %0(s64), %1785 %3(s32) = G_ZEXT %2(s1)786 $r0 = COPY %3(s32)787 BX_RET 14, $noreg, implicit $r0788 789...790---791name: test_select_s32792# CHECK-LABEL: name: test_select_s32793legalized: true794regBankSelected: false795selected: false796# CHECK: registers:797# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }798# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }799# CHECK: - { id: 2, class: gprb, preferred-register: '', flags: [ ] }800# CHECK: - { id: 3, class: gprb, preferred-register: '', flags: [ ] }801# CHECK: - { id: 4, class: gprb, preferred-register: '', flags: [ ] }802 803registers:804 - { id: 0, class: _ }805 - { id: 1, class: _ }806 - { id: 2, class: _ }807 - { id: 3, class: _ }808 - { id: 4, class: _ }809body: |810 bb.0:811 liveins: $r0, $r1, $r2812 813 %0(s32) = COPY $r0814 %1(s32) = COPY $r1815 %2(s32) = COPY $r2816 %3(s1) = G_TRUNC %2(s32)817 %4(s32) = G_SELECT %3(s1), %0, %1818 $r0 = COPY %4(s32)819 BX_RET 14, $noreg, implicit $r0820 821...822---823name: test_br824# CHECK-LABEL: name: test_br825legalized: true826regBankSelected: false827# CHECK: regBankSelected: true828selected: false829registers:830 - { id: 0, class: _ }831 - { id: 1, class: _ }832# CHECK: { id: 0, class: gprb, preferred-register: '', flags: [ ] }833# CHECK: { id: 1, class: gprb, preferred-register: '', flags: [ ] }834# Check that we map the condition of the G_BRCOND into the GPR.835# For the G_BR, there are no registers to map, but make sure we don't crash.836body: |837 bb.0:838 successors: %bb.1(0x40000000), %bb.2(0x40000000)839 liveins: $r0840 841 %0(s32) = COPY $r0842 %1(s1) = G_TRUNC %0(s32)843 G_BRCOND %1(s1), %bb.1844 G_BR %bb.2845 846 bb.1:847 BX_RET 14, $noreg848 849 bb.2:850 BX_RET 14, $noreg851 852...853---854name: test_phi_s32855# CHECK-LABEL: name: test_phi_s32856legalized: true857regBankSelected: false858# CHECK: regBankSelected: true859selected: false860tracksRegLiveness: true861registers:862 - { id: 0, class: _ }863 - { id: 1, class: _ }864 - { id: 2, class: _ }865 - { id: 3, class: _ }866 - { id: 4, class: _ }867# CHECK: { id: 0, class: gprb, preferred-register: '', flags: [ ] }868# CHECK: { id: 1, class: gprb, preferred-register: '', flags: [ ] }869# CHECK: { id: 2, class: gprb, preferred-register: '', flags: [ ] }870# CHECK: { id: 3, class: gprb, preferred-register: '', flags: [ ] }871# CHECK: { id: 4, class: gprb, preferred-register: '', flags: [ ] }872body: |873 bb.0:874 successors: %bb.1(0x40000000), %bb.2(0x40000000)875 liveins: $r0, $r1, $r2876 877 %0(s32) = COPY $r0878 %1(s1) = G_TRUNC %0(s32)879 880 %2(s32) = COPY $r1881 %3(s32) = COPY $r2882 883 G_BRCOND %1(s1), %bb.1884 G_BR %bb.2885 886 bb.1:887 successors: %bb.2(0x80000000)888 889 bb.2:890 %4(s32) = G_PHI %2(s32), %bb.0, %3(s32), %bb.1891 $r0 = COPY %4(s32)892 BX_RET 14, $noreg, implicit $r0893...894---895name: test_phi_s64896# CHECK-LABEL: name: test_phi_s64897legalized: true898regBankSelected: false899# CHECK: regBankSelected: true900selected: false901tracksRegLiveness: true902registers:903 - { id: 0, class: _ }904 - { id: 1, class: _ }905 - { id: 2, class: _ }906 - { id: 3, class: _ }907 - { id: 4, class: _ }908# CHECK: { id: 0, class: gprb, preferred-register: '', flags: [ ] }909# CHECK: { id: 1, class: gprb, preferred-register: '', flags: [ ] }910# CHECK: { id: 2, class: fprb, preferred-register: '', flags: [ ] }911# CHECK: { id: 3, class: fprb, preferred-register: '', flags: [ ] }912# CHECK: { id: 4, class: fprb, preferred-register: '', flags: [ ] }913body: |914 bb.0:915 successors: %bb.1(0x40000000), %bb.2(0x40000000)916 liveins: $r0, $d0, $d1917 918 %0(s32) = COPY $r0919 %1(s1) = G_TRUNC %0(s32)920 921 %2(s64) = COPY $d0922 %3(s64) = COPY $d1923 924 G_BRCOND %1(s1), %bb.1925 G_BR %bb.2926 927 bb.1:928 successors: %bb.2(0x80000000)929 930 bb.2:931 %4(s64) = G_PHI %2(s64), %bb.0, %3(s64), %bb.1932 $d0 = COPY %4(s64)933 BX_RET 14, $noreg, implicit $d0934...935---936name: test_fadd_s32937# CHECK-LABEL: name: test_fadd_s32938legalized: true939regBankSelected: false940selected: false941# CHECK: registers:942# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }943# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }944# CHECK: - { id: 2, class: fprb, preferred-register: '', flags: [ ] }945 946registers:947 - { id: 0, class: _ }948 - { id: 1, class: _ }949 - { id: 2, class: _ }950body: |951 bb.0:952 liveins: $s0, $s1953 954 %0(s32) = COPY $s0955 %1(s32) = COPY $s1956 %2(s32) = G_FADD %0, %1957 $s0 = COPY %2(s32)958 BX_RET 14, $noreg, implicit $s0959 960...961---962name: test_fadd_s64963# CHECK-LABEL: name: test_fadd_s64964legalized: true965regBankSelected: false966selected: false967# CHECK: registers:968# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }969# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }970# CHECK: - { id: 2, class: fprb, preferred-register: '', flags: [ ] }971 972registers:973 - { id: 0, class: _ }974 - { id: 1, class: _ }975 - { id: 2, class: _ }976body: |977 bb.0:978 liveins: $d0, $d1979 980 %0(s64) = COPY $d0981 %1(s64) = COPY $d1982 %2(s64) = G_FADD %0, %1983 $d0 = COPY %2(s64)984 BX_RET 14, $noreg, implicit $d0985 986...987---988name: test_fsub_s32989# CHECK-LABEL: name: test_fsub_s32990legalized: true991regBankSelected: false992selected: false993# CHECK: registers:994# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }995# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }996# CHECK: - { id: 2, class: fprb, preferred-register: '', flags: [ ] }997 998registers:999 - { id: 0, class: _ }1000 - { id: 1, class: _ }1001 - { id: 2, class: _ }1002body: |1003 bb.0:1004 liveins: $s0, $s11005 1006 %0(s32) = COPY $s01007 %1(s32) = COPY $s11008 %2(s32) = G_FSUB %0, %11009 $s0 = COPY %2(s32)1010 BX_RET 14, $noreg, implicit $s01011 1012...1013---1014name: test_fsub_s641015# CHECK-LABEL: name: test_fsub_s641016legalized: true1017regBankSelected: false1018selected: false1019# CHECK: registers:1020# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1021# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }1022# CHECK: - { id: 2, class: fprb, preferred-register: '', flags: [ ] }1023 1024registers:1025 - { id: 0, class: _ }1026 - { id: 1, class: _ }1027 - { id: 2, class: _ }1028body: |1029 bb.0:1030 liveins: $d0, $d11031 1032 %0(s64) = COPY $d01033 %1(s64) = COPY $d11034 %2(s64) = G_FSUB %0, %11035 $d0 = COPY %2(s64)1036 BX_RET 14, $noreg, implicit $d01037 1038...1039---1040name: test_fmul_s321041# CHECK-LABEL: name: test_fmul_s321042legalized: true1043regBankSelected: false1044selected: false1045# CHECK: registers:1046# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1047# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }1048# CHECK: - { id: 2, class: fprb, preferred-register: '', flags: [ ] }1049 1050registers:1051 - { id: 0, class: _ }1052 - { id: 1, class: _ }1053 - { id: 2, class: _ }1054body: |1055 bb.0:1056 liveins: $s0, $s11057 1058 %0(s32) = COPY $s01059 %1(s32) = COPY $s11060 %2(s32) = G_FMUL %0, %11061 $s0 = COPY %2(s32)1062 BX_RET 14, $noreg, implicit $s01063 1064...1065---1066name: test_fmul_s641067# CHECK-LABEL: name: test_fmul_s641068legalized: true1069regBankSelected: false1070selected: false1071# CHECK: registers:1072# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1073# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }1074# CHECK: - { id: 2, class: fprb, preferred-register: '', flags: [ ] }1075 1076registers:1077 - { id: 0, class: _ }1078 - { id: 1, class: _ }1079 - { id: 2, class: _ }1080body: |1081 bb.0:1082 liveins: $d0, $d11083 1084 %0(s64) = COPY $d01085 %1(s64) = COPY $d11086 %2(s64) = G_FMUL %0, %11087 $d0 = COPY %2(s64)1088 BX_RET 14, $noreg, implicit $d01089 1090...1091---1092name: test_fdiv_s321093# CHECK-LABEL: name: test_fdiv_s321094legalized: true1095regBankSelected: false1096selected: false1097# CHECK: registers:1098# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1099# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }1100# CHECK: - { id: 2, class: fprb, preferred-register: '', flags: [ ] }1101 1102registers:1103 - { id: 0, class: _ }1104 - { id: 1, class: _ }1105 - { id: 2, class: _ }1106body: |1107 bb.0:1108 liveins: $s0, $s11109 1110 %0(s32) = COPY $s01111 %1(s32) = COPY $s11112 %2(s32) = G_FDIV %0, %11113 $s0 = COPY %2(s32)1114 BX_RET 14, $noreg, implicit $s01115 1116...1117---1118name: test_fdiv_s641119# CHECK-LABEL: name: test_fdiv_s641120legalized: true1121regBankSelected: false1122selected: false1123# CHECK: registers:1124# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1125# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }1126# CHECK: - { id: 2, class: fprb, preferred-register: '', flags: [ ] }1127 1128registers:1129 - { id: 0, class: _ }1130 - { id: 1, class: _ }1131 - { id: 2, class: _ }1132body: |1133 bb.0:1134 liveins: $d0, $d11135 1136 %0(s64) = COPY $d01137 %1(s64) = COPY $d11138 %2(s64) = G_FDIV %0, %11139 $d0 = COPY %2(s64)1140 BX_RET 14, $noreg, implicit $d01141 1142...1143---1144name: test_fneg_s321145# CHECK-LABEL: name: test_fneg_s321146legalized: true1147regBankSelected: false1148selected: false1149# CHECK: registers:1150# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1151# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }1152registers:1153 - { id: 0, class: _ }1154 - { id: 1, class: _ }1155body: |1156 bb.0:1157 liveins: $s01158 1159 %0(s32) = COPY $s01160 %1(s32) = G_FNEG %01161 $s0 = COPY %1(s32)1162 BX_RET 14, $noreg, implicit $s01163 1164...1165---1166name: test_fneg_s641167# CHECK-LABEL: name: test_fneg_s641168legalized: true1169regBankSelected: false1170selected: false1171# CHECK: registers:1172# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1173# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }1174registers:1175 - { id: 0, class: _ }1176 - { id: 1, class: _ }1177body: |1178 bb.0:1179 liveins: $d01180 1181 %0(s64) = COPY $d01182 %1(s64) = G_FNEG %01183 $d0 = COPY %1(s64)1184 BX_RET 14, $noreg, implicit $d01185 1186...1187---1188name: test_fma_s321189# CHECK-LABEL: name: test_fma_s321190legalized: true1191regBankSelected: false1192selected: false1193# CHECK: registers:1194# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1195# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }1196# CHECK: - { id: 2, class: fprb, preferred-register: '', flags: [ ] }1197# CHECK: - { id: 3, class: fprb, preferred-register: '', flags: [ ] }1198registers:1199 - { id: 0, class: _ }1200 - { id: 1, class: _ }1201 - { id: 2, class: _ }1202 - { id: 3, class: _ }1203body: |1204 bb.0:1205 liveins: $s0, $s1, $s21206 1207 %0(s32) = COPY $s01208 %1(s32) = COPY $s11209 %2(s32) = COPY $s21210 %3(s32) = G_FMA %0, %1, %21211 $s0 = COPY %3(s32)1212 BX_RET 14, $noreg, implicit $s01213...1214---1215name: test_fma_s641216# CHECK-LABEL: name: test_fma_s641217legalized: true1218regBankSelected: false1219selected: false1220# CHECK: registers:1221# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1222# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }1223# CHECK: - { id: 2, class: fprb, preferred-register: '', flags: [ ] }1224# CHECK: - { id: 3, class: fprb, preferred-register: '', flags: [ ] }1225registers:1226 - { id: 0, class: _ }1227 - { id: 1, class: _ }1228 - { id: 2, class: _ }1229 - { id: 3, class: _ }1230body: |1231 bb.0:1232 liveins: $d0, $d1, $d21233 1234 %0(s64) = COPY $d01235 %1(s64) = COPY $d11236 %2(s64) = COPY $d21237 %3(s64) = G_FMA %0, %1, %21238 $d0 = COPY %3(s64)1239 BX_RET 14, $noreg, implicit $d01240...1241---1242name: test_fpext_s32_to_s641243# CHECK-LABEL: name: test_fpext_s32_to_s641244legalized: true1245regBankSelected: false1246selected: false1247# CHECK: registers:1248# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1249# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }1250registers:1251 - { id: 0, class: _ }1252 - { id: 1, class: _ }1253body: |1254 bb.0:1255 liveins: $s01256 1257 %0(s32) = COPY $s01258 %1(s64) = G_FPEXT %01259 $d0 = COPY %1(s64)1260 BX_RET 14, $noreg, implicit $d01261...1262---1263name: test_fptrunc_s64_to_s321264# CHECK-LABEL: name: test_fptrunc_s64_to_s321265legalized: true1266regBankSelected: false1267selected: false1268# CHECK: registers:1269# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1270# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }1271registers:1272 - { id: 0, class: _ }1273 - { id: 1, class: _ }1274body: |1275 bb.0:1276 liveins: $d01277 1278 %0(s64) = COPY $d01279 %1(s32) = G_FPTRUNC %01280 $s0 = COPY %1(s32)1281 BX_RET 14, $noreg, implicit $s01282...1283---1284name: test_fpconst_s321285# CHECK-LABEL: name: test_fpconst_s321286legalized: true1287regBankSelected: false1288selected: false1289# CHECK: registers:1290# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1291registers:1292 - { id: 0, class: _ }1293body: |1294 bb.0:1295 liveins:1296 1297 %0(s32) = G_FCONSTANT float -1.251298 $s0 = COPY %0(s32)1299 BX_RET 14, $noreg, implicit $s01300...1301---1302name: test_fpconst_s641303# CHECK-LABEL: name: test_fpconst_s641304legalized: true1305regBankSelected: false1306selected: false1307# CHECK: registers:1308# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1309registers:1310 - { id: 0, class: _ }1311body: |1312 bb.0:1313 liveins:1314 1315 %0(s64) = G_FCONSTANT double -2.41316 $d0 = COPY %0(s64)1317 BX_RET 14, $noreg, implicit $d01318...1319---1320name: test_fptosi_s321321# CHECK-LABEL: name: test_fptosi_s321322legalized: true1323regBankSelected: false1324selected: false1325# CHECK: registers:1326# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1327# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }1328registers:1329 - { id: 0, class: _ }1330 - { id: 1, class: _ }1331body: |1332 bb.0:1333 liveins: $s01334 1335 %0(s32) = COPY $s01336 %1(s32) = G_FPTOSI %01337 $r0 = COPY %1(s32)1338 BX_RET 14, $noreg, implicit $r01339 1340...1341---1342name: test_fptosi_s641343# CHECK-LABEL: name: test_fptosi_s641344legalized: true1345regBankSelected: false1346selected: false1347# CHECK: registers:1348# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1349# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }1350registers:1351 - { id: 0, class: _ }1352 - { id: 1, class: _ }1353body: |1354 bb.0:1355 liveins: $d01356 1357 %0(s64) = COPY $d01358 %1(s32) = G_FPTOSI %01359 $r0 = COPY %1(s32)1360 BX_RET 14, $noreg, implicit $r01361...1362---1363name: test_fptoui_s321364# CHECK-LABEL: name: test_fptoui_s321365legalized: true1366regBankSelected: false1367selected: false1368# CHECK: registers:1369# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1370# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }1371registers:1372 - { id: 0, class: _ }1373 - { id: 1, class: _ }1374body: |1375 bb.0:1376 liveins: $s01377 1378 %0(s32) = COPY $s01379 %1(s32) = G_FPTOUI %01380 $r0 = COPY %1(s32)1381 BX_RET 14, $noreg, implicit $r01382 1383...1384---1385name: test_fptoui_s641386# CHECK-LABEL: name: test_fptoui_s641387legalized: true1388regBankSelected: false1389selected: false1390# CHECK: registers:1391# CHECK: - { id: 0, class: fprb, preferred-register: '', flags: [ ] }1392# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }1393registers:1394 - { id: 0, class: _ }1395 - { id: 1, class: _ }1396body: |1397 bb.0:1398 liveins: $d01399 1400 %0(s64) = COPY $d01401 %1(s32) = G_FPTOUI %01402 $r0 = COPY %1(s32)1403 BX_RET 14, $noreg, implicit $r01404...1405---1406name: test_sitofp_s321407# CHECK-LABEL: name: test_sitofp_s321408legalized: true1409regBankSelected: false1410selected: false1411# CHECK: registers:1412# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }1413# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }1414registers:1415 - { id: 0, class: _ }1416 - { id: 1, class: _ }1417body: |1418 bb.0:1419 liveins: $r01420 1421 %0(s32) = COPY $r01422 %1(s32) = G_SITOFP %01423 $s0 = COPY %1(s32)1424 BX_RET 14, $noreg, implicit $s01425 1426...1427---1428name: test_sitofp_s641429# CHECK-LABEL: name: test_sitofp_s641430legalized: true1431regBankSelected: false1432selected: false1433# CHECK: registers:1434# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }1435# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }1436registers:1437 - { id: 0, class: _ }1438 - { id: 1, class: _ }1439body: |1440 bb.0:1441 liveins: $r01442 1443 %0(s32) = COPY $r01444 %1(s64) = G_SITOFP %01445 $d0 = COPY %1(s64)1446 BX_RET 14, $noreg, implicit $d01447...1448---1449name: test_uitofp_s321450# CHECK-LABEL: name: test_uitofp_s321451legalized: true1452regBankSelected: false1453selected: false1454# CHECK: registers:1455# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }1456# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }1457registers:1458 - { id: 0, class: _ }1459 - { id: 1, class: _ }1460body: |1461 bb.0:1462 liveins: $r01463 1464 %0(s32) = COPY $r01465 %1(s32) = G_UITOFP %01466 $s0 = COPY %1(s32)1467 BX_RET 14, $noreg, implicit $s01468 1469...1470---1471name: test_uitofp_s641472# CHECK-LABEL: name: test_uitofp_s641473legalized: true1474regBankSelected: false1475selected: false1476# CHECK: registers:1477# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }1478# CHECK: - { id: 1, class: fprb, preferred-register: '', flags: [ ] }1479registers:1480 - { id: 0, class: _ }1481 - { id: 1, class: _ }1482body: |1483 bb.0:1484 liveins: $r01485 1486 %0(s32) = COPY $r01487 %1(s64) = G_UITOFP %01488 $d0 = COPY %1(s64)1489 BX_RET 14, $noreg, implicit $d01490...1491---1492name: test_soft_fp_s641493# CHECK-LABEL: name: test_soft_fp_s641494legalized: true1495regBankSelected: false1496selected: false1497# CHECK: registers:1498# CHECK: - { id: 0, class: gprb, preferred-register: '', flags: [ ] }1499# CHECK: - { id: 1, class: gprb, preferred-register: '', flags: [ ] }1500# CHECK: - { id: 2, class: fprb, preferred-register: '', flags: [ ] }1501# CHECK: - { id: 3, class: gprb, preferred-register: '', flags: [ ] }1502# CHECK: - { id: 4, class: gprb, preferred-register: '', flags: [ ] }1503 1504registers:1505 - { id: 0, class: _ }1506 - { id: 1, class: _ }1507 - { id: 2, class: _ }1508 - { id: 3, class: _ }1509 - { id: 4, class: _ }1510body: |1511 bb.0:1512 liveins: $r0, $r11513 1514 %0(s32) = COPY $r01515 %1(s32) = COPY $r11516 %2(s64) = G_MERGE_VALUES %0(s32), %1(s32)1517 %3(s32), %4(s32) = G_UNMERGE_VALUES %2(s64)1518 $r0 = COPY %3(s32)1519 $r1 = COPY %4(s32)1520 BX_RET 14, $noreg, implicit $r0, implicit $r11521 1522...1523---1524name: test_dbg_value1525# CHECK-LABEL: name: test_dbg_value1526legalized: true1527regBankSelected: false1528selected: false1529 1530registers:1531 - { id: 0, class: _ }1532 - { id: 1, class: _ }1533 - { id: 2, class: _ }1534 - { id: 3, class: _ }1535 - { id: 4, class: _ }1536 - { id: 5, class: _ }1537body: |1538 bb.0:1539 liveins: $r0, $s1, $d21540 1541 %0(s32) = COPY $r01542 1543 ; CHECK: {{%[0-9]+}}:gprb(s32) = G_ADD1544 %1(s32) = G_ADD %0, %01545 1546 ; CHECK: DBG_VALUE {{%[0-9]+}}(s32), $noreg1547 DBG_VALUE %1(s32), $noreg, !7, !DIExpression(), debug-location !91548 1549 $r0 = COPY %1(s32)1550 1551 %2(s32) = COPY $s11552 1553 ; CHECK: {{%[0-9]+}}:fprb(s32) = G_FADD1554 %3(s32) = G_FADD %2, %21555 1556 ; CHECK: DBG_VALUE {{%[0-9]+}}(s32), $noreg1557 DBG_VALUE %3(s32), $noreg, !7, !DIExpression(), debug-location !91558 1559 $s1 = COPY %3(s32)1560 1561 %4(s64) = COPY $d21562 1563 ; CHECK: {{%[0-9]+}}:fprb(s64) = G_FADD1564 %5(s64) = G_FADD %4, %41565 1566 ; CHECK: DBG_VALUE {{%[0-9]+}}(s64), $noreg1567 DBG_VALUE %5(s64), $noreg, !7, !DIExpression(), debug-location !91568 1569 $d2 = COPY %5(s64)1570 1571 ; CHECK: DBG_VALUE i32 42, 01572 DBG_VALUE i32 42, 0, !7, !DIExpression(), debug-location !91573 1574 ; CHECK: DBG_VALUE float 1.000000e+00, 01575 DBG_VALUE float 1.000000e+00, 0, !7, !DIExpression(), debug-location !91576 1577 ; CHECK: DBG_VALUE $noreg, 01578 DBG_VALUE $noreg, 0, !7, !DIExpression(), debug-location !91579 1580 $d2 = COPY %5(s64)1581 BX_RET 14, $noreg, implicit $r0, implicit $s1, implicit $d21582 1583...1584