brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 30d2c15 Raw
58 lines · plain
1; RUN: llc --verify-machineinstrs %s -o - | FileCheck %s2 3target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"4target triple = "thumbv7m-unknown-unknown-eabi"5 6declare dso_local i32 @h0(i32, i32) local_unnamed_addr #17 8define dso_local i32 @f(i32 %a, i32 %b, i32 %c, i32 %d) local_unnamed_addr #0 {9entry:10  %add = add nsw i32 %a, 111  %sub = add nsw i32 %b, -112  %call = tail call i32 @h0(i32 %add, i32 %sub) #013  %add1 = add nsw i32 %c, %b14  %mul = shl nsw i32 %call, 115  %add2 = add nsw i32 %mul, %add116  %sub3 = sub nsw i32 %c, %d17  %mul4 = mul nsw i32 %add2, %sub318  %sub5 = sub nsw i32 %call, %add119  %div = sdiv i32 %mul4, %sub520  %add6 = add nsw i32 %d, %c21  %mul7 = mul nsw i32 %div, %add622  %add8 = add nsw i32 %mul7, 123  ret i32 %add824}25; CHECK-LABEL: f:26; CHECK:       bl   h027; CHECK-NEXT:  bl   OUTLINED_FUNCTION_028; CHECK-NEXT:  adds r0, #129; CHECK-NEXT:  pop  {r4, r5, r6, pc}30 31 32define dso_local i32 @g(i32 %a, i32 %b, i32 %c, i32 %d) local_unnamed_addr #0 {33entry:34  %sub = add nsw i32 %a, -135  %add = add nsw i32 %b, 136  %call = tail call i32 @h0(i32 %sub, i32 %add) #037  %add1 = add nsw i32 %c, %b38  %mul = shl nsw i32 %call, 139  %add2 = add nsw i32 %mul, %add140  %sub3 = sub nsw i32 %c, %d41  %mul4 = mul nsw i32 %add2, %sub342  %sub5 = sub nsw i32 %call, %add143  %div = sdiv i32 %mul4, %sub544  %add6 = add nsw i32 %d, %c45  %mul7 = mul nsw i32 %div, %add646  %add8 = add nsw i32 %mul7, 247  ret i32 %add848}49; CHECK-LABEL: g:50; CHECK:       bl   h051; CHECK-NEXT:  bl   OUTLINED_FUNCTION_052; CHECK-NEXT:  adds r0, #253; CHECK-NEXT:  pop  {r4, r5, r6, pc}54 55 56attributes #0 = { minsize nounwind optsize }57attributes #1 = { minsize optsize }58