184 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 32# RUN: llc -mtriple=arm64-apple-ios -run-pass=greedy -o - %s | FileCheck %s3# RUN: llc -mtriple=arm64-apple-ios -passes=greedy -o - %s | FileCheck %s4 5---6name: widget7tracksRegLiveness: true8frameInfo:9 adjustsStack: true10jumpTable:11 kind: label-difference3212 entries:13 - id: 014 blocks: [ '%bb.9', '%bb.5', '%bb.2', '%bb.2', '%bb.2' ]15body: |16 ; CHECK-LABEL: name: widget17 ; CHECK: bb.0:18 ; CHECK-NEXT: successors: %bb.1(0x80000000)19 ; CHECK-NEXT: liveins: $w0, $w1, $x2, $x3, $x4, $w5, $w620 ; CHECK-NEXT: {{ $}}21 ; CHECK-NEXT: [[DEF:%[0-9]+]]:gpr64common = IMPLICIT_DEF22 ; CHECK-NEXT: [[DEF1:%[0-9]+]]:gpr64 = IMPLICIT_DEF23 ; CHECK-NEXT: [[DEF2:%[0-9]+]]:gpr32common = IMPLICIT_DEF24 ; CHECK-NEXT: [[DEF3:%[0-9]+]]:gpr32 = IMPLICIT_DEF25 ; CHECK-NEXT: [[DEF4:%[0-9]+]]:gpr32 = IMPLICIT_DEF26 ; CHECK-NEXT: [[DEF5:%[0-9]+]]:gpr64common = IMPLICIT_DEF27 ; CHECK-NEXT: [[DEF6:%[0-9]+]]:gpr32 = IMPLICIT_DEF28 ; CHECK-NEXT: undef [[DEF7:%[0-9]+]].sub_32:gpr64 = IMPLICIT_DEF29 ; CHECK-NEXT: [[DEF8:%[0-9]+]]:gpr64common = IMPLICIT_DEF30 ; CHECK-NEXT: [[DEF9:%[0-9]+]]:gpr32 = IMPLICIT_DEF31 ; CHECK-NEXT: dead [[DEF10:%[0-9]+]]:gpr64 = IMPLICIT_DEF32 ; CHECK-NEXT: undef [[DEF11:%[0-9]+]].sub_32:gpr64 = IMPLICIT_DEF implicit-def dead %1133 ; CHECK-NEXT: STRXui [[DEF11]], %stack.0, 0 :: (store (s64) into %stack.0)34 ; CHECK-NEXT: {{ $}}35 ; CHECK-NEXT: bb.1:36 ; CHECK-NEXT: successors: %bb.2(0x80000000)37 ; CHECK-NEXT: {{ $}}38 ; CHECK-NEXT: bb.2:39 ; CHECK-NEXT: successors: %bb.3(0x0fbefbf0), %bb.4(0x70410410)40 ; CHECK-NEXT: {{ $}}41 ; CHECK-NEXT: Bcc 8, %bb.3, implicit killed undef $nzcv42 ; CHECK-NEXT: B %bb.443 ; CHECK-NEXT: {{ $}}44 ; CHECK-NEXT: bb.3:45 ; CHECK-NEXT: successors: %bb.11(0x00000000), %bb.2(0x80000000)46 ; CHECK-NEXT: {{ $}}47 ; CHECK-NEXT: dead $wzr = SUBSWri [[DEF2]], 64, 0, implicit-def $nzcv48 ; CHECK-NEXT: Bcc 0, %bb.11, implicit killed undef $nzcv49 ; CHECK-NEXT: B %bb.250 ; CHECK-NEXT: {{ $}}51 ; CHECK-NEXT: bb.4:52 ; CHECK-NEXT: successors: %bb.9(0x01288b01), %bb.5(0x01288b01), %bb.2(0x11f46a91), %bb.6(0x23e8d524), %bb.7(0x47d1aa49)53 ; CHECK-NEXT: {{ $}}54 ; CHECK-NEXT: dead early-clobber %12:gpr64, dead early-clobber %13:gpr64sp = JumpTableDest32 [[DEF8]], [[DEF7]], %jump-table.055 ; CHECK-NEXT: BR undef %18:gpr6456 ; CHECK-NEXT: {{ $}}57 ; CHECK-NEXT: bb.5:58 ; CHECK-NEXT: successors: %bb.8(0x80000000)59 ; CHECK-NEXT: {{ $}}60 ; CHECK-NEXT: B %bb.861 ; CHECK-NEXT: {{ $}}62 ; CHECK-NEXT: bb.6:63 ; CHECK-NEXT: successors: %bb.2(0x80000000)64 ; CHECK-NEXT: {{ $}}65 ; CHECK-NEXT: STRWui [[DEF9]], [[DEF5]], 0 :: (store (s32))66 ; CHECK-NEXT: B %bb.267 ; CHECK-NEXT: {{ $}}68 ; CHECK-NEXT: bb.7:69 ; CHECK-NEXT: successors: %bb.2(0x80000000)70 ; CHECK-NEXT: {{ $}}71 ; CHECK-NEXT: STRWui $wzr, [[DEF]], 0 :: (store (s32))72 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp73 ; CHECK-NEXT: $w0 = COPY [[DEF4]]74 ; CHECK-NEXT: $x1 = COPY [[DEF1]]75 ; CHECK-NEXT: BL 0, csr_darwin_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w076 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp77 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp78 ; CHECK-NEXT: $w0 = COPY [[DEF6]]79 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp80 ; CHECK-NEXT: B %bb.281 ; CHECK-NEXT: {{ $}}82 ; CHECK-NEXT: bb.8:83 ; CHECK-NEXT: successors: %bb.8(0x80000000)84 ; CHECK-NEXT: {{ $}}85 ; CHECK-NEXT: B %bb.886 ; CHECK-NEXT: {{ $}}87 ; CHECK-NEXT: bb.9:88 ; CHECK-NEXT: successors: %bb.10(0x40000000), %bb.1(0x40000000)89 ; CHECK-NEXT: {{ $}}90 ; CHECK-NEXT: undef [[DEF12:%[0-9]+]].sub_32:gpr64 = IMPLICIT_DEF91 ; CHECK-NEXT: STRXui [[DEF12]], %stack.0, 0 :: (store (s64) into %stack.0)92 ; CHECK-NEXT: TBZW [[DEF3]], 0, %bb.193 ; CHECK-NEXT: B %bb.1094 ; CHECK-NEXT: {{ $}}95 ; CHECK-NEXT: bb.10:96 ; CHECK-NEXT: successors: %bb.1(0x80000000)97 ; CHECK-NEXT: {{ $}}98 ; CHECK-NEXT: ADJCALLSTACKDOWN 32, 0, implicit-def dead $sp, implicit $sp99 ; CHECK-NEXT: ADJCALLSTACKUP 32, 0, implicit-def dead $sp, implicit $sp100 ; CHECK-NEXT: B %bb.1101 ; CHECK-NEXT: {{ $}}102 ; CHECK-NEXT: bb.11:103 ; CHECK-NEXT: [[LDRXui:%[0-9]+]]:gpr64 = LDRXui %stack.0, 0 :: (load (s64) from %stack.0)104 ; CHECK-NEXT: dead undef [[COPY:%[0-9]+]].sub_32:gpr64 = COPY [[LDRXui]].sub_32105 ; CHECK-NEXT: ADJCALLSTACKDOWN 8, 0, implicit-def dead $sp, implicit $sp106 ; CHECK-NEXT: ADJCALLSTACKUP 8, 0, implicit-def dead $sp, implicit $sp107 bb.0:108 liveins: $w0, $w1, $x2, $x3, $x4, $w5, $w6109 110 %0:gpr64common = IMPLICIT_DEF111 %1:gpr64 = IMPLICIT_DEF112 %2:gpr32common = IMPLICIT_DEF113 %3:gpr32 = IMPLICIT_DEF114 %4:gpr32 = IMPLICIT_DEF115 %5:gpr64common = IMPLICIT_DEF116 %6:gpr32 = IMPLICIT_DEF117 undef %7.sub_32:gpr64 = IMPLICIT_DEF118 %8:gpr64common = IMPLICIT_DEF119 %9:gpr32 = IMPLICIT_DEF120 %10:gpr64 = IMPLICIT_DEF121 undef %10.sub_32:gpr64 = IMPLICIT_DEF implicit-def %11:gpr64122 123 bb.1:124 125 bb.2:126 successors: %bb.3(0x0fbefbf0), %bb.4(0x70410410)127 128 Bcc 8, %bb.3, implicit killed undef $nzcv129 B %bb.4130 131 bb.3:132 successors: %bb.11(0x00000000), %bb.2(0x80000000)133 134 dead $wzr = SUBSWri %2, 64, 0, implicit-def $nzcv135 Bcc 0, %bb.11, implicit killed undef $nzcv136 B %bb.2137 138 bb.4:139 successors: %bb.9(0x01288b01), %bb.5(0x01288b01), %bb.2(0x11f46a91), %bb.6(0x23e8d524), %bb.7(0x47d1aa49)140 141 early-clobber %12:gpr64, dead early-clobber %13:gpr64sp = JumpTableDest32 %8, %7, %jump-table.0142 BR undef %10143 144 bb.5:145 B %bb.8146 147 bb.6:148 STRWui %9, %5, 0 :: (store (s32))149 B %bb.2150 151 bb.7:152 STRWui $wzr, %0, 0 :: (store (s32))153 ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp154 $w0 = COPY %4155 $x1 = COPY %1156 BL 0, csr_darwin_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0157 ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp158 ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit $sp159 $w0 = COPY %6160 ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit $sp161 B %bb.2162 163 bb.8:164 B %bb.8165 166 bb.9:167 successors: %bb.10, %bb.1168 169 undef %10.sub_32:gpr64 = IMPLICIT_DEF170 TBZW %3, 0, %bb.1171 B %bb.10172 173 bb.10:174 ADJCALLSTACKDOWN 32, 0, implicit-def dead $sp, implicit $sp175 ADJCALLSTACKUP 32, 0, implicit-def dead $sp, implicit $sp176 B %bb.1177 178 bb.11:179 undef %14.sub_32:gpr64 = COPY %10.sub_32180 ADJCALLSTACKDOWN 8, 0, implicit-def dead $sp, implicit $sp181 ADJCALLSTACKUP 8, 0, implicit-def dead $sp, implicit $sp182 183...184