| # RUN: llc -mtriple=s390x-linux-gnu -mcpu=z196 -O0 -start-after=finalize-isel \ |
| # RUN: -stop-before=regallocfast -o - %s | FileCheck %s |
| # RUN: llc -mtriple=s390x-linux-gnu -mcpu=z196 -O3 -start-after=finalize-isel \ |
| # RUN: -stop-before=livevars -o - %s | FileCheck %s |
| # |
| # Test that a COPY from CC gets implemented with an IPM to a GR32 reg. |
| |
| --- |
| name: fun0 |
| tracksRegLiveness: true |
| registers: |
| - { id: 0, class: grx32bit } |
| body: | |
| bb.0: |
| liveins: $cc |
| ; CHECK-LABEL: name: fun0 |
| ; CHECK: %1:gr32bit = IPM implicit $cc |
| ; CHECK-NEXT: %0:grx32bit = COPY %1 |
| ; CHECK-NEXT: $r2l = COPY %0 |
| ; CHECK-NEXT: Return implicit $r2l |
| %0:grx32bit = COPY $cc |
| $r2l = COPY %0 |
| Return implicit $r2l |
| ... |