325 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s | FileCheck %s3target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"4target triple = "x86_64-apple-darwin10"5 6declare void @f1() nounwind readnone7declare void @f2() nounwind readnone8declare void @f3() nounwind readnone9declare void @f4() nounwind readnone10declare void @f5() nounwind readnone11declare void @f6() nounwind readnone12declare void @f7() nounwind readnone13declare void @f8() nounwind readnone14declare void @f9() nounwind readnone15declare void @f10() nounwind readnone16declare void @f11() nounwind readnone17declare void @f12() nounwind readnone18declare void @f13() nounwind readnone19declare void @f14() nounwind readnone20declare void @f15() nounwind readnone21declare void @f16() nounwind readnone22declare void @f17() nounwind readnone23declare void @f18() nounwind readnone24declare void @f19() nounwind readnone25declare void @f20() nounwind readnone26declare void @f21() nounwind readnone27declare void @f22() nounwind readnone28declare void @f23() nounwind readnone29declare void @f24() nounwind readnone30declare void @f25() nounwind readnone31declare void @f26() nounwind readnone32 33define internal fastcc i32 @foo(i64 %bar) nounwind ssp {34; CHECK-LABEL: foo:35; CHECK: ## %bb.0: ## %entry36; CHECK-NEXT: pushq %rax37; CHECK-NEXT: addq $-2, %rdi38; CHECK-NEXT: cmpq $25, %rdi39; CHECK-NEXT: ja LBB0_240; CHECK-NEXT: ## %bb.1: ## %bb4941; CHECK-NEXT: leaq LJTI0_0(%rip), %rax42; CHECK-NEXT: movslq (%rax,%rdi,4), %rcx43; CHECK-NEXT: addq %rax, %rcx44; CHECK-NEXT: jmpq *%rcx45; CHECK-NEXT: LBB0_3: ## %RRETURN_646; CHECK-NEXT: callq _f247; CHECK-NEXT: jmp LBB0_2848; CHECK-NEXT: LBB0_18: ## %RRETURN_2949; CHECK-NEXT: callq _f1750; CHECK-NEXT: jmp LBB0_2851; CHECK-NEXT: LBB0_16: ## %RRETURN_2752; CHECK-NEXT: callq _f1553; CHECK-NEXT: jmp LBB0_2854; CHECK-NEXT: LBB0_13: ## %RRETURN_2255; CHECK-NEXT: callq _f1256; CHECK-NEXT: jmp LBB0_2857; CHECK-NEXT: LBB0_6: ## %RRETURN_1558; CHECK-NEXT: callq _f559; CHECK-NEXT: jmp LBB0_2860; CHECK-NEXT: LBB0_14: ## %RRETURN_2461; CHECK-NEXT: callq _f1362; CHECK-NEXT: jmp LBB0_2863; CHECK-NEXT: LBB0_11: ## %RRETURN_2064; CHECK-NEXT: callq _f1065; CHECK-NEXT: jmp LBB0_2866; CHECK-NEXT: LBB0_27: ## %RRETURN_167; CHECK-NEXT: callq _f2668; CHECK-NEXT: jmp LBB0_2869; CHECK-NEXT: LBB0_26: ## %RRETURN_5270; CHECK-NEXT: callq _f2571; CHECK-NEXT: jmp LBB0_2872; CHECK-NEXT: LBB0_4: ## %RRETURN_773; CHECK-NEXT: callq _f374; CHECK-NEXT: jmp LBB0_2875; CHECK-NEXT: LBB0_17: ## %RRETURN_2876; CHECK-NEXT: callq _f1677; CHECK-NEXT: jmp LBB0_2878; CHECK-NEXT: LBB0_5: ## %RRETURN_1479; CHECK-NEXT: callq _f480; CHECK-NEXT: jmp LBB0_2881; CHECK-NEXT: LBB0_9: ## %RRETURN_1882; CHECK-NEXT: callq _f883; CHECK-NEXT: jmp LBB0_2884; CHECK-NEXT: LBB0_19: ## %RRETURN_3085; CHECK-NEXT: callq _f1886; CHECK-NEXT: jmp LBB0_2887; CHECK-NEXT: LBB0_22: ## %RRETURN_4088; CHECK-NEXT: callq _f2189; CHECK-NEXT: jmp LBB0_2890; CHECK-NEXT: LBB0_7: ## %RRETURN_1691; CHECK-NEXT: callq _f692; CHECK-NEXT: jmp LBB0_2893; CHECK-NEXT: LBB0_23: ## %RRETURN_4294; CHECK-NEXT: callq _f2295; CHECK-NEXT: jmp LBB0_2896; CHECK-NEXT: LBB0_15: ## %RRETURN_2697; CHECK-NEXT: callq _f1498; CHECK-NEXT: jmp LBB0_2899; CHECK-NEXT: LBB0_8: ## %RRETURN_17100; CHECK-NEXT: callq _f7101; CHECK-NEXT: jmp LBB0_28102; CHECK-NEXT: LBB0_20: ## %RRETURN_31103; CHECK-NEXT: callq _f19104; CHECK-NEXT: jmp LBB0_28105; CHECK-NEXT: LBB0_12: ## %RRETURN_21106; CHECK-NEXT: callq _f11107; CHECK-NEXT: jmp LBB0_28108; CHECK-NEXT: LBB0_10: ## %RRETURN_19109; CHECK-NEXT: callq _f9110; CHECK-NEXT: jmp LBB0_28111; CHECK-NEXT: LBB0_24: ## %RRETURN_44112; CHECK-NEXT: callq _f23113; CHECK-NEXT: jmp LBB0_28114; CHECK-NEXT: LBB0_21: ## %RRETURN_38115; CHECK-NEXT: callq _f20116; CHECK-NEXT: jmp LBB0_28117; CHECK-NEXT: LBB0_25: ## %RRETURN_48118; CHECK-NEXT: callq _f24119; CHECK-NEXT: jmp LBB0_28120; CHECK-NEXT: LBB0_2: ## %RETURN121; CHECK-NEXT: callq _f1122; CHECK-NEXT: LBB0_28: ## %EXIT123; CHECK-NEXT: xorl %eax, %eax124; CHECK-NEXT: popq %rcx125; CHECK-NEXT: retq126; CHECK-NEXT: .p2align 2127; CHECK-NEXT: .data_region jt32128; CHECK-NEXT: L0_0_set_3 = LBB0_3-LJTI0_0129; CHECK-NEXT: L0_0_set_4 = LBB0_4-LJTI0_0130; CHECK-NEXT: L0_0_set_5 = LBB0_5-LJTI0_0131; CHECK-NEXT: L0_0_set_6 = LBB0_6-LJTI0_0132; CHECK-NEXT: L0_0_set_7 = LBB0_7-LJTI0_0133; CHECK-NEXT: L0_0_set_8 = LBB0_8-LJTI0_0134; CHECK-NEXT: L0_0_set_9 = LBB0_9-LJTI0_0135; CHECK-NEXT: L0_0_set_10 = LBB0_10-LJTI0_0136; CHECK-NEXT: L0_0_set_11 = LBB0_11-LJTI0_0137; CHECK-NEXT: L0_0_set_12 = LBB0_12-LJTI0_0138; CHECK-NEXT: L0_0_set_13 = LBB0_13-LJTI0_0139; CHECK-NEXT: L0_0_set_14 = LBB0_14-LJTI0_0140; CHECK-NEXT: L0_0_set_15 = LBB0_15-LJTI0_0141; CHECK-NEXT: L0_0_set_16 = LBB0_16-LJTI0_0142; CHECK-NEXT: L0_0_set_17 = LBB0_17-LJTI0_0143; CHECK-NEXT: L0_0_set_18 = LBB0_18-LJTI0_0144; CHECK-NEXT: L0_0_set_19 = LBB0_19-LJTI0_0145; CHECK-NEXT: L0_0_set_20 = LBB0_20-LJTI0_0146; CHECK-NEXT: L0_0_set_21 = LBB0_21-LJTI0_0147; CHECK-NEXT: L0_0_set_22 = LBB0_22-LJTI0_0148; CHECK-NEXT: L0_0_set_23 = LBB0_23-LJTI0_0149; CHECK-NEXT: L0_0_set_24 = LBB0_24-LJTI0_0150; CHECK-NEXT: L0_0_set_25 = LBB0_25-LJTI0_0151; CHECK-NEXT: L0_0_set_26 = LBB0_26-LJTI0_0152; CHECK-NEXT: L0_0_set_27 = LBB0_27-LJTI0_0153; CHECK-NEXT: LJTI0_0:154; CHECK-NEXT: .long L0_0_set_3155; CHECK-NEXT: .long L0_0_set_3156; CHECK-NEXT: .long L0_0_set_4157; CHECK-NEXT: .long L0_0_set_5158; CHECK-NEXT: .long L0_0_set_6159; CHECK-NEXT: .long L0_0_set_7160; CHECK-NEXT: .long L0_0_set_8161; CHECK-NEXT: .long L0_0_set_9162; CHECK-NEXT: .long L0_0_set_10163; CHECK-NEXT: .long L0_0_set_11164; CHECK-NEXT: .long L0_0_set_12165; CHECK-NEXT: .long L0_0_set_13166; CHECK-NEXT: .long L0_0_set_14167; CHECK-NEXT: .long L0_0_set_15168; CHECK-NEXT: .long L0_0_set_16169; CHECK-NEXT: .long L0_0_set_17170; CHECK-NEXT: .long L0_0_set_18171; CHECK-NEXT: .long L0_0_set_19172; CHECK-NEXT: .long L0_0_set_20173; CHECK-NEXT: .long L0_0_set_21174; CHECK-NEXT: .long L0_0_set_22175; CHECK-NEXT: .long L0_0_set_23176; CHECK-NEXT: .long L0_0_set_24177; CHECK-NEXT: .long L0_0_set_25178; CHECK-NEXT: .long L0_0_set_26179; CHECK-NEXT: .long L0_0_set_27180; CHECK-NEXT: .end_data_region181entry:182 br label %bb49183 184bb49:185 switch i64 %bar, label %RETURN [186 i64 2, label %RRETURN_2187 i64 3, label %RRETURN_6188 i64 4, label %RRETURN_7189 i64 5, label %RRETURN_14190 i64 6, label %RRETURN_15191 i64 7, label %RRETURN_16192 i64 8, label %RRETURN_17193 i64 9, label %RRETURN_18194 i64 10, label %RRETURN_19195 i64 11, label %RRETURN_20196 i64 12, label %RRETURN_21197 i64 13, label %RRETURN_22198 i64 14, label %RRETURN_24199 i64 15, label %RRETURN_26200 i64 16, label %RRETURN_27201 i64 17, label %RRETURN_28202 i64 18, label %RRETURN_29203 i64 19, label %RRETURN_30204 i64 20, label %RRETURN_31205 i64 21, label %RRETURN_38206 i64 22, label %RRETURN_40207 i64 23, label %RRETURN_42208 i64 24, label %RRETURN_44209 i64 25, label %RRETURN_48210 i64 26, label %RRETURN_52211 i64 27, label %RRETURN_1212 ]213 214RETURN:215 call void @f1()216 br label %EXIT217 218RRETURN_2: ; preds = %bb49219 call void @f2()220 br label %EXIT221 222RRETURN_6: ; preds = %bb49223 call void @f2()224 br label %EXIT225 226RRETURN_7: ; preds = %bb49227 call void @f3()228 br label %EXIT229 230RRETURN_14: ; preds = %bb49231 call void @f4()232 br label %EXIT233 234RRETURN_15: ; preds = %bb49235 call void @f5()236 br label %EXIT237 238RRETURN_16: ; preds = %bb49239 call void @f6()240 br label %EXIT241 242RRETURN_17: ; preds = %bb49243 call void @f7()244 br label %EXIT245 246RRETURN_18: ; preds = %bb49247 call void @f8()248 br label %EXIT249 250RRETURN_19: ; preds = %bb49251 call void @f9()252 br label %EXIT253 254RRETURN_20: ; preds = %bb49255 call void @f10()256 br label %EXIT257 258RRETURN_21: ; preds = %bb49259 call void @f11()260 br label %EXIT261 262RRETURN_22: ; preds = %bb49263 call void @f12()264 br label %EXIT265 266RRETURN_24: ; preds = %bb49267 call void @f13()268 br label %EXIT269 270RRETURN_26: ; preds = %bb49271 call void @f14()272 br label %EXIT273 274RRETURN_27: ; preds = %bb49275 call void @f15()276 br label %EXIT277 278RRETURN_28: ; preds = %bb49279 call void @f16()280 br label %EXIT281 282RRETURN_29: ; preds = %bb49283 call void @f17()284 br label %EXIT285 286RRETURN_30: ; preds = %bb49287 call void @f18()288 br label %EXIT289 290RRETURN_31: ; preds = %bb49291 call void @f19()292 br label %EXIT293 294RRETURN_38: ; preds = %bb49295 call void @f20()296 br label %EXIT297 298RRETURN_40: ; preds = %bb49299 call void @f21()300 br label %EXIT301 302RRETURN_42: ; preds = %bb49303 call void @f22()304 br label %EXIT305 306RRETURN_44: ; preds = %bb49307 call void @f23()308 br label %EXIT309 310RRETURN_48: ; preds = %bb49311 call void @f24()312 br label %EXIT313 314RRETURN_52: ; preds = %bb49315 call void @f25()316 br label %EXIT317 318RRETURN_1: ; preds = %bb49319 call void @f26()320 br label %EXIT321 322EXIT:323 ret i32 0324}325