| # RUN: llc -march=aarch64 -o - %s -run-pass=machine-cp | FileCheck %s |
| |
| --- |
| name: dont_propagate_past_lower_subreg_kill |
| tracksRegLiveness: true |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: dont_propagate_past_lower_subreg_kill |
| ; CHECK: HINT 0, implicit-def $q0 |
| ; CHECK: HINT 0, implicit-def $d1 |
| ; CHECK: HINT 0, implicit killed $d1 |
| ; CHECK: $q1 = COPY killed $q0 |
| ; CHECK: $q2 = COPY $q1 |
| ; CHECK: HINT 0, implicit $q2 |
| HINT 0, implicit-def $q0 |
| $q1 = COPY killed $q0 |
| $q0 = COPY killed $q1 |
| |
| HINT 0, implicit-def $d1 |
| HINT 0, implicit killed $d1 |
| |
| $q1 = COPY killed $q0 |
| $q2 = COPY $q1 |
| HINT 0, implicit $q2 |
| |
| ... |
| |
| --- |
| name: dont_propagate_past_upper_subreg_kill |
| tracksRegLiveness: true |
| body: | |
| bb.0: |
| ; CHECK-LABEL: name: dont_propagate_past_upper_subreg_kill |
| ; CHECK: HINT 0, implicit-def $z0 |
| ; CHECK: HINT 0, implicit-def $z1_hi |
| ; CHECK: HINT 0, implicit killed $z1_hi |
| ; CHECK: $z1 = COPY killed $z0 |
| ; CHECK: $z2 = COPY $z1 |
| ; CHECK: HINT 0, implicit $z2 |
| HINT 0, implicit-def $z0 |
| $z1 = COPY killed $z0 |
| $z0 = COPY killed $z1 |
| |
| HINT 0, implicit-def $z1_hi |
| HINT 0, implicit killed $z1_hi |
| |
| $z1 = COPY killed $z0 |
| $z2 = COPY $z1 |
| HINT 0, implicit $z2 |
| |
| ... |