brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.2 KiB · cef929f Raw
483 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -mattr=+m -run-pass=regbankselect \3# RUN:   -simplify-mir -verify-machineinstrs %s \4# RUN:   -o - | FileCheck -check-prefix=RV64I %s5 6---7name:            add_i648legalized:       true9tracksRegLiveness: true10body:             |11  bb.0.entry:12    liveins: $x10, $x1113 14    ; RV64I-LABEL: name: add_i6415    ; RV64I: liveins: $x10, $x1116    ; RV64I-NEXT: {{  $}}17    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x1018    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x1119    ; RV64I-NEXT: [[ADD:%[0-9]+]]:gprb(s64) = G_ADD [[COPY]], [[COPY1]]20    ; RV64I-NEXT: $x10 = COPY [[ADD]](s64)21    ; RV64I-NEXT: PseudoRET implicit $x1022    %0:_(s64) = COPY $x1023    %1:_(s64) = COPY $x1124    %2:_(s64) = G_ADD %0, %125    $x10 = COPY %2(s64)26    PseudoRET implicit $x1027 28...29---30name:            sub_i6431legalized:       true32tracksRegLiveness: true33body:             |34  bb.0.entry:35    liveins: $x10, $x1136 37    ; RV64I-LABEL: name: sub_i6438    ; RV64I: liveins: $x10, $x1139    ; RV64I-NEXT: {{  $}}40    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x1041    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x1142    ; RV64I-NEXT: [[SUB:%[0-9]+]]:gprb(s64) = G_SUB [[COPY]], [[COPY1]]43    ; RV64I-NEXT: $x10 = COPY [[SUB]](s64)44    ; RV64I-NEXT: PseudoRET implicit $x1045    %0:_(s64) = COPY $x1046    %1:_(s64) = COPY $x1147    %2:_(s64) = G_SUB %0, %148    $x10 = COPY %2(s64)49    PseudoRET implicit $x1050 51...52---53name:            shl_i6454legalized:       true55tracksRegLiveness: true56body:             |57  bb.0.entry:58    liveins: $x10, $x1159 60    ; RV64I-LABEL: name: shl_i6461    ; RV64I: liveins: $x10, $x1162    ; RV64I-NEXT: {{  $}}63    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x1064    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x1165    ; RV64I-NEXT: [[SHL:%[0-9]+]]:gprb(s64) = G_SHL [[COPY]], [[COPY1]](s64)66    ; RV64I-NEXT: $x10 = COPY [[SHL]](s64)67    ; RV64I-NEXT: PseudoRET implicit $x1068    %0:_(s64) = COPY $x1069    %1:_(s64) = COPY $x1170    %2:_(s64) = G_SHL %0, %171    $x10 = COPY %2(s64)72    PseudoRET implicit $x1073 74...75---76name:            ashr_i6477legalized:       true78tracksRegLiveness: true79body:             |80  bb.0.entry:81    liveins: $x10, $x1182 83    ; RV64I-LABEL: name: ashr_i6484    ; RV64I: liveins: $x10, $x1185    ; RV64I-NEXT: {{  $}}86    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x1087    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x1188    ; RV64I-NEXT: [[ASHR:%[0-9]+]]:gprb(s64) = G_ASHR [[COPY]], [[COPY1]](s64)89    ; RV64I-NEXT: $x10 = COPY [[ASHR]](s64)90    ; RV64I-NEXT: PseudoRET implicit $x1091    %0:_(s64) = COPY $x1092    %1:_(s64) = COPY $x1193    %2:_(s64) = G_ASHR %0, %194    $x10 = COPY %2(s64)95    PseudoRET implicit $x1096 97...98---99name:            lshr_i64100legalized:       true101tracksRegLiveness: true102body:             |103  bb.0.entry:104    liveins: $x10, $x11105 106    ; RV64I-LABEL: name: lshr_i64107    ; RV64I: liveins: $x10, $x11108    ; RV64I-NEXT: {{  $}}109    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10110    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x11111    ; RV64I-NEXT: [[LSHR:%[0-9]+]]:gprb(s64) = G_LSHR [[COPY]], [[COPY1]](s64)112    ; RV64I-NEXT: $x10 = COPY [[LSHR]](s64)113    ; RV64I-NEXT: PseudoRET implicit $x10114    %0:_(s64) = COPY $x10115    %1:_(s64) = COPY $x11116    %2:_(s64) = G_LSHR %0, %1117    $x10 = COPY %2(s64)118    PseudoRET implicit $x10119 120...121---122name:            and_i64123legalized:       true124tracksRegLiveness: true125body:             |126  bb.0.entry:127    liveins: $x10, $x11128 129    ; RV64I-LABEL: name: and_i64130    ; RV64I: liveins: $x10, $x11131    ; RV64I-NEXT: {{  $}}132    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10133    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x11134    ; RV64I-NEXT: [[AND:%[0-9]+]]:gprb(s64) = G_AND [[COPY]], [[COPY1]]135    ; RV64I-NEXT: $x10 = COPY [[AND]](s64)136    ; RV64I-NEXT: PseudoRET implicit $x10137    %0:_(s64) = COPY $x10138    %1:_(s64) = COPY $x11139    %2:_(s64) = G_AND %0, %1140    $x10 = COPY %2(s64)141    PseudoRET implicit $x10142 143...144---145name:            or_i64146legalized:       true147tracksRegLiveness: true148body:             |149  bb.0.entry:150    liveins: $x10, $x11151 152    ; RV64I-LABEL: name: or_i64153    ; RV64I: liveins: $x10, $x11154    ; RV64I-NEXT: {{  $}}155    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10156    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x11157    ; RV64I-NEXT: [[OR:%[0-9]+]]:gprb(s64) = G_OR [[COPY]], [[COPY1]]158    ; RV64I-NEXT: $x10 = COPY [[OR]](s64)159    ; RV64I-NEXT: PseudoRET implicit $x10160    %0:_(s64) = COPY $x10161    %1:_(s64) = COPY $x11162    %2:_(s64) = G_OR %0, %1163    $x10 = COPY %2(s64)164    PseudoRET implicit $x10165 166...167---168name:            xor_i64169legalized:       true170tracksRegLiveness: true171body:             |172  bb.0.entry:173    liveins: $x10, $x11174 175    ; RV64I-LABEL: name: xor_i64176    ; RV64I: liveins: $x10, $x11177    ; RV64I-NEXT: {{  $}}178    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10179    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x11180    ; RV64I-NEXT: [[XOR:%[0-9]+]]:gprb(s64) = G_XOR [[COPY]], [[COPY1]]181    ; RV64I-NEXT: $x10 = COPY [[XOR]](s64)182    ; RV64I-NEXT: PseudoRET implicit $x10183    %0:_(s64) = COPY $x10184    %1:_(s64) = COPY $x11185    %2:_(s64) = G_XOR %0, %1186    $x10 = COPY %2(s64)187    PseudoRET implicit $x10188 189...190---191name:            mul_i64192legalized:       true193tracksRegLiveness: true194body:             |195  bb.0.entry:196    liveins: $x10, $x11197 198    ; RV64I-LABEL: name: mul_i64199    ; RV64I: liveins: $x10, $x11200    ; RV64I-NEXT: {{  $}}201    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10202    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x11203    ; RV64I-NEXT: [[MUL:%[0-9]+]]:gprb(s64) = G_MUL [[COPY]], [[COPY1]]204    ; RV64I-NEXT: $x10 = COPY [[MUL]](s64)205    ; RV64I-NEXT: PseudoRET implicit $x10206    %0:_(s64) = COPY $x10207    %1:_(s64) = COPY $x11208    %2:_(s64) = G_MUL %0, %1209    $x10 = COPY %2(s64)210    PseudoRET implicit $x10211 212...213---214name:            sdiv_i64215legalized:       true216tracksRegLiveness: true217body:             |218  bb.0.entry:219    liveins: $x10, $x11220 221    ; RV64I-LABEL: name: sdiv_i64222    ; RV64I: liveins: $x10, $x11223    ; RV64I-NEXT: {{  $}}224    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10225    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x11226    ; RV64I-NEXT: [[SDIV:%[0-9]+]]:gprb(s64) = G_SDIV [[COPY]], [[COPY1]]227    ; RV64I-NEXT: $x10 = COPY [[SDIV]](s64)228    ; RV64I-NEXT: PseudoRET implicit $x10229    %0:_(s64) = COPY $x10230    %1:_(s64) = COPY $x11231    %2:_(s64) = G_SDIV %0, %1232    $x10 = COPY %2(s64)233    PseudoRET implicit $x10234 235...236---237name:            srem_i64238legalized:       true239tracksRegLiveness: true240body:             |241  bb.0.entry:242    liveins: $x10, $x11243 244    ; RV64I-LABEL: name: srem_i64245    ; RV64I: liveins: $x10, $x11246    ; RV64I-NEXT: {{  $}}247    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10248    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x11249    ; RV64I-NEXT: [[SREM:%[0-9]+]]:gprb(s64) = G_SREM [[COPY]], [[COPY1]]250    ; RV64I-NEXT: $x10 = COPY [[SREM]](s64)251    ; RV64I-NEXT: PseudoRET implicit $x10252    %0:_(s64) = COPY $x10253    %1:_(s64) = COPY $x11254    %2:_(s64) = G_SREM %0, %1255    $x10 = COPY %2(s64)256    PseudoRET implicit $x10257 258...259---260name:            smulh_i64261legalized:       true262tracksRegLiveness: true263body:             |264  bb.0.entry:265    liveins: $x10, $x11266 267    ; RV64I-LABEL: name: smulh_i64268    ; RV64I: liveins: $x10, $x11269    ; RV64I-NEXT: {{  $}}270    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10271    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x11272    ; RV64I-NEXT: [[SMULH:%[0-9]+]]:gprb(s64) = G_SMULH [[COPY]], [[COPY1]]273    ; RV64I-NEXT: $x10 = COPY [[SMULH]](s64)274    ; RV64I-NEXT: PseudoRET implicit $x10275    %0:_(s64) = COPY $x10276    %1:_(s64) = COPY $x11277    %2:_(s64) = G_SMULH %0, %1278    $x10 = COPY %2(s64)279    PseudoRET implicit $x10280 281...282---283name:            udiv_i64284legalized:       true285tracksRegLiveness: true286body:             |287  bb.0.entry:288    liveins: $x10, $x11289 290    ; RV64I-LABEL: name: udiv_i64291    ; RV64I: liveins: $x10, $x11292    ; RV64I-NEXT: {{  $}}293    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10294    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x11295    ; RV64I-NEXT: [[UDIV:%[0-9]+]]:gprb(s64) = G_UDIV [[COPY]], [[COPY1]]296    ; RV64I-NEXT: $x10 = COPY [[UDIV]](s64)297    ; RV64I-NEXT: PseudoRET implicit $x10298    %0:_(s64) = COPY $x10299    %1:_(s64) = COPY $x11300    %2:_(s64) = G_UDIV %0, %1301    $x10 = COPY %2(s64)302    PseudoRET implicit $x10303 304...305---306name:            urem_i64307legalized:       true308tracksRegLiveness: true309body:             |310  bb.0.entry:311    liveins: $x10, $x11312 313    ; RV64I-LABEL: name: urem_i64314    ; RV64I: liveins: $x10, $x11315    ; RV64I-NEXT: {{  $}}316    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10317    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x11318    ; RV64I-NEXT: [[UREM:%[0-9]+]]:gprb(s64) = G_UREM [[COPY]], [[COPY1]]319    ; RV64I-NEXT: $x10 = COPY [[UREM]](s64)320    ; RV64I-NEXT: PseudoRET implicit $x10321    %0:_(s64) = COPY $x10322    %1:_(s64) = COPY $x11323    %2:_(s64) = G_UREM %0, %1324    $x10 = COPY %2(s64)325    PseudoRET implicit $x10326 327...328---329name:            umulh_i64330legalized:       true331tracksRegLiveness: true332body:             |333  bb.0.entry:334    liveins: $x10, $x11335 336    ; RV64I-LABEL: name: umulh_i64337    ; RV64I: liveins: $x10, $x11338    ; RV64I-NEXT: {{  $}}339    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10340    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x11341    ; RV64I-NEXT: [[UMULH:%[0-9]+]]:gprb(s64) = G_UMULH [[COPY]], [[COPY1]]342    ; RV64I-NEXT: $x10 = COPY [[UMULH]](s64)343    ; RV64I-NEXT: PseudoRET implicit $x10344    %0:_(s64) = COPY $x10345    %1:_(s64) = COPY $x11346    %2:_(s64) = G_UMULH %0, %1347    $x10 = COPY %2(s64)348    PseudoRET implicit $x10349 350...351---352name:            icmp_i64353legalized:       true354tracksRegLiveness: true355body:             |356  bb.0.entry:357    liveins: $x10, $x11358 359    ; RV64I-LABEL: name: icmp_i64360    ; RV64I: liveins: $x10, $x11361    ; RV64I-NEXT: {{  $}}362    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10363    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x11364    ; RV64I-NEXT: [[ICMP:%[0-9]+]]:gprb(s64) = G_ICMP intpred(eq), [[COPY]](s64), [[COPY1]]365    ; RV64I-NEXT: $x10 = COPY [[ICMP]](s64)366    ; RV64I-NEXT: PseudoRET implicit $x10367    %0:_(s64) = COPY $x10368    %1:_(s64) = COPY $x11369    %2:_(s64) = G_ICMP intpred(eq), %0(s64), %1370    $x10 = COPY %2(s64)371    PseudoRET implicit $x10372 373...374---375name:            icmp_ptr376legalized:       true377tracksRegLiveness: true378body:             |379  bb.0.entry:380    liveins: $x10, $x11381 382    ; RV64I-LABEL: name: icmp_ptr383    ; RV64I: liveins: $x10, $x11384    ; RV64I-NEXT: {{  $}}385    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10386    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $x11387    ; RV64I-NEXT: [[ICMP:%[0-9]+]]:gprb(s64) = G_ICMP intpred(eq), [[COPY]](p0), [[COPY1]]388    ; RV64I-NEXT: $x10 = COPY [[ICMP]](s64)389    ; RV64I-NEXT: PseudoRET implicit $x10390    %0:_(p0) = COPY $x10391    %1:_(p0) = COPY $x11392    %2:_(s64) = G_ICMP intpred(eq), %0(p0), %1393    $x10 = COPY %2(s64)394    PseudoRET implicit $x10395 396...397---398name:            sext_inreg_i64399legalized:       true400tracksRegLiveness: true401body:             |402  bb.0.entry:403    liveins: $x10404 405    ; RV64I-LABEL: name: sext_inreg_i64406    ; RV64I: liveins: $x10407    ; RV64I-NEXT: {{  $}}408    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10409    ; RV64I-NEXT: [[SEXT_INREG:%[0-9]+]]:gprb(s64) = G_SEXT_INREG [[COPY]], 32410    ; RV64I-NEXT: $x10 = COPY [[SEXT_INREG]](s64)411    ; RV64I-NEXT: PseudoRET implicit $x10412    %0:_(s64) = COPY $x10413    %1:_(s64) = G_SEXT_INREG %0, 32414    $x10 = COPY %1(s64)415    PseudoRET implicit $x10416 417...418---419name:            gep420legalized:       true421tracksRegLiveness: true422body:             |423  bb.0.entry:424    liveins: $x10, $x11425 426    ; RV64I-LABEL: name: gep427    ; RV64I: liveins: $x10, $x11428    ; RV64I-NEXT: {{  $}}429    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10430    ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(s64) = COPY $x11431    ; RV64I-NEXT: [[PTR_ADD:%[0-9]+]]:gprb(p0) = G_PTR_ADD [[COPY]], [[COPY1]](s64)432    ; RV64I-NEXT: $x10 = COPY [[PTR_ADD]](p0)433    ; RV64I-NEXT: PseudoRET implicit $x10434    %0:_(p0) = COPY $x10435    %1:_(s64) = COPY $x11436    %2:_(p0) = G_PTR_ADD %0, %1(s64)437    $x10 = COPY %2(p0)438    PseudoRET implicit $x10439 440...441---442name:            ptrtoint443legalized:       true444tracksRegLiveness: true445body:             |446  bb.0.entry:447    liveins: $x10448 449    ; RV64I-LABEL: name: ptrtoint450    ; RV64I: liveins: $x10451    ; RV64I-NEXT: {{  $}}452    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10453    ; RV64I-NEXT: [[PTRTOINT:%[0-9]+]]:gprb(s64) = G_PTRTOINT [[COPY]](p0)454    ; RV64I-NEXT: $x10 = COPY [[PTRTOINT]](s64)455    ; RV64I-NEXT: PseudoRET implicit $x10456    %0:_(p0) = COPY $x10457    %1:_(s64) = G_PTRTOINT %0(p0)458    $x10 = COPY %1(s64)459    PseudoRET implicit $x10460 461...462---463name:            inttoprt464legalized:       true465tracksRegLiveness: true466body:             |467  bb.0.entry:468    liveins: $x10469 470    ; RV64I-LABEL: name: inttoprt471    ; RV64I: liveins: $x10472    ; RV64I-NEXT: {{  $}}473    ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10474    ; RV64I-NEXT: [[INTTOPTR:%[0-9]+]]:gprb(p0) = G_INTTOPTR [[COPY]](s64)475    ; RV64I-NEXT: $x10 = COPY [[INTTOPTR]](p0)476    ; RV64I-NEXT: PseudoRET implicit $x10477    %0:_(s64) = COPY $x10478    %1:_(p0) = G_INTTOPTR %0(s64)479    $x10 = COPY %1(p0)480    PseudoRET implicit $x10481 482...483