[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / Hexagon / noreturn-notail.ll
blobe5eb366a6ea80ecc7dfa5829f433083f6bd0ee9c
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, i32*) #0
14 declare void @f1(i32*)
16 define i64 @f2(i32 %a0, i32 %a1) {
17 b0:
18   %v0 = alloca i32
19   call void @f1(i32* %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, i32* %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 }