53 lines · plain
1; RUN: llc -verify-machineinstrs %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-unknown-unknown-eabi"4 5declare dso_local i32 @t(i32) local_unnamed_addr #06 7define dso_local i32 @f(i32 %a, i32 %b, i32 %c) local_unnamed_addr #0 {8entry:9 %mul = mul nsw i32 %a, 310 %add = add nsw i32 %mul, 111 %sub = add nsw i32 %b, -112 %div = sdiv i32 %add, %sub13 %sub1 = sub nsw i32 %a, %c14 %div2 = sdiv i32 %div, %sub115 %mul3 = mul nsw i32 %div2, %b16 %add4 = add nsw i32 %mul3, 117 %call = tail call i32 @t(i32 %add4) #018 ret i32 %call19}20; CHECK-LABEL: f:21; CHECK: str lr, [sp, #-8]!22; CHECK-NEXT: bl OUTLINED_FUNCTION_023; CHECK-NEXT: ldr lr, [sp], #824; CHECK-NEXT: adds r0, #125; CHECK-NEXT: b t26 27define dso_local i32 @g(i32 %a, i32 %b, i32 %c) local_unnamed_addr #0 {28entry:29 %mul = mul nsw i32 %a, 330 %add = add nsw i32 %mul, 131 %sub = add nsw i32 %b, -132 %div = sdiv i32 %add, %sub33 %sub1 = sub nsw i32 %a, %c34 %div2 = sdiv i32 %div, %sub135 %mul3 = mul nsw i32 %div2, %b36 %add4 = add nsw i32 %mul3, 337 %call = tail call i32 @t(i32 %add4) #038 ret i32 %call39}40 41; CHECK-LABEL: g:42; CHECK: str lr, [sp, #-8]!43; CHECK-NEXT: bl OUTLINED_FUNCTION_044; CHECK-NEXT: ldr lr, [sp], #845; CHECK-NEXT: adds r0, #346; CHECK-NEXT: b t47 48; CHECK-LABEL: OUTLINED_FUNCTION_0:49; CHECK-NOT: lr50; CHECK: bx lr51 52attributes #0 = { minsize nounwind optsize }53