[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / combine-copy.mir
blob990eb36a8aa54f880f2a00773667a9bb981ae23b
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -o - -mtriple=aarch64 -run-pass=aarch64-prelegalizer-combiner %s | FileCheck %s
4 # Make sure we don't lose the register bank constraints when
5 # combining COPY instructions.
6 ---
7 name:            test_none_none
8 body:             |
9   bb.0.entry:
10     ; CHECK-LABEL: name: test_none_none
11     ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
12     ; CHECK: $x0 = COPY [[COPY]](s64)
13     %0:_(s64) = COPY $x0
14     %1:_(s64) = COPY %0(s64)
15     $x0 = COPY %1(s64)
16 ...
17 ---
18 name:            test_gpr_none
19 body:             |
20   bb.0.entry:
21     ; CHECK-LABEL: name: test_gpr_none
22     ; CHECK: [[COPY:%[0-9]+]]:gpr(s64) = COPY $x0
23     ; CHECK: $x0 = COPY [[COPY]](s64)
24     %0:gpr(s64) = COPY $x0
25     %1:_(s64) = COPY %0(s64)
26     $x0 = COPY %1(s64)
27 ...
28 ---
29 name:            test_none_gpr
30 body:             |
31   bb.0.entry:
32     ; CHECK-LABEL: name: test_none_gpr
33     ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
34     ; CHECK: [[COPY1:%[0-9]+]]:gpr(s64) = COPY [[COPY]](s64)
35     ; CHECK: $x0 = COPY [[COPY1]](s64)
36     %0:_(s64) = COPY $x0
37     %1:gpr(s64) = COPY %0(s64)
38     $x0 = COPY %1(s64)
39 ...
40 ---
41 name:            test_fpr_gpr
42 body:             |
43   bb.0.entry:
44     ; CHECK-LABEL: name: test_fpr_gpr
45     ; CHECK: [[COPY:%[0-9]+]]:fpr(s64) = COPY $x0
46     ; CHECK: [[COPY1:%[0-9]+]]:gpr(s64) = COPY [[COPY]](s64)
47     ; CHECK: $x0 = COPY [[COPY1]](s64)
48     %0:fpr(s64) = COPY $x0
49     %1:gpr(s64) = COPY %0(s64)
50     $x0 = COPY %1(s64)
51 ...
52 ---
53 name:            test_gpr64_gpr64_dst_no_llt
54 body:             |
55   bb.0.entry:
56     ; CHECK-LABEL: name: test_gpr64_gpr64_dst_no_llt
57     ; CHECK: [[COPY:%[0-9]+]]:gpr64(s64) = COPY $x0
58     ; CHECK: [[COPY1:%[0-9]+]]:gpr64 = COPY [[COPY]](s64)
59     ; CHECK: $x0 = COPY [[COPY1]]
60     %0:gpr64(s64) = COPY $x0
61     %1:gpr64 = COPY %0(s64)
62     $x0 = COPY %1
63 ...
64 ---
65 name:            test_gpr64_gpr64_src_no_llt
66 body:             |
67   bb.0.entry:
68     ; CHECK-LABEL: name: test_gpr64_gpr64_src_no_llt
69     ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
70     ; CHECK: [[COPY1:%[0-9]+]]:gpr64(s64) = COPY [[COPY]]
71     ; CHECK: $x0 = COPY [[COPY1]](s64)
72     %0:gpr64 = COPY $x0
73     %1:gpr64(s64) = COPY %0
74     $x0 = COPY %1(s64)
75 ...
76 ---
77 name:            test_gpr64_gpr64_both_no_llt
78 body:             |
79   bb.0.entry:
80     ; CHECK-LABEL: name: test_gpr64_gpr64_both_no_llt
81     ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
82     ; CHECK: $x0 = COPY [[COPY]]
83     %0:gpr64 = COPY $x0
84     %1:gpr64 = COPY %0
85     $x0 = COPY %1
86 ...