brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · 60d591b Raw
79 lines · plain
1; RUN: llc -mtriple=thumbv7m-eabi %s -o - | FileCheck %s2 3; See bti-outliner-1.ll4; Difference is the BTI placement is enabled by default for the entire module.5 6@a = hidden global i32 0, align 47@b = hidden global i32 0, align 48@c = hidden global i32 0, align 49@d = hidden global i32 0, align 410@e = hidden global i32 0, align 411@f = hidden global i32 0, align 412 13define hidden i32 @x(i32 %p) local_unnamed_addr #1 {14entry:15  %0 = load volatile i32, ptr @a, align 416  %1 = load volatile i32, ptr @b, align 417  %add = add nsw i32 %1, %018  %2 = load volatile i32, ptr @c, align 419  %3 = load volatile i32, ptr @d, align 420  %add1 = add nsw i32 %3, %221  %div = sdiv i32 %add, %add122  %4 = load volatile i32, ptr @e, align 423  %mul = mul nsw i32 %4, %div24  %5 = load volatile i32, ptr @f, align 425  %add2 = add nsw i32 %mul, %526  %add3 = add nsw i32 %add2, 127  ret i32 %add328}29; CHECK-LABEL: x:30; CHECK:       bti31; CHECK:       bl OUTLINED_FUNCTION_032 33define hidden i32 @y(i32 %p) local_unnamed_addr #0 {34entry:35  %0 = load volatile i32, ptr @a, align 436  %1 = load volatile i32, ptr @b, align 437  %add = add nsw i32 %1, %038  %2 = load volatile i32, ptr @c, align 439  %3 = load volatile i32, ptr @d, align 440  %add1 = add nsw i32 %3, %241  %div = sdiv i32 %add, %add142  %4 = load volatile i32, ptr @e, align 443  %mul = mul nsw i32 %4, %div44  %5 = load volatile i32, ptr @f, align 445  %add2 = add nsw i32 %mul, %546  %add3 = add nsw i32 %add2, 247  ret i32 %add348}49; CHECK-LABEL: y:50; CHECK-NOT:   bti51; CHECK-NOT:   bl OUTLINED_FUNCTION52 53define hidden i32 @z(i32 %p) local_unnamed_addr #1 {54entry:55  %0 = load volatile i32, ptr @a, align 456  %1 = load volatile i32, ptr @b, align 457  %add = add nsw i32 %1, %058  %2 = load volatile i32, ptr @c, align 459  %3 = load volatile i32, ptr @d, align 460  %add1 = add nsw i32 %3, %261  %div = sdiv i32 %add, %add162  %4 = load volatile i32, ptr @e, align 463  %mul = mul nsw i32 %4, %div64  %5 = load volatile i32, ptr @f, align 465  %add2 = add nsw i32 %mul, %566  %add3 = add nsw i32 %add2, 367  ret i32 %add368}69; CHECK-LABEL: z:70; CHECK:       bti71; CHECK:       bl OUTLINED_FUNCTION_072 73; CHECK-LABEL: OUTLINED_FUNCTION_0:74; CHECK:       bti75 76attributes #0 = { minsize nofree norecurse nounwind optsize  }77attributes #1 = { minsize nofree norecurse nounwind optsize "branch-target-enforcement" }78 79