213 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 42# RUN: llc -o - %s -mtriple=loongarch64 -mattr=+d \3# RUN: -run-pass=register-coalescer -join-liveintervals=1 -join-splitedges=0 | FileCheck %s4 5---6name: foo7tracksRegLiveness: true8body: |9 ; CHECK-LABEL: name: foo10 ; CHECK: bb.0:11 ; CHECK-NEXT: successors: %bb.1(0x80000000)12 ; CHECK-NEXT: liveins: $r4, $r5, $r6, $r7, $r813 ; CHECK-NEXT: {{ $}}14 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $r815 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $r716 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $r617 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr = COPY $r518 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:gpr = COPY $r419 ; CHECK-NEXT: [[ANDI:%[0-9]+]]:gpr = ANDI [[COPY3]], 120 ; CHECK-NEXT: [[ORI:%[0-9]+]]:gpr = ORI $r0, 121 ; CHECK-NEXT: [[ANDI1:%[0-9]+]]:gpr = ANDI [[COPY2]], 122 ; CHECK-NEXT: [[ANDI2:%[0-9]+]]:gpr = ANDI [[COPY1]], 123 ; CHECK-NEXT: [[ANDI3:%[0-9]+]]:gpr = ANDI [[COPY]], 124 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:gpr = COPY $r025 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:gpr = COPY $r026 ; CHECK-NEXT: {{ $}}27 ; CHECK-NEXT: bb.1:28 ; CHECK-NEXT: successors: %bb.2(0x80000000)29 ; CHECK-NEXT: {{ $}}30 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:gpr = COPY [[COPY5]]31 ; CHECK-NEXT: {{ $}}32 ; CHECK-NEXT: bb.2:33 ; CHECK-NEXT: successors: %bb.3(0x40000000), %bb.4(0x40000000)34 ; CHECK-NEXT: {{ $}}35 ; CHECK-NEXT: BEQZ [[ANDI]], %bb.436 ; CHECK-NEXT: {{ $}}37 ; CHECK-NEXT: bb.3:38 ; CHECK-NEXT: successors: %bb.9(0x80000000)39 ; CHECK-NEXT: {{ $}}40 ; CHECK-NEXT: PseudoBR %bb.941 ; CHECK-NEXT: {{ $}}42 ; CHECK-NEXT: bb.4:43 ; CHECK-NEXT: successors: %bb.5(0x80000000)44 ; CHECK-NEXT: {{ $}}45 ; CHECK-NEXT: bb.5:46 ; CHECK-NEXT: successors: %bb.7(0x7c000000), %bb.6(0x04000000)47 ; CHECK-NEXT: {{ $}}48 ; CHECK-NEXT: dead [[LD_D:%[0-9]+]]:gpr = LD_D $r0, 849 ; CHECK-NEXT: dead [[LD_D1:%[0-9]+]]:gpr = LD_D $r0, 050 ; CHECK-NEXT: BNEZ [[ANDI1]], %bb.751 ; CHECK-NEXT: {{ $}}52 ; CHECK-NEXT: bb.6:53 ; CHECK-NEXT: successors: %bb.11(0x80000000)54 ; CHECK-NEXT: {{ $}}55 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:gpr = COPY $r056 ; CHECK-NEXT: PseudoBR %bb.1157 ; CHECK-NEXT: {{ $}}58 ; CHECK-NEXT: bb.7:59 ; CHECK-NEXT: successors: %bb.8(0x7c000000), %bb.10(0x04000000)60 ; CHECK-NEXT: {{ $}}61 ; CHECK-NEXT: BEQZ [[ANDI2]], %bb.1062 ; CHECK-NEXT: PseudoBR %bb.863 ; CHECK-NEXT: {{ $}}64 ; CHECK-NEXT: bb.8:65 ; CHECK-NEXT: successors: %bb.9(0x04000000), %bb.5(0x7c000000)66 ; CHECK-NEXT: {{ $}}67 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:gpr = ADDI_D [[COPY6]], 168 ; CHECK-NEXT: BEQZ [[ANDI3]], %bb.569 ; CHECK-NEXT: PseudoBR %bb.970 ; CHECK-NEXT: {{ $}}71 ; CHECK-NEXT: bb.9:72 ; CHECK-NEXT: successors: %bb.12(0x80000000)73 ; CHECK-NEXT: {{ $}}74 ; CHECK-NEXT: ST_B $r0, [[COPY4]], 075 ; CHECK-NEXT: PseudoBR %bb.1276 ; CHECK-NEXT: {{ $}}77 ; CHECK-NEXT: bb.10:78 ; CHECK-NEXT: successors: %bb.11(0x80000000)79 ; CHECK-NEXT: {{ $}}80 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:gpr = ADDI_D [[COPY6]], 181 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:gpr = ORI $r0, 182 ; CHECK-NEXT: {{ $}}83 ; CHECK-NEXT: bb.11:84 ; CHECK-NEXT: successors: %bb.12(0x80000000)85 ; CHECK-NEXT: {{ $}}86 ; CHECK-NEXT: ST_D $r0, [[COPY4]], 087 ; CHECK-NEXT: {{ $}}88 ; CHECK-NEXT: bb.12:89 ; CHECK-NEXT: successors: %bb.2(0x7c000000), %bb.1(0x04000000)90 ; CHECK-NEXT: {{ $}}91 ; CHECK-NEXT: BEQ [[COPY7]], [[ORI]], %bb.292 ; CHECK-NEXT: PseudoBR %bb.193 bb.0:94 liveins: $r4, $r5, $r6, $r7, $r895 96 %0:gpr = COPY killed $r897 %1:gpr = COPY killed $r798 %2:gpr = COPY killed $r699 %3:gpr = COPY killed $r5100 %4:gpr = COPY killed $r4101 %5:gpr = COPY $r0102 %6:gpr = COPY killed %5103 %7:gpr = ANDI killed %3, 1104 %8:gpr = ORI $r0, 1105 %9:gpr = ANDI killed %2, 1106 %10:gpr = ANDI killed %1, 1107 %11:gpr = ANDI killed %0, 1108 %12:gpr = COPY %6109 %13:gpr = COPY killed %6110 %14:gpr = IMPLICIT_DEF111 112 bb.1:113 %15:gpr = COPY killed %14114 %16:gpr = COPY killed %13115 %17:gpr = COPY killed %12116 %18:gpr = COPY %17117 %19:gpr = COPY %16118 %20:gpr = COPY killed %16119 %21:gpr = COPY killed %15120 121 bb.2:122 successors: %bb.3, %bb.4123 124 %22:gpr = COPY killed %21125 %23:gpr = COPY killed %20126 %24:gpr = COPY killed %19127 %25:gpr = COPY killed %18128 BEQZ %7, %bb.4129 130 bb.3:131 %26:gpr = COPY killed %24132 %27:gpr = COPY killed %23133 PseudoBR %bb.9134 135 bb.4:136 %28:gpr = COPY killed %23137 138 bb.5:139 successors: %bb.7(0x7c000000), %bb.6(0x04000000)140 141 %29:gpr = COPY killed %28142 dead %30:gpr = LD_D $r0, 8143 dead %31:gpr = LD_D $r0, 0144 BNEZ %9, %bb.7145 146 bb.6:147 %32:gpr = COPY $r0148 %33:gpr = COPY killed %32149 %34:gpr = COPY killed %33150 %35:gpr = COPY killed %22151 PseudoBR %bb.11152 153 bb.7:154 successors: %bb.8(0x7c000000), %bb.10(0x04000000)155 156 BEQZ %10, %bb.10157 PseudoBR %bb.8158 159 bb.8:160 successors: %bb.9(0x04000000), %bb.5(0x7c000000)161 162 %36:gpr = ADDI_D killed %29, 1163 %28:gpr = COPY %36164 %26:gpr = COPY %36165 %27:gpr = COPY killed %36166 BEQZ %11, %bb.5167 PseudoBR %bb.9168 169 bb.9:170 %37:gpr = COPY killed %27171 %38:gpr = COPY killed %26172 %39:gpr = COPY $r0173 ST_B killed %39, %4, 0174 %40:gpr = COPY killed %25175 %41:gpr = COPY killed %38176 %42:gpr = COPY killed %37177 %43:gpr = COPY killed %22178 PseudoBR %bb.12179 180 bb.10:181 %44:gpr = ADDI_D killed %29, 1182 %34:gpr = COPY %8183 %35:gpr = COPY killed %44184 185 bb.11:186 %45:gpr = COPY killed %35187 %46:gpr = COPY killed %34188 %47:gpr = COPY $r0189 ST_D killed %47, %4, 0190 %40:gpr = COPY %45191 %41:gpr = COPY %46192 %42:gpr = COPY killed %46193 %43:gpr = COPY killed %45194 195 bb.12:196 successors: %bb.2(0x7c000000), %bb.1(0x04000000)197 198 %48:gpr = COPY killed %43199 %49:gpr = COPY killed %42200 %50:gpr = COPY killed %41201 %51:gpr = COPY killed %40202 %12:gpr = COPY %51203 %13:gpr = COPY %50204 %14:gpr = COPY %48205 %18:gpr = COPY killed %51206 %19:gpr = COPY killed %50207 %20:gpr = COPY killed %49208 %21:gpr = COPY killed %48209 BEQ %17, %8, %bb.2210 PseudoBR %bb.1211 212...213