369 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=x86_64-unknown-linux-gnu -run-pass=early-tailduplication -tail-dup-pred-size=1 -tail-dup-succ-size=1 %s -o - | FileCheck %s3#4# Check that only the computed goto and others are restricted by tail-dup-pred-size and tail-dup-succ-size.5#6--- |7 @computed_goto.dispatch = constant [5 x ptr] [ptr null, ptr blockaddress(@computed_goto, %bb1), ptr blockaddress(@computed_goto, %bb2), ptr blockaddress(@computed_goto, %bb3), ptr blockaddress(@computed_goto, %bb4)]8 declare i64 @f0()9 declare i64 @f1()10 declare i64 @f2()11 declare i64 @f3()12 declare i64 @f4()13 declare i64 @f5()14 define void @computed_goto() {15 start:16 ret void17 bb1:18 ret void19 bb2:20 ret void21 bb3:22 ret void23 bb4:24 ret void25 }26 define void @jump_table() { ret void }27 define void @jump_table_pic() { ret void }28...29---30name: computed_goto31tracksRegLiveness: true32body: |33 ; CHECK-LABEL: name: computed_goto34 ; CHECK: bb.0:35 ; CHECK-NEXT: successors: %bb.5(0x80000000)36 ; CHECK-NEXT: {{ $}}37 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp38 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f0, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax39 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp40 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gr64 = COPY $rax41 ; CHECK-NEXT: JMP_1 %bb.542 ; CHECK-NEXT: {{ $}}43 ; CHECK-NEXT: bb.1.bb1 (ir-block-address-taken %ir-block.bb1):44 ; CHECK-NEXT: successors: %bb.5(0x80000000)45 ; CHECK-NEXT: {{ $}}46 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp47 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f1, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax48 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp49 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gr64 = COPY $rax50 ; CHECK-NEXT: JMP_1 %bb.551 ; CHECK-NEXT: {{ $}}52 ; CHECK-NEXT: bb.2.bb2 (ir-block-address-taken %ir-block.bb2):53 ; CHECK-NEXT: successors: %bb.5(0x80000000)54 ; CHECK-NEXT: {{ $}}55 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp56 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f2, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax57 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp58 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gr64 = COPY $rax59 ; CHECK-NEXT: JMP_1 %bb.560 ; CHECK-NEXT: {{ $}}61 ; CHECK-NEXT: bb.3.bb3 (ir-block-address-taken %ir-block.bb3):62 ; CHECK-NEXT: successors: %bb.5(0x80000000)63 ; CHECK-NEXT: {{ $}}64 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp65 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f3, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax66 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp67 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gr64 = COPY $rax68 ; CHECK-NEXT: JMP_1 %bb.569 ; CHECK-NEXT: {{ $}}70 ; CHECK-NEXT: bb.4.bb4 (ir-block-address-taken %ir-block.bb4):71 ; CHECK-NEXT: successors: %bb.5(0x80000000)72 ; CHECK-NEXT: {{ $}}73 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp74 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f4, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax75 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp76 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:gr64 = COPY $rax77 ; CHECK-NEXT: {{ $}}78 ; CHECK-NEXT: bb.5:79 ; CHECK-NEXT: successors: %bb.1(0x20000000), %bb.2(0x20000000), %bb.3(0x20000000), %bb.4(0x20000000)80 ; CHECK-NEXT: {{ $}}81 ; CHECK-NEXT: [[PHI:%[0-9]+]]:gr64_nosp = PHI [[COPY]], %bb.0, [[COPY4]], %bb.4, [[COPY3]], %bb.3, [[COPY2]], %bb.2, [[COPY1]], %bb.182 ; CHECK-NEXT: JMP64m $noreg, 8, [[PHI]], @computed_goto.dispatch, $noreg83 bb.0:84 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp85 CALL64pcrel32 target-flags(x86-plt) @f0, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax86 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp87 %1:gr64 = COPY $rax88 JMP_1 %bb.589 90 bb.1.bb1 (ir-block-address-taken %ir-block.bb1):91 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp92 CALL64pcrel32 target-flags(x86-plt) @f1, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax93 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp94 %3:gr64 = COPY $rax95 JMP_1 %bb.596 97 bb.2.bb2 (ir-block-address-taken %ir-block.bb2):98 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp99 CALL64pcrel32 target-flags(x86-plt) @f2, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax100 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp101 %5:gr64 = COPY $rax102 JMP_1 %bb.5103 104 bb.3.bb3 (ir-block-address-taken %ir-block.bb3):105 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp106 CALL64pcrel32 target-flags(x86-plt) @f3, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax107 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp108 %7:gr64 = COPY $rax109 JMP_1 %bb.5110 111 bb.4.bb4 (ir-block-address-taken %ir-block.bb4):112 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp113 CALL64pcrel32 target-flags(x86-plt) @f4, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax114 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp115 %9:gr64 = COPY $rax116 117 bb.5:118 successors: %bb.1, %bb.2, %bb.3, %bb.4119 120 %10:gr64_nosp = PHI %1, %bb.0, %9, %bb.4, %7, %bb.3, %5, %bb.2, %3, %bb.1121 JMP64m $noreg, 8, %10, @computed_goto.dispatch, $noreg122 123...124---125name: jump_table126tracksRegLiveness: true127jumpTable:128 kind: block-address129 entries:130 - id: 0131 blocks: [ '%bb.3', '%bb.4', '%bb.5', '%bb.6', '%bb.7' ]132body: |133 ; CHECK-LABEL: name: jump_table134 ; CHECK: bb.0:135 ; CHECK-NEXT: successors: %bb.1(0x80000000)136 ; CHECK-NEXT: {{ $}}137 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp138 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f0, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax139 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp140 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gr64 = COPY $rax141 ; CHECK-NEXT: {{ $}}142 ; CHECK-NEXT: bb.1:143 ; CHECK-NEXT: successors: %bb.3(0x1999999a), %bb.4(0x1999999a), %bb.5(0x1999999a), %bb.6(0x1999999a), %bb.7(0x1999999a)144 ; CHECK-NEXT: {{ $}}145 ; CHECK-NEXT: [[PHI:%[0-9]+]]:gr64 = PHI [[COPY]], %bb.0, %2, %bb.7, %3, %bb.6, %4, %bb.5, %5, %bb.4, %6, %bb.3146 ; CHECK-NEXT: [[DEC64r:%[0-9]+]]:gr64_nosp = DEC64r [[PHI]], implicit-def dead $eflags147 ; CHECK-NEXT: JMP64m $noreg, 8, [[DEC64r]], %jump-table.0, $noreg :: (load (s64) from jump-table)148 ; CHECK-NEXT: {{ $}}149 ; CHECK-NEXT: bb.3:150 ; CHECK-NEXT: successors: %bb.1(0x80000000)151 ; CHECK-NEXT: {{ $}}152 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp153 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f1, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax154 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp155 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gr64 = COPY $rax156 ; CHECK-NEXT: JMP_1 %bb.1157 ; CHECK-NEXT: {{ $}}158 ; CHECK-NEXT: bb.4:159 ; CHECK-NEXT: successors: %bb.1(0x80000000)160 ; CHECK-NEXT: {{ $}}161 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp162 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f2, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax163 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp164 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gr64 = COPY $rax165 ; CHECK-NEXT: JMP_1 %bb.1166 ; CHECK-NEXT: {{ $}}167 ; CHECK-NEXT: bb.5:168 ; CHECK-NEXT: successors: %bb.1(0x80000000)169 ; CHECK-NEXT: {{ $}}170 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp171 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f3, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax172 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp173 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gr64 = COPY $rax174 ; CHECK-NEXT: JMP_1 %bb.1175 ; CHECK-NEXT: {{ $}}176 ; CHECK-NEXT: bb.6:177 ; CHECK-NEXT: successors: %bb.1(0x80000000)178 ; CHECK-NEXT: {{ $}}179 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp180 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f4, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax181 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp182 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:gr64 = COPY $rax183 ; CHECK-NEXT: JMP_1 %bb.1184 ; CHECK-NEXT: {{ $}}185 ; CHECK-NEXT: bb.7:186 ; CHECK-NEXT: successors: %bb.1(0x80000000)187 ; CHECK-NEXT: {{ $}}188 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp189 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f5, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax190 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp191 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:gr64 = COPY $rax192 ; CHECK-NEXT: JMP_1 %bb.1193 bb.0:194 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp195 CALL64pcrel32 target-flags(x86-plt) @f0, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax196 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp197 %1:gr64 = COPY $rax198 199 bb.1:200 %2:gr64 = PHI %1, %bb.0, %3, %bb.7, %4, %bb.6, %5, %bb.5, %6, %bb.4, %7, %bb.3201 %8:gr64_nosp = DEC64r %2, implicit-def dead $eflags202 203 bb.2:204 successors: %bb.3(0x1999999a), %bb.4(0x1999999a), %bb.5(0x1999999a), %bb.6(0x1999999a), %bb.7(0x1999999a)205 206 JMP64m $noreg, 8, %8, %jump-table.0, $noreg :: (load (s64) from jump-table)207 208 bb.3:209 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp210 CALL64pcrel32 target-flags(x86-plt) @f1, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax211 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp212 %7:gr64 = COPY $rax213 JMP_1 %bb.1214 215 bb.4:216 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp217 CALL64pcrel32 target-flags(x86-plt) @f2, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax218 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp219 %6:gr64 = COPY $rax220 JMP_1 %bb.1221 222 bb.5:223 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp224 CALL64pcrel32 target-flags(x86-plt) @f3, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax225 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp226 %5:gr64 = COPY $rax227 JMP_1 %bb.1228 229 bb.6:230 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp231 CALL64pcrel32 target-flags(x86-plt) @f4, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax232 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp233 %4:gr64 = COPY $rax234 JMP_1 %bb.1235 236 bb.7:237 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp238 CALL64pcrel32 target-flags(x86-plt) @f5, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax239 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp240 %3:gr64 = COPY $rax241 JMP_1 %bb.1242 243...244---245name: jump_table_pic246tracksRegLiveness: true247jumpTable:248 kind: block-address249 entries:250 - id: 0251 blocks: [ '%bb.3', '%bb.4', '%bb.5', '%bb.6', '%bb.7' ]252body: |253 ; CHECK-LABEL: name: jump_table_pic254 ; CHECK: bb.0:255 ; CHECK-NEXT: successors: %bb.1(0x80000000)256 ; CHECK-NEXT: {{ $}}257 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp258 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f0, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax259 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp260 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gr64 = COPY $rax261 ; CHECK-NEXT: {{ $}}262 ; CHECK-NEXT: bb.1:263 ; CHECK-NEXT: successors: %bb.3(0x1999999a), %bb.4(0x1999999a), %bb.5(0x1999999a), %bb.6(0x1999999a), %bb.7(0x1999999a)264 ; CHECK-NEXT: {{ $}}265 ; CHECK-NEXT: [[PHI:%[0-9]+]]:gr64 = PHI [[COPY]], %bb.0, %2, %bb.7, %3, %bb.6, %4, %bb.5, %5, %bb.4, %6, %bb.3266 ; CHECK-NEXT: [[DEC64r:%[0-9]+]]:gr64_nosp = DEC64r [[PHI]], implicit-def dead $eflags267 ; CHECK-NEXT: [[LEA64r:%[0-9]+]]:gr64 = LEA64r $rip, 1, $noreg, %jump-table.0, $noreg268 ; CHECK-NEXT: [[MOVSX64rm32_:%[0-9]+]]:gr64 = MOVSX64rm32 [[DEC64r]], 4, [[DEC64r]], 0, $noreg :: (load (s32) from jump-table)269 ; CHECK-NEXT: [[ADD64rr:%[0-9]+]]:gr64 = ADD64rr [[LEA64r]], [[MOVSX64rm32_]], implicit-def dead $eflags270 ; CHECK-NEXT: JMP64r [[ADD64rr]]271 ; CHECK-NEXT: {{ $}}272 ; CHECK-NEXT: bb.3:273 ; CHECK-NEXT: successors: %bb.1(0x80000000)274 ; CHECK-NEXT: {{ $}}275 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp276 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f1, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax277 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp278 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gr64 = COPY $rax279 ; CHECK-NEXT: JMP_1 %bb.1280 ; CHECK-NEXT: {{ $}}281 ; CHECK-NEXT: bb.4:282 ; CHECK-NEXT: successors: %bb.1(0x80000000)283 ; CHECK-NEXT: {{ $}}284 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp285 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f2, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax286 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp287 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gr64 = COPY $rax288 ; CHECK-NEXT: JMP_1 %bb.1289 ; CHECK-NEXT: {{ $}}290 ; CHECK-NEXT: bb.5:291 ; CHECK-NEXT: successors: %bb.1(0x80000000)292 ; CHECK-NEXT: {{ $}}293 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp294 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f3, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax295 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp296 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gr64 = COPY $rax297 ; CHECK-NEXT: JMP_1 %bb.1298 ; CHECK-NEXT: {{ $}}299 ; CHECK-NEXT: bb.6:300 ; CHECK-NEXT: successors: %bb.1(0x80000000)301 ; CHECK-NEXT: {{ $}}302 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp303 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f4, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax304 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp305 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:gr64 = COPY $rax306 ; CHECK-NEXT: JMP_1 %bb.1307 ; CHECK-NEXT: {{ $}}308 ; CHECK-NEXT: bb.7:309 ; CHECK-NEXT: successors: %bb.1(0x80000000)310 ; CHECK-NEXT: {{ $}}311 ; CHECK-NEXT: ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp312 ; CHECK-NEXT: CALL64pcrel32 target-flags(x86-plt) @f5, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax313 ; CHECK-NEXT: ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp314 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:gr64 = COPY $rax315 ; CHECK-NEXT: JMP_1 %bb.1316 bb.0:317 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp318 CALL64pcrel32 target-flags(x86-plt) @f0, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax319 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp320 %1:gr64 = COPY $rax321 322 bb.1:323 %2:gr64 = PHI %1, %bb.0, %3, %bb.7, %4, %bb.6, %5, %bb.5, %6, %bb.4, %7, %bb.3324 %8:gr64_nosp = DEC64r %2, implicit-def dead $eflags325 326 bb.2:327 successors: %bb.3(0x1999999a), %bb.4(0x1999999a), %bb.5(0x1999999a), %bb.6(0x1999999a), %bb.7(0x1999999a)328 %9:gr64 = LEA64r $rip, 1, $noreg, %jump-table.0, $noreg329 %10:gr64 = MOVSX64rm32 %8, 4, %8, 0, $noreg :: (load (s32) from jump-table)330 %11:gr64 = ADD64rr %9, %10, implicit-def dead $eflags331 JMP64r %11332 333 bb.3:334 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp335 CALL64pcrel32 target-flags(x86-plt) @f1, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax336 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp337 %7:gr64 = COPY $rax338 JMP_1 %bb.1339 340 bb.4:341 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp342 CALL64pcrel32 target-flags(x86-plt) @f2, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax343 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp344 %6:gr64 = COPY $rax345 JMP_1 %bb.1346 347 bb.5:348 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp349 CALL64pcrel32 target-flags(x86-plt) @f3, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax350 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp351 %5:gr64 = COPY $rax352 JMP_1 %bb.1353 354 bb.6:355 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp356 CALL64pcrel32 target-flags(x86-plt) @f4, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax357 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp358 %4:gr64 = COPY $rax359 JMP_1 %bb.1360 361 bb.7:362 ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp363 CALL64pcrel32 target-flags(x86-plt) @f5, csr_64, implicit $rsp, implicit $ssp, implicit-def $rsp, implicit-def $ssp, implicit-def $rax364 ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp365 %3:gr64 = COPY $rax366 JMP_1 %bb.1367 368...369