summaryrefslogtreecommitdiff
path: root/test/Transforms/TailCallElim/accum_recursion.ll
blob: d82d963b9d70231d2e6dcb6947c22ebbbf57de3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
; RUN: llvm-upgrade < %s | llvm-as | opt -tailcallelim | llvm-dis | not grep call

int %factorial(int %x) {
entry:
        %tmp.1 = setgt int %x, 0
        br bool %tmp.1, label %then, label %else

then:
        %tmp.6 = add int %x, -1
        %tmp.4 = call int %factorial( int %tmp.6 )
        %tmp.7 = mul int %tmp.4, %x
        ret int %tmp.7

else:
        ret int 1
}