| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py |
| # RUN: llc -o - -march=aarch64 -run-pass=aarch64-prelegalizer-combiner %s | FileCheck %s |
| |
| # Make sure we don't lose the register bank constraints when |
| # combining COPY instructions. |
| --- |
| name: test_none_none |
| body: | |
| bb.0.entry: |
| ; CHECK-LABEL: name: test_none_none |
| ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0 |
| ; CHECK: $x0 = COPY [[COPY]](s64) |
| %0:_(s64) = COPY $x0 |
| %1:_(s64) = COPY %0(s64) |
| $x0 = COPY %1(s64) |
| ... |
| --- |
| name: test_gpr_none |
| body: | |
| bb.0.entry: |
| ; CHECK-LABEL: name: test_gpr_none |
| ; CHECK: [[COPY:%[0-9]+]]:gpr(s64) = COPY $x0 |
| ; CHECK: $x0 = COPY [[COPY]](s64) |
| %0:gpr(s64) = COPY $x0 |
| %1:_(s64) = COPY %0(s64) |
| $x0 = COPY %1(s64) |
| ... |
| --- |
| name: test_none_gpr |
| body: | |
| bb.0.entry: |
| ; CHECK-LABEL: name: test_none_gpr |
| ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0 |
| ; CHECK: [[COPY1:%[0-9]+]]:gpr(s64) = COPY [[COPY]](s64) |
| ; CHECK: $x0 = COPY [[COPY1]](s64) |
| %0:_(s64) = COPY $x0 |
| %1:gpr(s64) = COPY %0(s64) |
| $x0 = COPY %1(s64) |
| ... |
| --- |
| name: test_fpr_gpr |
| body: | |
| bb.0.entry: |
| ; CHECK-LABEL: name: test_fpr_gpr |
| ; CHECK: [[COPY:%[0-9]+]]:fpr(s64) = COPY $x0 |
| ; CHECK: [[COPY1:%[0-9]+]]:gpr(s64) = COPY [[COPY]](s64) |
| ; CHECK: $x0 = COPY [[COPY1]](s64) |
| %0:fpr(s64) = COPY $x0 |
| %1:gpr(s64) = COPY %0(s64) |
| $x0 = COPY %1(s64) |
| ... |
| --- |
| name: test_gpr64_gpr64_dst_no_llt |
| body: | |
| bb.0.entry: |
| ; CHECK-LABEL: name: test_gpr64_gpr64_dst_no_llt |
| ; CHECK: [[COPY:%[0-9]+]]:gpr64(s64) = COPY $x0 |
| ; CHECK: [[COPY1:%[0-9]+]]:gpr64 = COPY [[COPY]](s64) |
| ; CHECK: $x0 = COPY [[COPY1]] |
| %0:gpr64(s64) = COPY $x0 |
| %1:gpr64 = COPY %0(s64) |
| $x0 = COPY %1 |
| ... |
| --- |
| name: test_gpr64_gpr64_src_no_llt |
| body: | |
| bb.0.entry: |
| ; CHECK-LABEL: name: test_gpr64_gpr64_src_no_llt |
| ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0 |
| ; CHECK: [[COPY1:%[0-9]+]]:gpr64(s64) = COPY [[COPY]] |
| ; CHECK: $x0 = COPY [[COPY1]](s64) |
| %0:gpr64 = COPY $x0 |
| %1:gpr64(s64) = COPY %0 |
| $x0 = COPY %1(s64) |
| ... |
| --- |
| name: test_gpr64_gpr64_both_no_llt |
| body: | |
| bb.0.entry: |
| ; CHECK-LABEL: name: test_gpr64_gpr64_both_no_llt |
| ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0 |
| ; CHECK: $x0 = COPY [[COPY]] |
| %0:gpr64 = COPY $x0 |
| %1:gpr64 = COPY %0 |
| $x0 = COPY %1 |
| ... |