xref: /llvm-project/llvm/test/CodeGen/Hexagon/dealloc_return.ll (revision 2208c97c1bec2512d4e47b6223db6d95a7037956)
1; RUN: llc -mtriple=hexagon < %s | FileCheck %s
2
3@g0 = external global i32
4@g1 = external global i32
5@g2 = external global i32
6
7; CHECK: allocframe(r29,
8; CHECK: dealloc_return
9; CHECK-NEXT: }
10
11; Function Attrs: nounwind
12define i32 @f0() #0 {
13b0:
14  %v0 = alloca i32, align 4
15  %v1 = load i32, ptr @g0, align 4
16  store i32 %v1, ptr %v0, align 4
17  %v2 = load i32, ptr %v0, align 4
18  %v3 = load i32, ptr @g1, align 4
19  %v4 = mul nsw i32 %v2, %v3
20  %v5 = load i32, ptr @g2, align 4
21  %v6 = add nsw i32 %v4, %v5
22  store i32 %v6, ptr %v0, align 4
23  %v7 = load i32, ptr %v0, align 4
24  ret i32 %v7
25}
26
27attributes #0 = { nounwind "frame-pointer"="all" }
28