[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / artifact-combine-unmerge.mir
blob92c27f37249a51ab4f38ce20c4eb5e94beb98f75
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -o - -mtriple=aarch64 -run-pass=legalizer %s | FileCheck %s
4 # Make sure we don't lose the register bank constraints when
5 # artifact combining G_UNMERGE_VALUES 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]+]]:_(s32) = COPY $w0
12     ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
13     ; CHECK: $w0 = COPY [[COPY]](s32)
14     ; CHECK: $w1 = COPY [[COPY1]](s32)
15     %0:_(s32) = COPY $w0
16     %1:_(s32) = COPY $w1
17     %2:_(s64) = G_MERGE_VALUES %0(s32), %1
18     %3:_(s32), %4:_(s32) = G_UNMERGE_VALUES %2(s64)
19     $w0 = COPY %3(s32)
20     $w1 = COPY %4(s32)
21 ...
22 ---
23 name:            test_gpr_none
24 body:             |
25   bb.0.entry:
26     ; CHECK-LABEL: name: test_gpr_none
27     ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0
28     ; CHECK: [[COPY1:%[0-9]+]]:gpr(s32) = COPY $w1
29     ; CHECK: $w0 = COPY [[COPY]](s32)
30     ; CHECK: $w1 = COPY [[COPY1]](s32)
31     %0:gpr(s32) = COPY $w0
32     %1:gpr(s32) = COPY $w1
33     %2:_(s64) = G_MERGE_VALUES %0(s32), %1
34     %3:_(s32), %4:_(s32) = G_UNMERGE_VALUES %2(s64)
35     $w0 = COPY %3(s32)
36     $w1 = COPY %4(s32)
37 ...
38 ---
39 name:            test_none_gpr
40 body:             |
41   bb.0.entry:
42     ; CHECK-LABEL: name: test_none_gpr
43     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
44     ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
45     ; CHECK: [[COPY2:%[0-9]+]]:gpr(s32) = COPY [[COPY]](s32)
46     ; CHECK: [[COPY3:%[0-9]+]]:gpr(s32) = COPY [[COPY1]](s32)
47     ; CHECK: $w0 = COPY [[COPY2]](s32)
48     ; CHECK: $w1 = COPY [[COPY3]](s32)
49     %0:_(s32) = COPY $w0
50     %1:_(s32) = COPY $w1
51     %2:_(s64) = G_MERGE_VALUES %0(s32), %1
52     %3:gpr(s32), %4:gpr(s32) = G_UNMERGE_VALUES %2(s64)
53     $w0 = COPY %3(s32)
54     $w1 = COPY %4(s32)
55 ...
56 ---
57 name:            test_fpr_gpr
58 body:             |
59   bb.0.entry:
60     ; CHECK-LABEL: name: test_fpr_gpr
61     ; CHECK: [[COPY:%[0-9]+]]:fpr(s32) = COPY $w0
62     ; CHECK: [[COPY1:%[0-9]+]]:fpr(s32) = COPY $w1
63     ; CHECK: [[COPY2:%[0-9]+]]:gpr(s32) = COPY [[COPY]](s32)
64     ; CHECK: [[COPY3:%[0-9]+]]:gpr(s32) = COPY [[COPY1]](s32)
65     ; CHECK: $w0 = COPY [[COPY2]](s32)
66     ; CHECK: $w1 = COPY [[COPY3]](s32)
67     %0:fpr(s32) = COPY $w0
68     %1:fpr(s32) = COPY $w1
69     %2:_(s64) = G_MERGE_VALUES %0(s32), %1
70     %3:gpr(s32), %4:gpr(s32) = G_UNMERGE_VALUES %2(s64)
71     $w0 = COPY %3(s32)
72     $w1 = COPY %4(s32)
73 ...