brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · d741411 Raw
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