brintos

brintos / llvm-project-archived public Read only

0
0
Text · 24.6 KiB · 8178cb0 Raw
1000 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple arm64-- -run-pass=regbankselect %s -o - | FileCheck %s3 4# Check the default mappings for various instructions.5 6--- |7  target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"8 9  define void @test_add_s32() { ret void }10  define void @test_add_v4s32() { ret void }11  define void @test_sub_s32() { ret void }12  define void @test_sub_v4s32() { ret void }13  define void @test_mul_s32() { ret void }14  define void @test_mul_v4s32() { ret void }15 16  define void @test_and_s32() { ret void }17  define void @test_and_v4s32() { ret void }18  define void @test_or_s32() { ret void }19  define void @test_or_v4s32() { ret void }20  define void @test_xor_s32() { ret void }21  define void @test_xor_v4s32() { ret void }22 23  define void @test_shl_s32() { ret void }24  define void @test_shl_v4s32() { ret void }25  define void @test_lshr_s32() { ret void }26  define void @test_ashr_s32() { ret void }27 28  define void @test_sdiv_s32() { ret void }29  define void @test_udiv_s32() { ret void }30 31  define void @test_anyext_s64_s32() { ret void }32  define void @test_sext_s64_s32() { ret void }33  define void @test_zext_s64_s32() { ret void }34  define void @test_trunc_s32_s64() { ret void }35 36  define void @test_constant_s32() { ret void }37  define void @test_constant_p0() { ret void }38 39  define void @test_icmp_s32() { ret void }40  define void @test_icmp_p0() { ret void }41 42  define void @test_frame_index_p0() {43    %ptr0 = alloca i6444    ret void45  }46 47  define void @test_ptrtoint_s64_p0() { ret void }48  define void @test_inttoptr_p0_s64() { ret void }49 50  define void @test_load_s32_p0() { ret void }51  define void @test_store_s32_p0() { ret void }52 53  define void @test_fadd_s32() { ret void }54  define void @test_fsub_s32() { ret void }55  define void @test_fmul_s32() { ret void }56  define void @test_fdiv_s32() { ret void }57 58  define void @test_fpext_s64_s32() { ret void }59  define void @test_fptrunc_s32_s64() { ret void }60 61  define void @test_fconstant_s32() { ret void }62  define void @test_fneg_s32() { ret void }63 64  define void @test_fcmp_s32() { ret void }65 66  define void @test_sitofp_s64_s32() { ret void }67  define void @test_sitofp_v4s32() { ret void }68  define void @test_uitofp_s32_s64() { ret void }69  define void @test_uitofp_v4s32() { ret void }70 71  define void @test_fptosi_s64_s32() { ret void }72  define void @test_fptosi_v4s32() { ret void }73  define void @test_fptoui_s32_s64() { ret void }74  define void @test_fptoui_v4s32() { ret void }75 76  define void @test_gphi_ptr() { ret void }77 78  define void @test_restricted_tail_call() { ret void }79 80...81 82---83name:            test_add_s3284legalized:       true85registers:86  - { id: 0, class: _ }87  - { id: 1, class: _ }88body: |89  bb.0:90    liveins: $w091    ; CHECK-LABEL: name: test_add_s3292    ; CHECK: liveins: $w093    ; CHECK-NEXT: {{  $}}94    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w095    ; CHECK-NEXT: [[ADD:%[0-9]+]]:gpr(s32) = G_ADD [[COPY]], [[COPY]]96    %0(s32) = COPY $w097    %1(s32) = G_ADD %0, %098...99 100---101name:            test_add_v4s32102legalized:       true103registers:104  - { id: 0, class: _ }105  - { id: 1, class: _ }106body: |107  bb.0:108    liveins: $q0109    ; CHECK-LABEL: name: test_add_v4s32110    ; CHECK: liveins: $q0111    ; CHECK-NEXT: {{  $}}112    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY $q0113    ; CHECK-NEXT: [[ADD:%[0-9]+]]:fpr(<4 x s32>) = G_ADD [[COPY]], [[COPY]]114    %0(<4 x s32>) = COPY $q0115    %1(<4 x s32>) = G_ADD %0, %0116...117 118---119name:            test_sub_s32120legalized:       true121registers:122  - { id: 0, class: _ }123  - { id: 1, class: _ }124body: |125  bb.0:126    liveins: $w0127    ; CHECK-LABEL: name: test_sub_s32128    ; CHECK: liveins: $w0129    ; CHECK-NEXT: {{  $}}130    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0131    ; CHECK-NEXT: [[SUB:%[0-9]+]]:gpr(s32) = G_SUB [[COPY]], [[COPY]]132    %0(s32) = COPY $w0133    %1(s32) = G_SUB %0, %0134...135 136---137name:            test_sub_v4s32138legalized:       true139registers:140  - { id: 0, class: _ }141  - { id: 1, class: _ }142body: |143  bb.0:144    liveins: $q0145    ; CHECK-LABEL: name: test_sub_v4s32146    ; CHECK: liveins: $q0147    ; CHECK-NEXT: {{  $}}148    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY $q0149    ; CHECK-NEXT: [[SUB:%[0-9]+]]:fpr(<4 x s32>) = G_SUB [[COPY]], [[COPY]]150    %0(<4 x s32>) = COPY $q0151    %1(<4 x s32>) = G_SUB %0, %0152...153 154---155name:            test_mul_s32156legalized:       true157registers:158  - { id: 0, class: _ }159  - { id: 1, class: _ }160body: |161  bb.0:162    liveins: $w0163    ; CHECK-LABEL: name: test_mul_s32164    ; CHECK: liveins: $w0165    ; CHECK-NEXT: {{  $}}166    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0167    ; CHECK-NEXT: [[MUL:%[0-9]+]]:gpr(s32) = G_MUL [[COPY]], [[COPY]]168    %0(s32) = COPY $w0169    %1(s32) = G_MUL %0, %0170...171 172---173name:            test_mul_v4s32174legalized:       true175registers:176  - { id: 0, class: _ }177  - { id: 1, class: _ }178body: |179  bb.0:180    liveins: $q0181    ; CHECK-LABEL: name: test_mul_v4s32182    ; CHECK: liveins: $q0183    ; CHECK-NEXT: {{  $}}184    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY $q0185    ; CHECK-NEXT: [[MUL:%[0-9]+]]:fpr(<4 x s32>) = G_MUL [[COPY]], [[COPY]]186    %0(<4 x s32>) = COPY $q0187    %1(<4 x s32>) = G_MUL %0, %0188...189 190---191name:            test_and_s32192legalized:       true193registers:194  - { id: 0, class: _ }195  - { id: 1, class: _ }196body: |197  bb.0:198    liveins: $w0199    ; CHECK-LABEL: name: test_and_s32200    ; CHECK: liveins: $w0201    ; CHECK-NEXT: {{  $}}202    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0203    ; CHECK-NEXT: [[AND:%[0-9]+]]:gpr(s32) = G_AND [[COPY]], [[COPY]]204    %0(s32) = COPY $w0205    %1(s32) = G_AND %0, %0206...207 208---209name:            test_and_v4s32210legalized:       true211registers:212  - { id: 0, class: _ }213  - { id: 1, class: _ }214body: |215  bb.0:216    liveins: $q0217    ; CHECK-LABEL: name: test_and_v4s32218    ; CHECK: liveins: $q0219    ; CHECK-NEXT: {{  $}}220    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY $q0221    ; CHECK-NEXT: [[AND:%[0-9]+]]:fpr(<4 x s32>) = G_AND [[COPY]], [[COPY]]222    %0(<4 x s32>) = COPY $q0223    %1(<4 x s32>) = G_AND %0, %0224...225 226---227name:            test_or_s32228legalized:       true229registers:230  - { id: 0, class: _ }231  - { id: 1, class: _ }232body: |233  bb.0:234    liveins: $w0235    ; CHECK-LABEL: name: test_or_s32236    ; CHECK: liveins: $w0237    ; CHECK-NEXT: {{  $}}238    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0239    ; CHECK-NEXT: [[OR:%[0-9]+]]:gpr(s32) = G_OR [[COPY]], [[COPY]]240    %0(s32) = COPY $w0241    %1(s32) = G_OR %0, %0242...243 244---245name:            test_or_v4s32246legalized:       true247registers:248  - { id: 0, class: _ }249  - { id: 1, class: _ }250body: |251  bb.0:252    liveins: $q0253    ; CHECK-LABEL: name: test_or_v4s32254    ; CHECK: liveins: $q0255    ; CHECK-NEXT: {{  $}}256    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY $q0257    ; CHECK-NEXT: [[OR:%[0-9]+]]:fpr(<4 x s32>) = G_OR [[COPY]], [[COPY]]258    %0(<4 x s32>) = COPY $q0259    %1(<4 x s32>) = G_OR %0, %0260...261 262---263name:            test_xor_s32264legalized:       true265registers:266  - { id: 0, class: _ }267  - { id: 1, class: _ }268body: |269  bb.0:270    liveins: $w0271    ; CHECK-LABEL: name: test_xor_s32272    ; CHECK: liveins: $w0273    ; CHECK-NEXT: {{  $}}274    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0275    ; CHECK-NEXT: [[XOR:%[0-9]+]]:gpr(s32) = G_XOR [[COPY]], [[COPY]]276    %0(s32) = COPY $w0277    %1(s32) = G_XOR %0, %0278...279 280---281name:            test_xor_v4s32282legalized:       true283registers:284  - { id: 0, class: _ }285  - { id: 1, class: _ }286body: |287  bb.0:288    liveins: $q0289    ; CHECK-LABEL: name: test_xor_v4s32290    ; CHECK: liveins: $q0291    ; CHECK-NEXT: {{  $}}292    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY $q0293    ; CHECK-NEXT: [[XOR:%[0-9]+]]:fpr(<4 x s32>) = G_XOR [[COPY]], [[COPY]]294    %0(<4 x s32>) = COPY $q0295    %1(<4 x s32>) = G_XOR %0, %0296...297 298---299name:            test_shl_s32300legalized:       true301registers:302  - { id: 0, class: _ }303  - { id: 1, class: _ }304body: |305  bb.0:306    liveins: $w0307    ; CHECK-LABEL: name: test_shl_s32308    ; CHECK: liveins: $w0309    ; CHECK-NEXT: {{  $}}310    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0311    ; CHECK-NEXT: [[SHL:%[0-9]+]]:gpr(s32) = G_SHL [[COPY]], [[COPY]](s32)312    %0(s32) = COPY $w0313    %1(s32) = G_SHL %0, %0314...315 316---317name:            test_shl_v4s32318legalized:       true319registers:320  - { id: 0, class: _ }321  - { id: 1, class: _ }322body: |323  bb.0:324    liveins: $q0325    ; CHECK-LABEL: name: test_shl_v4s32326    ; CHECK: liveins: $q0327    ; CHECK-NEXT: {{  $}}328    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY $q0329    ; CHECK-NEXT: [[SHL:%[0-9]+]]:fpr(<4 x s32>) = G_SHL [[COPY]], [[COPY]](<4 x s32>)330    %0(<4 x s32>) = COPY $q0331    %1(<4 x s32>) = G_SHL %0, %0332...333 334---335name:            test_lshr_s32336legalized:       true337registers:338  - { id: 0, class: _ }339  - { id: 1, class: _ }340body: |341  bb.0:342    liveins: $w0343    ; CHECK-LABEL: name: test_lshr_s32344    ; CHECK: liveins: $w0345    ; CHECK-NEXT: {{  $}}346    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0347    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:gpr(s32) = G_LSHR [[COPY]], [[COPY]](s32)348    %0(s32) = COPY $w0349    %1(s32) = G_LSHR %0, %0350...351 352---353name:            test_ashr_s32354legalized:       true355registers:356  - { id: 0, class: _ }357  - { id: 1, class: _ }358body: |359  bb.0:360    liveins: $w0361    ; CHECK-LABEL: name: test_ashr_s32362    ; CHECK: liveins: $w0363    ; CHECK-NEXT: {{  $}}364    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0365    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:gpr(s32) = G_ASHR [[COPY]], [[COPY]](s32)366    %0(s32) = COPY $w0367    %1(s32) = G_ASHR %0, %0368...369 370---371name:            test_sdiv_s32372legalized:       true373registers:374  - { id: 0, class: _ }375  - { id: 1, class: _ }376body: |377  bb.0:378    liveins: $w0379    ; CHECK-LABEL: name: test_sdiv_s32380    ; CHECK: liveins: $w0381    ; CHECK-NEXT: {{  $}}382    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0383    ; CHECK-NEXT: [[SDIV:%[0-9]+]]:gpr(s32) = G_SDIV [[COPY]], [[COPY]]384    %0(s32) = COPY $w0385    %1(s32) = G_SDIV %0, %0386...387 388---389name:            test_udiv_s32390legalized:       true391registers:392  - { id: 0, class: _ }393  - { id: 1, class: _ }394body: |395  bb.0:396    liveins: $w0397    ; CHECK-LABEL: name: test_udiv_s32398    ; CHECK: liveins: $w0399    ; CHECK-NEXT: {{  $}}400    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0401    ; CHECK-NEXT: [[UDIV:%[0-9]+]]:gpr(s32) = G_UDIV [[COPY]], [[COPY]]402    %0(s32) = COPY $w0403    %1(s32) = G_UDIV %0, %0404...405 406---407name:            test_anyext_s64_s32408legalized:       true409registers:410  - { id: 0, class: _ }411  - { id: 1, class: _ }412body: |413  bb.0:414    liveins: $w0415    ; CHECK-LABEL: name: test_anyext_s64_s32416    ; CHECK: liveins: $w0417    ; CHECK-NEXT: {{  $}}418    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0419    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:gpr(s64) = G_ANYEXT [[COPY]](s32)420    %0(s32) = COPY $w0421    %1(s64) = G_ANYEXT %0422...423 424---425name:            test_sext_s64_s32426legalized:       true427registers:428  - { id: 0, class: _ }429  - { id: 1, class: _ }430body: |431  bb.0:432    liveins: $w0433    ; CHECK-LABEL: name: test_sext_s64_s32434    ; CHECK: liveins: $w0435    ; CHECK-NEXT: {{  $}}436    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0437    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:gpr(s64) = G_SEXT [[COPY]](s32)438    %0(s32) = COPY $w0439    %1(s64) = G_SEXT %0440...441 442---443name:            test_zext_s64_s32444legalized:       true445registers:446  - { id: 0, class: _ }447  - { id: 1, class: _ }448body: |449  bb.0:450    liveins: $w0451    ; CHECK-LABEL: name: test_zext_s64_s32452    ; CHECK: liveins: $w0453    ; CHECK-NEXT: {{  $}}454    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0455    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:gpr(s64) = G_ZEXT [[COPY]](s32)456    %0(s32) = COPY $w0457    %1(s64) = G_ZEXT %0458...459 460---461name:            test_trunc_s32_s64462legalized:       true463registers:464  - { id: 0, class: _ }465  - { id: 1, class: _ }466body: |467  bb.0:468    liveins: $x0469    ; CHECK-LABEL: name: test_trunc_s32_s64470    ; CHECK: liveins: $x0471    ; CHECK-NEXT: {{  $}}472    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s64) = COPY $x0473    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:gpr(s32) = G_TRUNC [[COPY]](s64)474    %0(s64) = COPY $x0475    %1(s32) = G_TRUNC %0476...477 478---479name:            test_constant_s32480legalized:       true481registers:482  - { id: 0, class: _ }483body: |484  bb.0:485    ; CHECK-LABEL: name: test_constant_s32486    ; CHECK: [[C:%[0-9]+]]:gpr(s32) = G_CONSTANT i32 123487    %0(s32) = G_CONSTANT i32 123488...489 490---491name:            test_constant_p0492legalized:       true493registers:494  - { id: 0, class: _ }495body: |496  bb.0:497    ; CHECK-LABEL: name: test_constant_p0498    ; CHECK: [[C:%[0-9]+]]:gpr(p0) = G_CONSTANT i64 0499    %0(p0) = G_CONSTANT i64 0500...501 502---503name:            test_icmp_s32504legalized:       true505registers:506  - { id: 0, class: _ }507  - { id: 1, class: _ }508  - { id: 2, class: _ }509body: |510  bb.0:511    liveins: $w0512    ; CHECK-LABEL: name: test_icmp_s32513    ; CHECK: liveins: $w0514    ; CHECK-NEXT: {{  $}}515    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0516    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:gpr(s32) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY]]517    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:gpr(s1) = G_TRUNC [[ICMP]](s32)518    %0(s32) = COPY $w0519    %1(s32) = G_ICMP intpred(ne), %0, %0520    %2(s1) = G_TRUNC %1(s32)521...522 523---524name:            test_icmp_p0525legalized:       true526registers:527  - { id: 0, class: _ }528  - { id: 1, class: _ }529  - { id: 2, class: _ }530body: |531  bb.0:532    liveins: $x0533    ; CHECK-LABEL: name: test_icmp_p0534    ; CHECK: liveins: $x0535    ; CHECK-NEXT: {{  $}}536    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(p0) = COPY $x0537    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:gpr(s32) = G_ICMP intpred(ne), [[COPY]](p0), [[COPY]]538    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:gpr(s1) = G_TRUNC [[ICMP]](s32)539    %0(p0) = COPY $x0540    %1(s32) = G_ICMP intpred(ne), %0, %0541    %2(s1) = G_TRUNC %1(s32)542...543 544---545name:            test_frame_index_p0546legalized:       true547registers:548  - { id: 0, class: _ }549stack:550  - { id: 0, name: ptr0, offset: 0, size: 8, alignment: 8 }551body: |552  bb.0:553    ; CHECK-LABEL: name: test_frame_index_p0554    ; CHECK: [[FRAME_INDEX:%[0-9]+]]:gpr(p0) = G_FRAME_INDEX %stack.0.ptr0555    %0(p0) = G_FRAME_INDEX %stack.0.ptr0556...557 558---559name:            test_ptrtoint_s64_p0560legalized:       true561registers:562  - { id: 0, class: _ }563  - { id: 1, class: _ }564body: |565  bb.0:566    liveins: $x0567    ; CHECK-LABEL: name: test_ptrtoint_s64_p0568    ; CHECK: liveins: $x0569    ; CHECK-NEXT: {{  $}}570    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(p0) = COPY $x0571    ; CHECK-NEXT: [[PTRTOINT:%[0-9]+]]:gpr(s64) = G_PTRTOINT [[COPY]](p0)572    %0(p0) = COPY $x0573    %1(s64) = G_PTRTOINT %0574...575 576---577name:            test_inttoptr_p0_s64578legalized:       true579registers:580  - { id: 0, class: _ }581  - { id: 1, class: _ }582body: |583  bb.0:584    liveins: $x0585    ; CHECK-LABEL: name: test_inttoptr_p0_s64586    ; CHECK: liveins: $x0587    ; CHECK-NEXT: {{  $}}588    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s64) = COPY $x0589    ; CHECK-NEXT: [[INTTOPTR:%[0-9]+]]:gpr(p0) = G_INTTOPTR [[COPY]](s64)590    %0(s64) = COPY $x0591    %1(p0) = G_INTTOPTR %0592...593 594---595name:            test_load_s32_p0596legalized:       true597registers:598  - { id: 0, class: _ }599  - { id: 1, class: _ }600body: |601  bb.0:602    liveins: $x0603    ; CHECK-LABEL: name: test_load_s32_p0604    ; CHECK: liveins: $x0605    ; CHECK-NEXT: {{  $}}606    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(p0) = COPY $x0607    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:gpr(s32) = G_LOAD [[COPY]](p0) :: (load (s32))608    %0(p0) = COPY $x0609    %1(s32) = G_LOAD %0 :: (load (s32))610...611 612---613name:            test_store_s32_p0614legalized:       true615registers:616  - { id: 0, class: _ }617  - { id: 1, class: _ }618body: |619  bb.0:620    liveins: $x0, $w1621    ; CHECK-LABEL: name: test_store_s32_p0622    ; CHECK: liveins: $x0, $w1623    ; CHECK-NEXT: {{  $}}624    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(p0) = COPY $x0625    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr(s32) = COPY $w1626    ; CHECK-NEXT: G_STORE [[COPY1]](s32), [[COPY]](p0) :: (store (s32))627    %0(p0) = COPY $x0628    %1(s32) = COPY $w1629    G_STORE %1, %0 :: (store (s32))630...631 632---633name:            test_fadd_s32634legalized:       true635registers:636  - { id: 0, class: _ }637  - { id: 1, class: _ }638body: |639  bb.0:640    liveins: $s0641    ; CHECK-LABEL: name: test_fadd_s32642    ; CHECK: liveins: $s0643    ; CHECK-NEXT: {{  $}}644    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(s32) = COPY $s0645    ; CHECK-NEXT: [[FADD:%[0-9]+]]:fpr(s32) = G_FADD [[COPY]], [[COPY]]646    %0(s32) = COPY $s0647    %1(s32) = G_FADD %0, %0648...649 650---651name:            test_fsub_s32652legalized:       true653registers:654  - { id: 0, class: _ }655  - { id: 1, class: _ }656body: |657  bb.0:658    liveins: $s0659    ; CHECK-LABEL: name: test_fsub_s32660    ; CHECK: liveins: $s0661    ; CHECK-NEXT: {{  $}}662    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(s32) = COPY $s0663    ; CHECK-NEXT: [[FSUB:%[0-9]+]]:fpr(s32) = G_FSUB [[COPY]], [[COPY]]664    %0(s32) = COPY $s0665    %1(s32) = G_FSUB %0, %0666...667 668---669name:            test_fmul_s32670legalized:       true671registers:672  - { id: 0, class: _ }673  - { id: 1, class: _ }674body: |675  bb.0:676    liveins: $s0677    ; CHECK-LABEL: name: test_fmul_s32678    ; CHECK: liveins: $s0679    ; CHECK-NEXT: {{  $}}680    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(s32) = COPY $s0681    ; CHECK-NEXT: [[FMUL:%[0-9]+]]:fpr(s32) = G_FMUL [[COPY]], [[COPY]]682    %0(s32) = COPY $s0683    %1(s32) = G_FMUL %0, %0684...685 686---687name:            test_fdiv_s32688legalized:       true689registers:690  - { id: 0, class: _ }691  - { id: 1, class: _ }692body: |693  bb.0:694    liveins: $s0695    ; CHECK-LABEL: name: test_fdiv_s32696    ; CHECK: liveins: $s0697    ; CHECK-NEXT: {{  $}}698    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(s32) = COPY $s0699    ; CHECK-NEXT: [[FDIV:%[0-9]+]]:fpr(s32) = G_FDIV [[COPY]], [[COPY]]700    %0(s32) = COPY $s0701    %1(s32) = G_FDIV %0, %0702...703 704---705name:            test_fpext_s64_s32706legalized:       true707registers:708  - { id: 0, class: _ }709  - { id: 1, class: _ }710body: |711  bb.0:712    liveins: $s0713    ; CHECK-LABEL: name: test_fpext_s64_s32714    ; CHECK: liveins: $s0715    ; CHECK-NEXT: {{  $}}716    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(s32) = COPY $s0717    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:fpr(s64) = G_FPEXT [[COPY]](s32)718    %0(s32) = COPY $s0719    %1(s64) = G_FPEXT %0720...721 722---723name:            test_fptrunc_s32_s64724legalized:       true725registers:726  - { id: 0, class: _ }727  - { id: 1, class: _ }728body: |729  bb.0:730    liveins: $d0731    ; CHECK-LABEL: name: test_fptrunc_s32_s64732    ; CHECK: liveins: $d0733    ; CHECK-NEXT: {{  $}}734    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(s64) = COPY $d0735    ; CHECK-NEXT: [[FPTRUNC:%[0-9]+]]:fpr(s32) = G_FPTRUNC [[COPY]](s64)736    %0(s64) = COPY $d0737    %1(s32) = G_FPTRUNC %0738...739 740---741name:            test_fconstant_s32742legalized:       true743registers:744  - { id: 0, class: _ }745body: |746  bb.0:747    ; CHECK-LABEL: name: test_fconstant_s32748    ; CHECK: [[C:%[0-9]+]]:fpr(s32) = G_FCONSTANT float 1.000000e+00749    %0(s32) = G_FCONSTANT float 1.0750...751 752---753name:            test_fneg_s32754legalized:       true755body: |756  bb.0:757  liveins: $s0758    ; CHECK-LABEL: name: test_fneg_s32759    ; CHECK: liveins: $s0760    ; CHECK-NEXT: {{  $}}761    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(s32) = COPY $s0762    ; CHECK-NEXT: [[FNEG:%[0-9]+]]:fpr(s32) = G_FNEG [[COPY]]763    %0:_(s32) = COPY $s0764    %1:_(s32) = G_FNEG %0(s32)765...766 767---768name:            test_fcmp_s32769legalized:       true770registers:771  - { id: 0, class: _ }772  - { id: 1, class: _ }773  - { id: 2, class: _ }774body: |775  bb.0:776    liveins: $s0777    ; CHECK-LABEL: name: test_fcmp_s32778    ; CHECK: liveins: $s0779    ; CHECK-NEXT: {{  $}}780    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(s32) = COPY $s0781    ; CHECK-NEXT: [[FCMP:%[0-9]+]]:gpr(s32) = G_FCMP floatpred(olt), [[COPY]](s32), [[COPY]]782    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:gpr(s1) = G_TRUNC [[FCMP]](s32)783    %0(s32) = COPY $s0784    %1(s32) = G_FCMP floatpred(olt), %0, %0785    %2(s1) = G_TRUNC %1(s32)786...787 788---789name:            test_sitofp_s64_s32790legalized:       true791registers:792  - { id: 0, class: _ }793  - { id: 1, class: _ }794body: |795  bb.0:796    liveins: $w0797    ; CHECK-LABEL: name: test_sitofp_s64_s32798    ; CHECK: liveins: $w0799    ; CHECK-NEXT: {{  $}}800    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0801    ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:fpr(s64) = G_SITOFP [[COPY]](s32)802    %0(s32) = COPY $w0803    %1(s64) = G_SITOFP %0804...805 806---807name:            test_sitofp_v4s32808legalized:       true809registers:810  - { id: 0, class: _ }811  - { id: 1, class: _ }812body: |813  bb.0:814    liveins: $q0815    ; CHECK-LABEL: name: test_sitofp_v4s32816    ; CHECK: liveins: $q0817    ; CHECK-NEXT: {{  $}}818    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY $q0819    ; CHECK-NEXT: [[SITOFP:%[0-9]+]]:fpr(<4 x s32>) = G_SITOFP [[COPY]](<4 x s32>)820    %0(<4 x s32>) = COPY $q0821    %1(<4 x s32>) = G_SITOFP %0822...823 824---825name:            test_uitofp_s32_s64826legalized:       true827registers:828  - { id: 0, class: _ }829  - { id: 1, class: _ }830body: |831  bb.0:832    liveins: $x0833    ; CHECK-LABEL: name: test_uitofp_s32_s64834    ; CHECK: liveins: $x0835    ; CHECK-NEXT: {{  $}}836    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s64) = COPY $x0837    ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:fpr(s32) = G_UITOFP [[COPY]](s64)838    %0(s64) = COPY $x0839    %1(s32) = G_UITOFP %0840...841 842---843name:            test_uitofp_v4s32844legalized:       true845registers:846  - { id: 0, class: _ }847  - { id: 1, class: _ }848body: |849  bb.0:850    liveins: $q0851    ; CHECK-LABEL: name: test_uitofp_v4s32852    ; CHECK: liveins: $q0853    ; CHECK-NEXT: {{  $}}854    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY $q0855    ; CHECK-NEXT: [[UITOFP:%[0-9]+]]:fpr(<4 x s32>) = G_UITOFP [[COPY]](<4 x s32>)856    %0(<4 x s32>) = COPY $q0857    %1(<4 x s32>) = G_UITOFP %0858...859 860---861name:            test_fptosi_s64_s32862legalized:       true863registers:864  - { id: 0, class: _ }865  - { id: 1, class: _ }866body: |867  bb.0:868    liveins: $s0869    ; CHECK-LABEL: name: test_fptosi_s64_s32870    ; CHECK: liveins: $s0871    ; CHECK-NEXT: {{  $}}872    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(s32) = COPY $s0873    ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:gpr(s64) = G_FPTOSI [[COPY]](s32)874    %0(s32) = COPY $s0875    %1(s64) = G_FPTOSI %0876...877 878---879name:            test_fptosi_v4s32880legalized:       true881registers:882  - { id: 0, class: _ }883  - { id: 1, class: _ }884body: |885  bb.0:886    liveins: $q0887    ; CHECK-LABEL: name: test_fptosi_v4s32888    ; CHECK: liveins: $q0889    ; CHECK-NEXT: {{  $}}890    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY $q0891    ; CHECK-NEXT: [[FPTOSI:%[0-9]+]]:fpr(<4 x s32>) = G_FPTOSI [[COPY]](<4 x s32>)892    %0(<4 x s32>) = COPY $q0893    %1(<4 x s32>) = G_FPTOSI %0894...895 896---897name:            test_fptoui_s32_s64898legalized:       true899registers:900  - { id: 0, class: _ }901  - { id: 1, class: _ }902body: |903  bb.0:904    liveins: $d0905    ; CHECK-LABEL: name: test_fptoui_s32_s64906    ; CHECK: liveins: $d0907    ; CHECK-NEXT: {{  $}}908    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(s64) = COPY $d0909    ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:gpr(s32) = G_FPTOUI [[COPY]](s64)910    %0(s64) = COPY $d0911    %1(s32) = G_FPTOUI %0912...913 914---915name:            test_fptoui_v4s32916legalized:       true917registers:918  - { id: 0, class: _ }919  - { id: 1, class: _ }920body: |921  bb.0:922    liveins: $q0923    ; CHECK-LABEL: name: test_fptoui_v4s32924    ; CHECK: liveins: $q0925    ; CHECK-NEXT: {{  $}}926    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY $q0927    ; CHECK-NEXT: [[FPTOUI:%[0-9]+]]:fpr(<4 x s32>) = G_FPTOUI [[COPY]](<4 x s32>)928    %0(<4 x s32>) = COPY $q0929    %1(<4 x s32>) = G_FPTOUI %0930...931 932---933name:            test_gphi_ptr934legalized:       true935tracksRegLiveness: true936registers:937  - { id: 0, class: _, preferred-register: '' }938  - { id: 1, class: _, preferred-register: '' }939  - { id: 2, class: _, preferred-register: '' }940  - { id: 3, class: _, preferred-register: '' }941  - { id: 4, class: _, preferred-register: '' }942  - { id: 5, class: _, preferred-register: '' }943body:             |944  ; CHECK-LABEL: name: test_gphi_ptr945  ; CHECK: bb.0:946  ; CHECK-NEXT:   successors: %bb.1(0x40000000), %bb.2(0x40000000)947  ; CHECK-NEXT:   liveins: $w2, $x0, $x1948  ; CHECK-NEXT: {{  $}}949  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:gpr(p0) = COPY $x0950  ; CHECK-NEXT:   [[COPY1:%[0-9]+]]:gpr(p0) = COPY $x1951  ; CHECK-NEXT:   [[COPY2:%[0-9]+]]:gpr(s32) = COPY $w2952  ; CHECK-NEXT:   G_BRCOND [[COPY2]](s32), %bb.1953  ; CHECK-NEXT:   G_BR %bb.2954  ; CHECK-NEXT: {{  $}}955  ; CHECK-NEXT: bb.1:956  ; CHECK-NEXT:   successors: %bb.2(0x80000000)957  ; CHECK-NEXT: {{  $}}958  ; CHECK-NEXT: bb.2:959  ; CHECK-NEXT:   [[PHI:%[0-9]+]]:gpr(p0) = G_PHI [[COPY]](p0), %bb.0, [[COPY1]](p0), %bb.1960  ; CHECK-NEXT:   $x0 = COPY [[PHI]](p0)961  ; CHECK-NEXT:   RET_ReallyLR implicit $x0962  bb.0:963    successors: %bb.1, %bb.2964    liveins: $w2, $x0, $x1965 966    %0(p0) = COPY $x0967    %1(p0) = COPY $x1968    %4(s32) = COPY $w2969    G_BRCOND %4, %bb.1970    G_BR %bb.2971 972  bb.1:973    successors: %bb.2974 975 976  bb.2:977    %3(p0) = G_PHI %0(p0), %bb.0, %1(p0), %bb.1978    $x0 = COPY %3(p0)979    RET_ReallyLR implicit $x0980 981...982 983---984name:            test_restricted_tail_call985legalized:       true986tracksRegLiveness: true987body: |988  bb.0:989    liveins: $x16, $x17990    ; CHECK-LABEL: name: test_restricted_tail_call991    ; CHECK: liveins: $x16, $x17992    ; CHECK-NEXT: {{  $}}993    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s64) = COPY $x16994    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr(s64) = COPY $x17995    ; CHECK-NEXT: RET_ReallyLR996    %0:_(s64) = COPY $x16997    %1:_(s64) = COPY $x17998    RET_ReallyLR999...1000