]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeGen/Hexagon/call-v4.ll
Vendor import of llvm trunk r351319 (just before the release_80 branch
[FreeBSD/FreeBSD.git] / test / CodeGen / Hexagon / call-v4.ll
1 ; RUN: llc -march=hexagon -print-machineinstrs=expand-isel-pseudos -o /dev/null 2>&1 < %s | FileCheck %s
2 ; REQUIRES: asserts
3
4 ; CHECK: J2_call @f1
5 ; CHECK: PS_call_nr @f2
6
7 target triple = "hexagon"
8
9 @g0 = external global i32
10
11 ; Function Attrs: nounwind
12 define i32 @f0() #0 {
13 b0:
14   %v0 = load i32, i32* @g0, align 4
15   %v1 = tail call i32 @f1(i32 %v0) #0
16   %v2 = icmp eq i32 %v1, 0
17   br i1 %v2, label %b1, label %b2
18
19 b1:                                               ; preds = %b0
20   tail call void @f2() #2
21   unreachable
22
23 b2:                                               ; preds = %b0
24   ret i32 0
25 }
26
27 declare i32 @f1(i32)
28
29 ; Function Attrs: noreturn
30 declare void @f2() #1
31
32 attributes #0 = { nounwind "disable-tail-calls"="true" }
33 attributes #1 = { noreturn }
34 attributes #2 = { noreturn nounwind }