| # RUN: llc -o - %s -mtriple=s390x-linux-gnu -mcpu=z16 -verify-machineinstrs \ | |
| # RUN: -run-pass=machine-scheduler 2>&1 | FileCheck %s | |
| # Respect the weak edge between the SLLK and CLFIMux. Only if the SLLK is scheduled | |
| # below can the COPY be coalesced. | |
| # CHECK: name: fun0 | |
| # CHECK: CLFIMux %0, 0, implicit-def $cc | |
| # CHECK-NEXT: %1:gr32bit = SLLK %0, $noreg, 1 | |
| # CHECK-NEXT: %0:gr32bit = COPY %1 | |
| # CHECK-NEXT: BRC 14, 10, %bb.1, implicit killed $cc | |
| --- | |
| name: fun0 | |
| tracksRegLiveness: true | |
| body: | | |
| bb.0: | |
| successors: %bb.1(0x80000000) | |
| %0:gr32bit = LHIMux 0 | |
| bb.1: | |
| successors: %bb.2(0x04000000), %bb.1(0x7c000000) | |
| %1:gr32bit = SLLK %0, $noreg, 1 | |
| CLFIMux %0, 0, implicit-def $cc | |
| %0:gr32bit = COPY %1 | |
| BRC 14, 10, %bb.1, implicit killed $cc | |
| J %bb.2 | |
| bb.2: | |
| Return | |
| ... |