| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5 |
| # RUN: llc -mtriple=s390x-linux-gnu -run-pass=machine-latecleanup %s -o - -mcpu=z16 \ |
| # RUN: -verify-machineinstrs 2>&1 | FileCheck %s |
| |
| # Kill flag of $r0q (super-reg) needs to be removed, and $r0l needs to be added as live-in. |
| --- |
| name: fun0 |
| tracksRegLiveness: true |
| body: | |
| ; CHECK-LABEL: name: fun0 |
| ; CHECK: bb.0: |
| ; CHECK-NEXT: successors: %bb.1(0x80000000) |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: renamable $r0l = LHIMux -1 |
| ; CHECK-NEXT: J %bb.1 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: bb.1: |
| ; CHECK-NEXT: liveins: $r0l |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: renamable $r1d = LGFI 0 |
| ; CHECK-NEXT: ST128 renamable $r0q, $r15d, 168, $noreg |
| ; CHECK-NEXT: ST killed renamable $r0l, $r15d, 160, $noreg |
| ; CHECK-NEXT: Return |
| bb.0: |
| renamable $r0l = LHIMux -1 |
| J %bb.1 |
| |
| bb.1: |
| renamable $r1d = LGFI 0 |
| ST128 killed renamable $r0q, $r15d, 168, $noreg |
| renamable $r0l = LHIMux -1 |
| ST killed renamable $r0l, $r15d, 160, $noreg |
| Return |
| ... |
| |
| # Kill flags of both $r1d and $r0q (super-reg) need to be removed. |
| --- |
| name: fun1 |
| tracksRegLiveness: true |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: fun1 |
| ; CHECK: renamable $r1d = LLILL 1 |
| ; CHECK-NEXT: STG renamable $r1d, killed $r15d, 8, $noreg |
| ; CHECK-NEXT: renamable $r0d = LLILL 0 |
| ; CHECK-NEXT: ST128 renamable $r0q, $r15d, 0, $noreg |
| ; CHECK-NEXT: STG killed renamable $r1d, killed $r15d, 8, $noreg |
| ; CHECK-NEXT: Return |
| renamable $r1d = LLILL 1 |
| STG killed renamable $r1d, killed $r15d, 8, $noreg |
| renamable $r0d = LLILL 0 |
| ST128 killed renamable $r0q, $r15d, 0, $noreg |
| renamable $r1d = LLILL 1 |
| STG killed renamable $r1d, killed $r15d, 8, $noreg |
| Return |
| ... |
| |
| # Kill flags of both $r1l (subreg) and $r1d need to be removed. |
| --- |
| name: fun2 |
| tracksRegLiveness: true |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: fun2 |
| ; CHECK: renamable $r1d = LLILL 1 |
| ; CHECK-NEXT: ST renamable $r1l, $r15d, 0, $noreg |
| ; CHECK-NEXT: STG renamable $r1d, $r15d, 8, $noreg |
| ; CHECK-NEXT: STG killed renamable $r1d, $r15d, 16, $noreg |
| ; CHECK-NEXT: Return |
| renamable $r1d = LLILL 1 |
| ST killed renamable $r1l, $r15d, 0, $noreg |
| STG killed renamable $r1d, $r15d, 8, $noreg |
| renamable $r1d = LLILL 1 |
| STG killed renamable $r1d, $r15d, 16, $noreg |
| Return |
| ... |