99 lines · plain
1; RUN: llc %s -o - | FileCheck %s2target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"3target triple = "thumbv7m-arm-none-eabi"4 5; CHECK-LABEL: x:6; CHECK: bl OUTLINED_FUNCTION7; CHECK-LABEL: y:8; CHECK: bl OUTLINED_FUNCTION9; CHECK-LABEL: z:10; CHECK-NOT: bl OUTLINED_FUNCTION11 12@a = hidden global i32 0, align 413@b = hidden global i32 0, align 414@c = hidden global i32 0, align 415@d = hidden global i32 0, align 416@e = hidden global i32 0, align 417@f = hidden global i32 0, align 418@g = hidden global i32 0, align 419@h = hidden global i32 0, align 420@i = hidden global i32 0, align 421 22define hidden i32 @x() local_unnamed_addr #0 {23entry:24 %0 = load volatile i32, ptr @a, align 425 %1 = load volatile i32, ptr @b, align 426 %add = add nsw i32 %1, %027 %2 = load volatile i32, ptr @c, align 428 %3 = load volatile i32, ptr @d, align 429 %add1 = add nsw i32 %3, %230 %div = sdiv i32 %add, %add131 %4 = load volatile i32, ptr @e, align 432 %5 = load volatile i32, ptr @f, align 433 %6 = load volatile i32, ptr @g, align 434 %div3 = sdiv i32 %5, %635 %7 = load volatile i32, ptr @h, align 436 %8 = load volatile i32, ptr @i, align 437 %add2 = add i32 %div, 138 %add4 = add i32 %add2, %439 %add5 = add i32 %add4, %div340 %add6 = add i32 %add5, %741 %add7 = add i32 %add6, %842 ret i32 %add743}44 45define hidden i32 @y() local_unnamed_addr #0 {46entry:47 %0 = load volatile i32, ptr @a, align 448 %1 = load volatile i32, ptr @b, align 449 %add = add nsw i32 %1, %050 %2 = load volatile i32, ptr @c, align 451 %3 = load volatile i32, ptr @d, align 452 %add1 = add nsw i32 %3, %253 %div = sdiv i32 %add, %add154 %4 = load volatile i32, ptr @e, align 455 %5 = load volatile i32, ptr @f, align 456 %6 = load volatile i32, ptr @g, align 457 %div3 = sdiv i32 %5, %658 %7 = load volatile i32, ptr @h, align 459 %8 = load volatile i32, ptr @i, align 460 %add2 = add i32 %div, 261 %add4 = add i32 %add2, %462 %add5 = add i32 %add4, %div363 %add6 = add i32 %add5, %764 %add7 = add i32 %add6, %865 ret i32 %add766}67 68define hidden i32 @z() local_unnamed_addr #1 {69entry:70 %0 = load volatile i32, ptr @a, align 471 %1 = load volatile i32, ptr @b, align 472 %add = add nsw i32 %1, %073 %2 = load volatile i32, ptr @c, align 474 %3 = load volatile i32, ptr @d, align 475 %add1 = add nsw i32 %3, %276 %div = sdiv i32 %add, %add177 %4 = load volatile i32, ptr @e, align 478 %5 = load volatile i32, ptr @f, align 479 %6 = load volatile i32, ptr @g, align 480 %div3 = sdiv i32 %5, %681 %7 = load volatile i32, ptr @h, align 482 %8 = load volatile i32, ptr @i, align 483 %add2 = add i32 %div, 384 %add4 = add i32 %add2, %485 %add5 = add i32 %add4, %div386 %add6 = add i32 %add5, %787 %add7 = add i32 %add6, %888 ret i32 %add789}90 91attributes #0 = { minsize nofree norecurse nounwind optsize "sign-return-address"="non-leaf" }92attributes #1 = { minsize nofree norecurse nounwind optsize }93 94!llvm.module.flags = !{!0, !1, !2}95 96!0 = !{i32 8, !"branch-target-enforcement", i32 0}97!1 = !{i32 8, !"sign-return-address", i32 2}98!2 = !{i32 8, !"sign-return-address-all", i32 0}99