brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 087e049 Raw
90 lines · plain
1; RUN: llc --force-dwarf-frame-section %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; -Oz6; volatile int a, b, c, d, e, f;7;8; int x() {9;   int r = a + b + c + d + e + f;10;   return r + 1;11; }12;13; int y() {14;   int r = a + b + c + d + e + f;15;   return r + 2;16; }17 18@a = hidden global i32 0, align 419@b = hidden global i32 0, align 420@c = hidden global i32 0, align 421@d = hidden global i32 0, align 422@e = hidden global i32 0, align 423@f = hidden global i32 0, align 424 25define hidden i32 @x() local_unnamed_addr #0 {26entry:27  %0 = load volatile i32, ptr @a, align 428  %1 = load volatile i32, ptr @b, align 429  %2 = load volatile i32, ptr @c, align 430  %3 = load volatile i32, ptr @d, align 431  %4 = load volatile i32, ptr @e, align 432  %5 = load volatile i32, ptr @f, align 433  %add = add i32 %0, 134  %add1 = add i32 %add, %135  %add2 = add i32 %add1, %236  %add3 = add i32 %add2, %337  %add4 = add i32 %add3, %438  %add5 = add i32 %add4, %539  ret i32 %add540}41; CHECK-LABEL: x:42; CHECK:        ldr   r{{.*}}, .LCPI0_043; CHECK-NEXT:   mov   r[[A:[0-9]*]], lr44; CHECK-NEXT:   .cfi_register lr, r[[A]]45; CHECK-NEXT:   bl    OUTLINED_FUNCTION_046; CHECK-NEXT:   mov   lr, r[[A]]47; CHECK-NEXT:   .cfi_restore lr48; CHECK-NEXT:   adds  r0, #149; CHECK-NEXT:   bx    lr50 51define hidden i32 @y() local_unnamed_addr #0 {52entry:53  %0 = load volatile i32, ptr @a, align 454  %1 = load volatile i32, ptr @b, align 455  %2 = load volatile i32, ptr @c, align 456  %3 = load volatile i32, ptr @d, align 457  %4 = load volatile i32, ptr @e, align 458  %5 = load volatile i32, ptr @f, align 459  %add = add i32 %0, 260  %add1 = add i32 %add, %161  %add2 = add i32 %add1, %262  %add3 = add i32 %add2, %363  %add4 = add i32 %add3, %464  %add5 = add i32 %add4, %565  ret i32 %add566}67; CHECK-LABEL: y:68; CHECK:       ldr   r{{.*}}, .LCPI1_069; CHECK-NEXT:  mov   r[[B:[0-9]*]], lr70; CHECK-NEXT:  .cfi_register lr, r[[B]]71; CHECK-NEXT:  bl    OUTLINED_FUNCTION_072; CHECK-NEXT:  mov   lr, r[[B]]73; CHECK-NEXT:  .cfi_restore lr74; CHECK-NEXT:  adds  r0, #275; CHECK-NEXT:  bx    lr76 77; CHECK-LABEL: OUTLINED_FUNCTION_0:78; CHECK-NOT: pac79; CHECK-NOT: aut80; CHECK-NOT: r1281; CHECK:     bx lr82 83attributes #0 = { minsize nofree norecurse nounwind optsize}84 85!llvm.module.flags = !{!0, !1, !2}86 87!0 = !{i32 8, !"branch-target-enforcement", i32 0}88!1 = !{i32 8, !"sign-return-address", i32 1}89!2 = !{i32 8, !"sign-return-address-all", i32 0}90