TargetParser: AArch64: Add part numbers for Apple CPUs.
[llvm-project.git] / llvm / test / CodeGen / AArch64 / pr51516.mir
blob910bfb858b50f691a4c8dc9ad819fa6a179b5a88
1 # RUN: llc -mtriple=aarch64-unknown-fuchsia -run-pass=greedy -verify-machineinstrs -o - %s | FileCheck %s
3 # Check that we spill %31 and do not rematerialize it since the use operand
4 # of ADDXri is killed by the STRXui in this block.
6 # CHECK-LABEL: name: test
7 # CHECK: bb.17:
8 # CHECK:   STRXui
9 # CHECK:   LDRXui
10 # CHECK: bb.18:
12 ---
13 name:            test
14 tracksRegLiveness: true
15 stack:
16   - { id: 0, type: variable-sized, offset: 0, alignment: 32,
17       stack-id: default }
18 body:             |
19   bb.0.entry:
20     successors: %bb.2(0x40000000), %bb.1(0x40000000)
21     liveins: $x0
23     %22:gpr64common = COPY $x0
24     CBZW $wzr, %bb.2
26   bb.1:
27     successors: %bb.3(0x80000000)
29     %1:gpr64 = COPY $xzr
30     B %bb.3
32   bb.2:
33     successors: %bb.3(0x80000000)
35     $x0 = IMPLICIT_DEF
36     %1:gpr64 = COPY $x0
38   bb.3:
39     successors: %bb.4(0x30000000), %bb.5(0x50000000)
41     %2:gpr64common = COPY %1
42     CBNZX %1, %bb.5
43     B %bb.4
45   bb.4:
46     successors: %bb.5(0x80000000)
48     %31:gpr64common = SUBXri $sp, 288, 0
49     $sp = ANDXri %31, 7930
50     %2:gpr64common = COPY $xzr
52   bb.5:
53     successors: %bb.6(0x80000000)
55     %9:gpr64common = COPY $xzr
56     %35:gpr64sp = ADDXri %2, 32, 0
57     %4:gpr64common = UBFMXri %2, 3, 63
58     %37:gpr64 = MOVi64imm -506381209866536712
59     %38:gpr32 = MOVi32imm -202116109
60     %39:gpr64common = nuw ADDXri %22, 836, 0
61     %41:gpr64common = nuw ADDXri %22, 648, 0
62     STRXui %37, %4, 1
63     STRWui %38, %4, 8
64     %8:gpr64common = UBFMXri %39, 3, 63
65     %7:gpr64common = UBFMXri %41, 3, 63
66     %47:gpr64 = MOVi64imm 0
68   bb.6:
69     successors: %bb.8(0x30000000), %bb.7(0x50000000)
71     %44:gpr64common = ADDXrr %22, %9
72     %10:gpr64common = ADDXri %44, 648, 0
73     %11:gpr64common = ANDSXri %10, 4098, implicit-def $nzcv
74     Bcc 0, %bb.8, implicit killed $nzcv
75     B %bb.7
77   bb.7:
78     successors: %bb.8(0x80000000)
80     BL 0, csr_aarch64_aapcs, implicit-def dead $lr
82   bb.8:
83     successors: %bb.9(0x04000000), %bb.24(0x7c000000)
85     CBNZW $wzr, %bb.24
86     B %bb.9
88   bb.9:
89     successors: %bb.10(0x7ffff800), %bb.11(0x00000800)
91     %55:gpr64common = ADDXrr %22, %9
92     %56:gpr64sp = ADDXri %55, 648, 0
93     CBZX %11, %bb.10
94     B %bb.11
96   bb.10:
97     successors: %bb.11(0x80000000)
99     $x0 = ADDXri %55, 648, 0
100     $x2 = IMPLICIT_DEF
101     $w1 = COPY $wzr
102     $x1 = nuw ADDXri %35, 32, 0
103     BL 0, csr_aarch64_aapcs, implicit-def dead $lr
104     %66:gpr64sp = nuw ADDXri %35, 48, 0
105     $x0 = ADDXri %55, 696, 0
106     $x2 = IMPLICIT_DEF
107     $x1 = COPY %66
109   bb.11:
110     successors: %bb.15(0x7ffff800), %bb.12(0x00000800)
112     CBZX %11, %bb.15
113     B %bb.12
115   bb.12:
116     successors: %bb.13(0x00000000), %bb.14(0x80000000)
118     CBNZW $wzr, %bb.14
119     B %bb.13
121   bb.13:
122     successors:
124   bb.14:
125     successors: %bb.18(0x80000000)
127     $x1 = COPY %56
128     B %bb.18
130   bb.15:
131     successors: %bb.16(0x00000000), %bb.17(0x80000000)
133     %76:gpr32 = LDRBBui %7, 0
134     CBZW %76, %bb.17
135     B %bb.16
137   bb.16:
138     successors:
140     %74:gpr64common = ADDXrr %22, %9
141     %15:gpr64sp = ADDXri %74, 648, 0
142     $x0 = COPY %15
144   bb.17:
145     successors: %bb.18(0x80000000)
147     STRXui %22, %55, 81
149   bb.18:
150     successors: %bb.19(0x80000000), %bb.20(0x00000000)
152     %79:gpr32 = LDRBBui %8, 0
153     CBNZW %79, %bb.20
154     B %bb.19
156   bb.19:
157     successors: %bb.21(0x80000000), %bb.20(0x00000000)
159     %80:gpr32 = MOVi32imm 1
160     CBNZW %80, %bb.21
161     B %bb.20
163   bb.20:
164     successors:
166     %16:gpr64sp = ADDXri %22, 836, 0
167     $x0 = COPY %16
169   bb.21:
170     successors: %bb.24(0x00000000), %bb.22(0x80000000)
172     CBZW $wzr, %bb.24
174   bb.22:
175     successors: %bb.26(0x80000000)
177     B %bb.26
179   bb.24:
180     successors: %bb.25(0x04000000), %bb.6(0x7c000000)
182     %8:gpr64common = ADDXri %8, 24, 0
183     %7:gpr64common = ADDXri %7, 24, 0
184     CBNZW $wzr, %bb.6
186   bb.25:
187     successors: %bb.26(0x80000000)
189     %56:gpr64sp = COPY $xzr
191   bb.26:
192     successors: %bb.28(0x50000000), %bb.27(0x30000000)
194     undef %83.sub_32:gpr64 = MOVi32imm 1172321806
195     STRXui %83, %2, 0
196     CBNZX %1, %bb.28
197     B %bb.27
199   bb.27:
200     successors: %bb.28(0x80000000)
202     STRXui $xzr, %4, 0
204   bb.28:
205     $x0 = COPY %56
206     RET_ReallyLR implicit $x0