525 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64 -run-pass=cfi-fixup %s -o - | FileCheck %s3--- |4 define i32 @f0(i32 %x) #0 {5 entry: br label %return6 if.end: br label %return7 if.then2: br label %return8 if.else: br label %return9 return:10 ret i32 011 }12 13 define i32 @f1(i32 %x) #0 {14 entry: br label %return15 if.end: br label %return16 if.then2: br label %return17 if.else: br label %return18 return:19 ret i32 020 }21 22 define i32 @f2(i32 %x) #0 {23 entry: br label %return24 if.end: br label %return25 if.then2: br label %return26 if.else: br label %return27 return:28 ret i32 029 }30 31 declare i32 @g(i32)32 33 attributes #0 = { nounwind shadowcallstack uwtable "sign-return-address"="non-leaf" "target-features"="+reserve-x18" }34 35...36---37name: f038alignment: 439exposesReturnsTwice: false40legalized: false41regBankSelected: false42selected: false43failedISel: false44tracksRegLiveness: true45hasWinCFI: false46failsVerification: false47registers: []48liveins:49 - { reg: '$w0', virtual-reg: '' }50frameInfo:51 isFrameAddressTaken: false52 isReturnAddressTaken: false53 hasStackMap: false54 hasPatchPoint: false55 stackSize: 1656 offsetAdjustment: 057 maxAlignment: 1658 adjustsStack: true59 hasCalls: true60 stackProtector: ''61 maxCallFrameSize: 062 cvBytesOfCalleeSavedRegisters: 063 hasOpaqueSPAdjustment: false64 hasVAStart: false65 hasMustTailInVarArgFunc: false66 hasTailCall: false67 localFrameSize: 068 savePoint: []69 restorePoint: []70fixedStack: []71stack:72 - { id: 0, name: '', type: spill-slot, offset: -16, size: 8, alignment: 16,73 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: true,74 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }75callSites: []76debugValueSubstitutions: []77constants: []78machineFunctionInfo:79 hasRedZone: false80body: |81 ; CHECK-LABEL: name: f082 ; CHECK: bb.0.entry:83 ; CHECK-NEXT: successors: %bb.4(0x30000000), %bb.1(0x50000000)84 ; CHECK-NEXT: liveins: $w0, $lr, $x1885 ; CHECK-NEXT: {{ $}}86 ; CHECK-NEXT: CBZW renamable $w0, %bb.487 ; CHECK-NEXT: {{ $}}88 ; CHECK-NEXT: bb.1.if.end:89 ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.2(0x50000000)90 ; CHECK-NEXT: liveins: $w0, $lr, $x1891 ; CHECK-NEXT: {{ $}}92 ; CHECK-NEXT: early-clobber $x18 = frame-setup STRXpost $lr, $x18, 893 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x16, 0x12, 0x02, 0x82, 0x7894 ; CHECK-NEXT: frame-setup PACIASP implicit-def $lr, implicit killed $lr, implicit $sp95 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION negate_ra_sign_state96 ; CHECK-NEXT: early-clobber $sp = frame-setup STRXpre killed $lr, $sp, -16 :: (store (s64) into %stack.0)97 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 1698 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $w30, -1699 ; CHECK-NEXT: CFI_INSTRUCTION remember_state100 ; CHECK-NEXT: TBNZW renamable $w0, 31, %bb.3101 ; CHECK-NEXT: {{ $}}102 ; CHECK-NEXT: bb.2.if.else:103 ; CHECK-NEXT: successors: %bb.5(0x80000000)104 ; CHECK-NEXT: liveins: $w0105 ; CHECK-NEXT: {{ $}}106 ; CHECK-NEXT: renamable $w0 = nuw nsw ADDWri killed renamable $w0, 1, 0107 ; CHECK-NEXT: BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0108 ; CHECK-NEXT: renamable $w8 = MOVZWi 1, 0109 ; CHECK-NEXT: $w0 = SUBWrs killed renamable $w8, killed renamable $w0, 0110 ; CHECK-NEXT: B %bb.5111 ; CHECK-NEXT: {{ $}}112 ; CHECK-NEXT: bb.3.if.then2:113 ; CHECK-NEXT: successors: %bb.5(0x80000000)114 ; CHECK-NEXT: liveins: $w0115 ; CHECK-NEXT: {{ $}}116 ; CHECK-NEXT: renamable $w0 = nsw SUBWri killed renamable $w0, 1, 0117 ; CHECK-NEXT: BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0118 ; CHECK-NEXT: renamable $w0 = nsw ADDWri killed renamable $w0, 1, 0119 ; CHECK-NEXT: B %bb.5120 ; CHECK-NEXT: {{ $}}121 ; CHECK-NEXT: bb.4.return:122 ; CHECK-NEXT: liveins: $w0123 ; CHECK-NEXT: {{ $}}124 ; CHECK-NEXT: CFI_INSTRUCTION def_cfa $wsp, 0125 ; CHECK-NEXT: CFI_INSTRUCTION negate_ra_sign_state126 ; CHECK-NEXT: CFI_INSTRUCTION same_value $w18127 ; CHECK-NEXT: CFI_INSTRUCTION same_value $w30128 ; CHECK-NEXT: RET undef $lr, implicit killed $w0129 ; CHECK-NEXT: {{ $}}130 ; CHECK-NEXT: bb.5.return:131 ; CHECK-NEXT: successors: %bb.7(0x80000000)132 ; CHECK-NEXT: liveins: $w0133 ; CHECK-NEXT: {{ $}}134 ; CHECK-NEXT: CFI_INSTRUCTION restore_state135 ; CHECK-NEXT: CFI_INSTRUCTION remember_state136 ; CHECK-NEXT: B %bb.7137 ; CHECK-NEXT: {{ $}}138 ; CHECK-NEXT: bb.6.return:139 ; CHECK-NEXT: liveins: $w0140 ; CHECK-NEXT: {{ $}}141 ; CHECK-NEXT: early-clobber $sp, $lr = frame-destroy LDRXpost $sp, 16 :: (load (s64) from %stack.0)142 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 0143 ; CHECK-NEXT: frame-destroy AUTIASP implicit-def $lr, implicit killed $lr, implicit $sp144 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION negate_ra_sign_state145 ; CHECK-NEXT: early-clobber $x18, $lr = frame-destroy LDRXpre $x18, -8146 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $w18147 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $w30148 ; CHECK-NEXT: RET undef $lr, implicit killed $w0149 ; CHECK-NEXT: {{ $}}150 ; CHECK-NEXT: bb.7.return:151 ; CHECK-NEXT: successors: %bb.6(0x80000000)152 ; CHECK-NEXT: liveins: $w0153 ; CHECK-NEXT: {{ $}}154 ; CHECK-NEXT: CFI_INSTRUCTION restore_state155 ; CHECK-NEXT: B %bb.6156 bb.0.entry:157 successors: %bb.4(0x30000000), %bb.1(0x50000000)158 liveins: $w0, $lr, $x18159 160 CBZW renamable $w0, %bb.4161 162 bb.1.if.end:163 successors: %bb.3(0x30000000), %bb.2(0x50000000)164 liveins: $w0, $lr, $x18165 166 early-clobber $x18 = frame-setup STRXpost $lr, $x18, 8167 frame-setup CFI_INSTRUCTION escape 0x16, 0x12, 0x02, 0x82, 0x78168 frame-setup PACIASP implicit-def $lr, implicit killed $lr, implicit $sp169 frame-setup CFI_INSTRUCTION negate_ra_sign_state170 early-clobber $sp = frame-setup STRXpre killed $lr, $sp, -16 :: (store (s64) into %stack.0)171 frame-setup CFI_INSTRUCTION def_cfa_offset 16172 frame-setup CFI_INSTRUCTION offset $w30, -16173 TBNZW renamable $w0, 31, %bb.3174 175 bb.2.if.else:176 successors: %bb.5(0x80000000)177 liveins: $w0178 179 renamable $w0 = nuw nsw ADDWri killed renamable $w0, 1, 0180 BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0181 renamable $w8 = MOVZWi 1, 0182 $w0 = SUBWrs killed renamable $w8, killed renamable $w0, 0183 B %bb.5184 185 bb.3.if.then2:186 successors: %bb.5(0x80000000)187 liveins: $w0188 189 renamable $w0 = nsw SUBWri killed renamable $w0, 1, 0190 BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0191 renamable $w0 = nsw ADDWri killed renamable $w0, 1, 0192 B %bb.5193 194 bb.4.return:195 liveins: $w0196 RET undef $lr, implicit killed $w0197 198 bb.5.return:199 liveins: $w0200 B %bb.6201 202 bb.7.return:203 liveins: $w0204 early-clobber $sp, $lr = frame-destroy LDRXpost $sp, 16 :: (load (s64) from %stack.0)205 frame-destroy CFI_INSTRUCTION def_cfa_offset 0206 frame-destroy AUTIASP implicit-def $lr, implicit killed $lr, implicit $sp207 frame-destroy CFI_INSTRUCTION negate_ra_sign_state208 early-clobber $x18, $lr = frame-destroy LDRXpre $x18, -8209 frame-destroy CFI_INSTRUCTION restore $w18210 frame-destroy CFI_INSTRUCTION restore $w30211 RET undef $lr, implicit killed $w0212 213 bb.6.return:214 liveins: $w0215 B %bb.7216 217 218...219---220name: f1221alignment: 4222exposesReturnsTwice: false223legalized: false224regBankSelected: false225selected: false226failedISel: false227tracksRegLiveness: true228hasWinCFI: false229failsVerification: false230registers: []231liveins:232 - { reg: '$w0', virtual-reg: '' }233frameInfo:234 isFrameAddressTaken: false235 isReturnAddressTaken: false236 hasStackMap: false237 hasPatchPoint: false238 stackSize: 16239 offsetAdjustment: 0240 maxAlignment: 16241 adjustsStack: true242 hasCalls: true243 stackProtector: ''244 maxCallFrameSize: 0245 cvBytesOfCalleeSavedRegisters: 0246 hasOpaqueSPAdjustment: false247 hasVAStart: false248 hasMustTailInVarArgFunc: false249 hasTailCall: false250 localFrameSize: 0251 savePoint: []252 restorePoint: []253fixedStack: []254stack:255 - { id: 0, name: '', type: spill-slot, offset: -16, size: 8, alignment: 16,256 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: true,257 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }258callSites: []259debugValueSubstitutions: []260constants: []261machineFunctionInfo:262 hasRedZone: false263body: |264 ; CHECK-LABEL: name: f1265 ; CHECK: bb.0.entry:266 ; CHECK-NEXT: successors: %bb.5(0x30000000), %bb.1(0x50000000)267 ; CHECK-NEXT: liveins: $w0, $lr, $x18268 ; CHECK-NEXT: {{ $}}269 ; CHECK-NEXT: CBZW renamable $w0, %bb.5270 ; CHECK-NEXT: {{ $}}271 ; CHECK-NEXT: bb.1.if.end:272 ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.2(0x50000000)273 ; CHECK-NEXT: liveins: $w0, $lr, $x18274 ; CHECK-NEXT: {{ $}}275 ; CHECK-NEXT: early-clobber $x18 = frame-setup STRXpost $lr, $x18, 8276 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x16, 0x12, 0x02, 0x82, 0x78277 ; CHECK-NEXT: frame-setup PACIASP implicit-def $lr, implicit killed $lr, implicit $sp278 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION negate_ra_sign_state279 ; CHECK-NEXT: early-clobber $sp = frame-setup STRXpre killed $lr, $sp, -16 :: (store (s64) into %stack.0)280 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16281 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $w30, -16282 ; CHECK-NEXT: TBNZW renamable $w0, 31, %bb.3283 ; CHECK-NEXT: {{ $}}284 ; CHECK-NEXT: bb.2.if.else:285 ; CHECK-NEXT: successors: %bb.4(0x80000000)286 ; CHECK-NEXT: liveins: $w0287 ; CHECK-NEXT: {{ $}}288 ; CHECK-NEXT: renamable $w0 = nuw nsw ADDWri killed renamable $w0, 1, 0289 ; CHECK-NEXT: BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0290 ; CHECK-NEXT: renamable $w8 = MOVZWi 1, 0291 ; CHECK-NEXT: $w0 = SUBWrs killed renamable $w8, killed renamable $w0, 0292 ; CHECK-NEXT: B %bb.4293 ; CHECK-NEXT: {{ $}}294 ; CHECK-NEXT: bb.3.if.then2:295 ; CHECK-NEXT: successors: %bb.4(0x80000000)296 ; CHECK-NEXT: liveins: $w0297 ; CHECK-NEXT: {{ $}}298 ; CHECK-NEXT: renamable $w0 = nsw SUBWri killed renamable $w0, 1, 0299 ; CHECK-NEXT: BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0300 ; CHECK-NEXT: renamable $w0 = nsw ADDWri killed renamable $w0, 1, 0301 ; CHECK-NEXT: B %bb.4302 ; CHECK-NEXT: {{ $}}303 ; CHECK-NEXT: bb.4.return:304 ; CHECK-NEXT: liveins: $w0305 ; CHECK-NEXT: {{ $}}306 ; CHECK-NEXT: early-clobber $sp, $lr = frame-destroy LDRXpost $sp, 16 :: (load (s64) from %stack.0)307 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION def_cfa_offset 0308 ; CHECK-NEXT: frame-destroy AUTIASP implicit-def $lr, implicit killed $lr, implicit $sp309 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION negate_ra_sign_state310 ; CHECK-NEXT: early-clobber $x18, $lr = frame-destroy LDRXpre $x18, -8311 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $w18312 ; CHECK-NEXT: frame-destroy CFI_INSTRUCTION restore $w30313 ; CHECK-NEXT: RET undef $lr, implicit killed $w0314 ; CHECK-NEXT: {{ $}}315 ; CHECK-NEXT: bb.5.return:316 ; CHECK-NEXT: liveins: $w0317 ; CHECK-NEXT: {{ $}}318 ; CHECK-NEXT: RET undef $lr, implicit killed $w0319 bb.0.entry:320 successors: %bb.5(0x30000000), %bb.1(0x50000000)321 liveins: $w0, $lr, $x18322 323 CBZW renamable $w0, %bb.5324 325 bb.1.if.end:326 successors: %bb.3(0x30000000), %bb.2(0x50000000)327 liveins: $w0, $lr, $x18328 329 early-clobber $x18 = frame-setup STRXpost $lr, $x18, 8330 frame-setup CFI_INSTRUCTION escape 0x16, 0x12, 0x02, 0x82, 0x78331 frame-setup PACIASP implicit-def $lr, implicit killed $lr, implicit $sp332 frame-setup CFI_INSTRUCTION negate_ra_sign_state333 early-clobber $sp = frame-setup STRXpre killed $lr, $sp, -16 :: (store (s64) into %stack.0)334 frame-setup CFI_INSTRUCTION def_cfa_offset 16335 frame-setup CFI_INSTRUCTION offset $w30, -16336 TBNZW renamable $w0, 31, %bb.3337 338 bb.2.if.else:339 successors: %bb.4(0x80000000)340 liveins: $w0341 342 renamable $w0 = nuw nsw ADDWri killed renamable $w0, 1, 0343 BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0344 renamable $w8 = MOVZWi 1, 0345 $w0 = SUBWrs killed renamable $w8, killed renamable $w0, 0346 B %bb.4347 348 bb.3.if.then2:349 successors: %bb.4(0x80000000)350 liveins: $w0351 352 renamable $w0 = nsw SUBWri killed renamable $w0, 1, 0353 BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0354 renamable $w0 = nsw ADDWri killed renamable $w0, 1, 0355 B %bb.4356 357 bb.4.return:358 liveins: $w0359 360 early-clobber $sp, $lr = frame-destroy LDRXpost $sp, 16 :: (load (s64) from %stack.0)361 frame-destroy CFI_INSTRUCTION def_cfa_offset 0362 frame-destroy AUTIASP implicit-def $lr, implicit killed $lr, implicit $sp363 frame-destroy CFI_INSTRUCTION negate_ra_sign_state364 early-clobber $x18, $lr = frame-destroy LDRXpre $x18, -8365 frame-destroy CFI_INSTRUCTION restore $w18366 frame-destroy CFI_INSTRUCTION restore $w30367 RET undef $lr, implicit killed $w0368 369 bb.5.return:370 liveins: $w0371 RET undef $lr, implicit killed $w0372 373...374---375name: f2376alignment: 4377exposesReturnsTwice: false378legalized: false379regBankSelected: false380selected: false381failedISel: false382tracksRegLiveness: true383hasWinCFI: false384failsVerification: false385registers: []386liveins:387 - { reg: '$w0', virtual-reg: '' }388frameInfo:389 isFrameAddressTaken: false390 isReturnAddressTaken: false391 hasStackMap: false392 hasPatchPoint: false393 stackSize: 16394 offsetAdjustment: 0395 maxAlignment: 16396 adjustsStack: true397 hasCalls: true398 stackProtector: ''399 maxCallFrameSize: 0400 cvBytesOfCalleeSavedRegisters: 0401 hasOpaqueSPAdjustment: false402 hasVAStart: false403 hasMustTailInVarArgFunc: false404 hasTailCall: false405 localFrameSize: 0406 savePoint: []407 restorePoint: []408fixedStack: []409stack:410 - { id: 0, name: '', type: spill-slot, offset: -16, size: 8, alignment: 16,411 stack-id: default, callee-saved-register: '$lr', callee-saved-restored: true,412 debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }413callSites: []414debugValueSubstitutions: []415constants: []416machineFunctionInfo:417 hasRedZone: false418body: |419 ; CHECK-LABEL: name: f2420 ; CHECK: bb.0.entry:421 ; CHECK-NEXT: successors: %bb.5(0x30000000), %bb.1(0x50000000)422 ; CHECK-NEXT: liveins: $w0, $lr, $x18423 ; CHECK-NEXT: {{ $}}424 ; CHECK-NEXT: CBZW renamable $w0, %bb.5425 ; CHECK-NEXT: {{ $}}426 ; CHECK-NEXT: bb.1.if.end:427 ; CHECK-NEXT: successors: %bb.3(0x30000000), %bb.2(0x50000000)428 ; CHECK-NEXT: liveins: $w0, $lr, $x18429 ; CHECK-NEXT: {{ $}}430 ; CHECK-NEXT: early-clobber $x18 = frame-setup STRXpost $lr, $x18, 8431 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION escape 0x16, 0x12, 0x02, 0x82, 0x78432 ; CHECK-NEXT: frame-setup PACIASP implicit-def $lr, implicit killed $lr, implicit $sp433 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION negate_ra_sign_state434 ; CHECK-NEXT: early-clobber $sp = frame-setup STRXpre killed $lr, $sp, -16 :: (store (s64) into %stack.0)435 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16436 ; CHECK-NEXT: frame-setup CFI_INSTRUCTION offset $w30, -16437 ; CHECK-NEXT: TBNZW renamable $w0, 31, %bb.3438 ; CHECK-NEXT: {{ $}}439 ; CHECK-NEXT: bb.2.if.else:440 ; CHECK-NEXT: successors: %bb.4(0x80000000)441 ; CHECK-NEXT: liveins: $w0442 ; CHECK-NEXT: {{ $}}443 ; CHECK-NEXT: renamable $w0 = nuw nsw ADDWri killed renamable $w0, 1, 0444 ; CHECK-NEXT: BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0445 ; CHECK-NEXT: renamable $w8 = MOVZWi 1, 0446 ; CHECK-NEXT: $w0 = SUBWrs killed renamable $w8, killed renamable $w0, 0447 ; CHECK-NEXT: B %bb.4448 ; CHECK-NEXT: {{ $}}449 ; CHECK-NEXT: bb.3.if.then2:450 ; CHECK-NEXT: successors: %bb.4(0x80000000)451 ; CHECK-NEXT: liveins: $w0452 ; CHECK-NEXT: {{ $}}453 ; CHECK-NEXT: renamable $w0 = nsw SUBWri killed renamable $w0, 1, 0454 ; CHECK-NEXT: BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0455 ; CHECK-NEXT: renamable $w0 = nsw ADDWri killed renamable $w0, 1, 0456 ; CHECK-NEXT: B %bb.4457 ; CHECK-NEXT: {{ $}}458 ; CHECK-NEXT: bb.4.return:459 ; CHECK-NEXT: liveins: $w0460 ; CHECK-NEXT: {{ $}}461 ; CHECK-NEXT: early-clobber $sp, $lr = frame-destroy LDRXpost $sp, 16 :: (load (s64) from %stack.0)462 ; CHECK-NEXT: frame-destroy AUTIASP implicit-def $lr, implicit killed $lr, implicit $sp463 ; CHECK-NEXT: early-clobber $x18, $lr = frame-destroy LDRXpre $x18, -8464 ; CHECK-NEXT: RET undef $lr, implicit killed $w0465 ; CHECK-NEXT: {{ $}}466 ; CHECK-NEXT: bb.5.return:467 ; CHECK-NEXT: liveins: $w0468 ; CHECK-NEXT: {{ $}}469 ; CHECK-NEXT: CFI_INSTRUCTION def_cfa $wsp, 0470 ; CHECK-NEXT: CFI_INSTRUCTION negate_ra_sign_state471 ; CHECK-NEXT: CFI_INSTRUCTION same_value $w18472 ; CHECK-NEXT: CFI_INSTRUCTION same_value $w30473 ; CHECK-NEXT: RET undef $lr, implicit killed $w0474 bb.0.entry:475 successors: %bb.5(0x30000000), %bb.1(0x50000000)476 liveins: $w0, $lr, $x18477 478 CBZW renamable $w0, %bb.5479 480 bb.1.if.end:481 successors: %bb.3(0x30000000), %bb.2(0x50000000)482 liveins: $w0, $lr, $x18483 484 early-clobber $x18 = frame-setup STRXpost $lr, $x18, 8485 frame-setup CFI_INSTRUCTION escape 0x16, 0x12, 0x02, 0x82, 0x78486 frame-setup PACIASP implicit-def $lr, implicit killed $lr, implicit $sp487 frame-setup CFI_INSTRUCTION negate_ra_sign_state488 early-clobber $sp = frame-setup STRXpre killed $lr, $sp, -16 :: (store (s64) into %stack.0)489 frame-setup CFI_INSTRUCTION def_cfa_offset 16490 frame-setup CFI_INSTRUCTION offset $w30, -16491 TBNZW renamable $w0, 31, %bb.3492 493 bb.2.if.else:494 successors: %bb.4(0x80000000)495 liveins: $w0496 497 renamable $w0 = nuw nsw ADDWri killed renamable $w0, 1, 0498 BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0499 renamable $w8 = MOVZWi 1, 0500 $w0 = SUBWrs killed renamable $w8, killed renamable $w0, 0501 B %bb.4502 503 bb.3.if.then2:504 successors: %bb.4(0x80000000)505 liveins: $w0506 507 renamable $w0 = nsw SUBWri killed renamable $w0, 1, 0508 BL @g, csr_aarch64_aapcs_scs, implicit-def dead $lr, implicit $sp, implicit killed $w0, implicit-def $sp, implicit-def $w0509 renamable $w0 = nsw ADDWri killed renamable $w0, 1, 0510 B %bb.4511 512 bb.4.return:513 liveins: $w0514 515 early-clobber $sp, $lr = frame-destroy LDRXpost $sp, 16 :: (load (s64) from %stack.0)516 frame-destroy AUTIASP implicit-def $lr, implicit killed $lr, implicit $sp517 early-clobber $x18, $lr = frame-destroy LDRXpre $x18, -8518 RET undef $lr, implicit killed $w0519 520 bb.5.return:521 liveins: $w0522 RET undef $lr, implicit killed $w0523 524...525