|
1 |
| -# XFAIL: * |
| 1 | +# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 4 |
2 | 2 | # RUN: llc -o - %s -mtriple=loongarch64 \
|
3 |
| -# RUN: -run-pass=register-coalescer -join-liveintervals=1 -join-splitedges=0 2>&1 | FileCheck %s |
| 3 | +# RUN: -run-pass=register-coalescer -join-liveintervals=1 -join-splitedges=0 | FileCheck %s |
4 | 4 |
|
5 | 5 | --- |
|
6 | 6 | source_filename = "register-coalescer-crash-pr79718.ll"
|
@@ -180,6 +180,91 @@ debugValueSubstitutions: []
|
180 | 180 | constants: []
|
181 | 181 | machineFunctionInfo: {}
|
182 | 182 | body: |
|
| 183 | + ; CHECK-LABEL: name: foo |
| 184 | + ; CHECK: bb.0.start: |
| 185 | + ; CHECK-NEXT: successors: %bb.1(0x80000000) |
| 186 | + ; CHECK-NEXT: liveins: $r4, $r5, $r6, $r7, $r8 |
| 187 | + ; CHECK-NEXT: {{ $}} |
| 188 | + ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $r8 |
| 189 | + ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $r7 |
| 190 | + ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $r6 |
| 191 | + ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr = COPY $r5 |
| 192 | + ; CHECK-NEXT: [[COPY4:%[0-9]+]]:gpr = COPY $r4 |
| 193 | + ; CHECK-NEXT: [[ANDI:%[0-9]+]]:gpr = ANDI [[COPY3]], 1 |
| 194 | + ; CHECK-NEXT: [[ORI:%[0-9]+]]:gpr = ORI $r0, 1 |
| 195 | + ; CHECK-NEXT: [[ANDI1:%[0-9]+]]:gpr = ANDI [[COPY2]], 1 |
| 196 | + ; CHECK-NEXT: [[ANDI2:%[0-9]+]]:gpr = ANDI [[COPY1]], 1 |
| 197 | + ; CHECK-NEXT: [[ANDI3:%[0-9]+]]:gpr = ANDI [[COPY]], 1 |
| 198 | + ; CHECK-NEXT: [[COPY5:%[0-9]+]]:gpr = COPY $r0 |
| 199 | + ; CHECK-NEXT: [[COPY6:%[0-9]+]]:gpr = COPY $r0 |
| 200 | + ; CHECK-NEXT: {{ $}} |
| 201 | + ; CHECK-NEXT: bb.1.bb1: |
| 202 | + ; CHECK-NEXT: successors: %bb.2(0x80000000) |
| 203 | + ; CHECK-NEXT: {{ $}} |
| 204 | + ; CHECK-NEXT: [[COPY7:%[0-9]+]]:gpr = COPY [[COPY5]] |
| 205 | + ; CHECK-NEXT: {{ $}} |
| 206 | + ; CHECK-NEXT: bb.2.bb2: |
| 207 | + ; CHECK-NEXT: successors: %bb.3(0x40000000), %bb.4(0x40000000) |
| 208 | + ; CHECK-NEXT: {{ $}} |
| 209 | + ; CHECK-NEXT: BEQZ [[ANDI]], %bb.4 |
| 210 | + ; CHECK-NEXT: {{ $}} |
| 211 | + ; CHECK-NEXT: bb.3: |
| 212 | + ; CHECK-NEXT: successors: %bb.9(0x80000000) |
| 213 | + ; CHECK-NEXT: {{ $}} |
| 214 | + ; CHECK-NEXT: PseudoBR %bb.9 |
| 215 | + ; CHECK-NEXT: {{ $}} |
| 216 | + ; CHECK-NEXT: bb.4.preheader.preheader: |
| 217 | + ; CHECK-NEXT: successors: %bb.5(0x80000000) |
| 218 | + ; CHECK-NEXT: {{ $}} |
| 219 | + ; CHECK-NEXT: {{ $}} |
| 220 | + ; CHECK-NEXT: bb.5.preheader: |
| 221 | + ; CHECK-NEXT: successors: %bb.7(0x7c000000), %bb.6(0x04000000) |
| 222 | + ; CHECK-NEXT: {{ $}} |
| 223 | + ; CHECK-NEXT: dead [[LD_D:%[0-9]+]]:gpr = LD_D $r0, 8 :: (volatile load (s64) from `ptr null` + 8, basealign 4294967296) |
| 224 | + ; CHECK-NEXT: dead [[LD_D1:%[0-9]+]]:gpr = LD_D $r0, 0 :: (volatile load (s64) from `ptr null`, align 4294967296) |
| 225 | + ; CHECK-NEXT: BNEZ [[ANDI1]], %bb.7 |
| 226 | + ; CHECK-NEXT: {{ $}} |
| 227 | + ; CHECK-NEXT: bb.6: |
| 228 | + ; CHECK-NEXT: successors: %bb.11(0x80000000) |
| 229 | + ; CHECK-NEXT: {{ $}} |
| 230 | + ; CHECK-NEXT: [[COPY6:%[0-9]+]]:gpr = COPY $r0 |
| 231 | + ; CHECK-NEXT: PseudoBR %bb.11 |
| 232 | + ; CHECK-NEXT: {{ $}} |
| 233 | + ; CHECK-NEXT: bb.7.bb3: |
| 234 | + ; CHECK-NEXT: successors: %bb.8(0x7c000000), %bb.10(0x04000000) |
| 235 | + ; CHECK-NEXT: {{ $}} |
| 236 | + ; CHECK-NEXT: BEQZ [[ANDI2]], %bb.10 |
| 237 | + ; CHECK-NEXT: PseudoBR %bb.8 |
| 238 | + ; CHECK-NEXT: {{ $}} |
| 239 | + ; CHECK-NEXT: bb.8.bb4: |
| 240 | + ; CHECK-NEXT: successors: %bb.9(0x04000000), %bb.5(0x7c000000) |
| 241 | + ; CHECK-NEXT: {{ $}} |
| 242 | + ; CHECK-NEXT: [[COPY6:%[0-9]+]]:gpr = ADDI_D [[COPY6]], 1 |
| 243 | + ; CHECK-NEXT: BEQZ [[ANDI3]], %bb.5 |
| 244 | + ; CHECK-NEXT: PseudoBR %bb.9 |
| 245 | + ; CHECK-NEXT: {{ $}} |
| 246 | + ; CHECK-NEXT: bb.9.loopexit: |
| 247 | + ; CHECK-NEXT: successors: %bb.12(0x80000000) |
| 248 | + ; CHECK-NEXT: {{ $}} |
| 249 | + ; CHECK-NEXT: ST_B $r0, [[COPY4]], 0 :: (store (s8) into %ir.0) |
| 250 | + ; CHECK-NEXT: PseudoBR %bb.12 |
| 251 | + ; CHECK-NEXT: {{ $}} |
| 252 | + ; CHECK-NEXT: bb.10.bb3.bb5_crit_edge: |
| 253 | + ; CHECK-NEXT: successors: %bb.11(0x80000000) |
| 254 | + ; CHECK-NEXT: {{ $}} |
| 255 | + ; CHECK-NEXT: [[COPY5:%[0-9]+]]:gpr = ADDI_D [[COPY6]], 1 |
| 256 | + ; CHECK-NEXT: [[COPY6:%[0-9]+]]:gpr = COPY [[ORI]] |
| 257 | + ; CHECK-NEXT: {{ $}} |
| 258 | + ; CHECK-NEXT: bb.11.bb5: |
| 259 | + ; CHECK-NEXT: successors: %bb.12(0x80000000) |
| 260 | + ; CHECK-NEXT: {{ $}} |
| 261 | + ; CHECK-NEXT: ST_D $r0, [[COPY4]], 0 :: (store (s64) into %ir.0) |
| 262 | + ; CHECK-NEXT: {{ $}} |
| 263 | + ; CHECK-NEXT: bb.12.bb6: |
| 264 | + ; CHECK-NEXT: successors: %bb.2(0x7c000000), %bb.1(0x04000000) |
| 265 | + ; CHECK-NEXT: {{ $}} |
| 266 | + ; CHECK-NEXT: BEQ [[COPY7]], [[ORI]], %bb.2 |
| 267 | + ; CHECK-NEXT: PseudoBR %bb.1 |
183 | 268 | bb.0.start:
|
184 | 269 | successors: %bb.1(0x80000000)
|
185 | 270 | liveins: $r4, $r5, $r6, $r7, $r8
|
|
0 commit comments