brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · e241193 Raw
84 lines · plain
1; RUN: llc -O2 -mtriple=thumbv7m-eabi < %s | FileCheck %s2; RUN: llc -O2 -mtriple=thumbv8m.main-eabi < %s | FileCheck %s3 4define dso_local i32 @test_for_tbb_tbh_cases(i32 noundef %x) local_unnamed_addr #0 {5entry:6  switch i32 %x, label %sw.default [7    i32 0, label %sw.bb8    i32 1, label %return9    i32 2, label %sw.bb210    i32 3, label %sw.bb311  ]12 13sw.bb:                                            ; preds = %entry14  %call = tail call i32 @g(i32 noundef 0) #215  %add = add nsw i32 %call, 116  br label %return17 18sw.bb2:                                           ; preds = %entry19  br label %return20 21sw.bb3:                                           ; preds = %entry22  br label %return23 24sw.default:                                       ; preds = %entry25  br label %return26 27return:                                           ; preds = %entry, %sw.default, %sw.bb3, %sw.bb2, %sw.bb28  %retval.0 = phi i32 [ 5, %sw.default ], [ 4, %sw.bb3 ], [ 3, %sw.bb2 ], [ %add, %sw.bb ], [ 2, %entry ]29  ret i32 %retval.030 31; CHECK: tbb	[pc, r1]32; CHECK-LABEL: .LBB0_3:33; CHECK-NOT: bti34; CHECK-LABEL: .LBB0_4:35; CHECK-NOT: bti36; CHECK-LABEL: .LBB0_5:37; CHECK-NOT: bti38; CHECK-LABEL: .LBB0_6:39; CHECK-NOT: bti40; CHECK-LABEL: .LBB0_7:41; CHECK-NOT: bti42}43 44declare dso_local i32 @g(i32 noundef) local_unnamed_addr #145 46define dso_local i32 @test_for_direct_jump_cases(i32 noundef %x) local_unnamed_addr #0 {47entry:48  switch i32 %x, label %sw.default [49    i32 0, label %sw.bb50    i32 2, label %cleanup51    i32 8, label %sw.bb252    i32 5, label %sw.bb353  ]54 55sw.bb:                                            ; preds = %entry56  tail call void asm sideeffect ".space 140000", ""()57  br label %cleanup58 59sw.bb2:                                           ; preds = %entry60  br label %cleanup61 62sw.bb3:                                           ; preds = %entry63  br label %cleanup64 65sw.default:                                       ; preds = %entry66  br label %cleanup67 68cleanup:                                          ; preds = %entry, %sw.default, %sw.bb3, %sw.bb2, %sw.bb69  %retval.0 = phi i32 [ 5, %sw.default ], [ 4, %sw.bb3 ], [ 3, %sw.bb2 ], [ 1, %sw.bb ], [ %x, %entry ]70  ret i32 %retval.071 72; CHECK: mov	pc, r173; CHECK-LABEL: .LBB1_3:74; CHECK-NOT: bti75; CHECK-LABEL: .LBB1_4:76; CHECK-NOT: bti77; CHECK-LABEL: .LBB1_5:78; CHECK-NOT: bti79; CHECK-LABEL: .LBB1_6:80; CHECK-NOT: bti81; CHECK-LABEL: .LBB1_7:82; CHECK-NOT: bti83}84