aboutsummaryrefslogtreecommitdiff
path: root/test/Transforms/TailCallElim/accum_recursion.ll
blob: ceef503a29edae26bb1a8a10947c9de2b10039dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
; RUN: llvm-as < %s | 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
}