[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / Hexagon / noreturn-notail.ll
blob4a684ad28c7b9bd7abaac152f2643ec159507521
1 ; RUN: llc -march=hexagon < %s | FileCheck %s
3 ; Check that we are emitting a regular call instead of a tail call for a
4 ; noreturn call in a function with a non-empty frame (to save instructions).
6 ; CHECK: call f0
7 ; CHECK-NOT: deallocframe
9 target triple = "hexagon"
11 ; Function Attrs: noreturn
12 declare void @f0(i32, ptr) #0
14 declare void @f1(ptr)
16 define i64 @f2(i32 %a0, i32 %a1) {
17 b0:
18   %v0 = alloca i32
19   call void @f1(ptr %v0)
20   %v1 = icmp ugt i32 %a0, 3
21   br i1 %v1, label %b1, label %b2
23 b1:                                               ; preds = %b0
24   tail call void @f0(i32 %a0, ptr %v0) #0
25   unreachable
27 b2:                                               ; preds = %b0
28   %v2 = mul i32 %a1, 7
29   %v3 = zext i32 %v2 to i64
30   ret i64 %v3
33 attributes #0 = { noreturn }