| # RUN: llc -mtriple=s390x-linux-gnu -mcpu=z13 -run-pass=postra-machine-sink -verify-machineinstrs -o - %s | FileCheck %s |
| |
| --- |
| # Don't sink COPY to bb.2 since SLLK define r13l that is aliased with r12q. |
| # CHECK-LABEL: name: donot_sink_copy |
| # CHECK-LABEL: bb.0: |
| # CHECK: renamable $r0l = COPY renamable $r12l, implicit killed $r12q |
| # CHECK-LABEL: bb.2: |
| # CHECK-NOT: COPY |
| name: donot_sink_copy |
| tracksRegLiveness: true |
| body: | |
| bb.0 : |
| successors: %bb.1, %bb.2 |
| liveins: $r2d, $r3d, $r4d, $r5d, $r12q |
| |
| renamable $r0l = COPY renamable $r12l, implicit killed $r12q |
| renamable $r13l = SLLK renamable $r4l, $noreg, 1 |
| CHIMux renamable $r3l, 0, implicit-def $cc, implicit killed $r3d |
| BRC 14, 6, %bb.2, implicit killed $cc |
| J %bb.1 |
| |
| bb.1: |
| successors: |
| |
| bb.2: |
| successors: |
| liveins: $r2d, $r4d, $r5d, $r0l, $r13l |
| |
| renamable $r0d = LGFR killed renamable $r0l |
| renamable $r11d = LGFR killed renamable $r13l |
| ... |
| |
| # Don't sink COPY to bb.2 since SLLK use r1l that is aliased with r0q. |
| # CHECK-LABEL: name: donot_sink_copy2 |
| # CHECK-LABEL: bb.0: |
| # CHECK: renamable $r0l = COPY renamable $r12l, implicit-def $r0q |
| # CHECK-LABEL: bb.2: |
| # CHECK-NOT: COPY |
| name: donot_sink_copy2 |
| tracksRegLiveness: true |
| body: | |
| bb.0 : |
| successors: %bb.1, %bb.2 |
| liveins: $r2d, $r3d, $r4d, $r5d, $r12q |
| |
| renamable $r0l = COPY renamable $r12l, implicit def $r0q |
| renamable $r13l = SLLK renamable $r1l, $noreg, 1 |
| CHIMux renamable $r3l, 0, implicit-def $cc, implicit killed $r3d |
| BRC 14, 6, %bb.2, implicit killed $cc |
| J %bb.1 |
| |
| bb.1: |
| successors: |
| |
| bb.2: |
| successors: |
| liveins: $r2d, $r4d, $r5d, $r0l, $r13l |
| |
| renamable $r0d = LGFR killed renamable $r0l |
| renamable $r11d = LGFR killed renamable $r13l |
| ... |
| |