| ; RUN: llc -march=hexagon -print-machineinstrs=expand-isel-pseudos -o /dev/null 2>&1 < %s | FileCheck %s |
| ; REQUIRES: asserts |
| |
| ; CHECK: J2_call @f1 |
| ; CHECK: PS_call_nr @f2 |
| |
| target triple = "hexagon" |
| |
| @g0 = external global i32 |
| |
| ; Function Attrs: nounwind |
| define i32 @f0() #0 { |
| b0: |
| %v0 = load i32, i32* @g0, align 4 |
| %v1 = tail call i32 @f1(i32 %v0) #0 |
| %v2 = icmp eq i32 %v1, 0 |
| br i1 %v2, label %b1, label %b2 |
| |
| b1: ; preds = %b0 |
| tail call void @f2() #2 |
| unreachable |
| |
| b2: ; preds = %b0 |
| ret i32 0 |
| } |
| |
| declare i32 @f1(i32) |
| |
| ; Function Attrs: noreturn |
| declare void @f2() #1 |
| |
| attributes #0 = { nounwind "disable-tail-calls"="true" } |
| attributes #1 = { noreturn } |
| attributes #2 = { noreturn nounwind } |