Merge branch 'master' into msp430
[llvm/msp430.git] / test / Transforms / TailCallElim / accum_recursion.ll
blobe8c28ec80672b73509b21fff5fef4ed0e2496c2c
1 ; RUN: llvm-as < %s | opt -tailcallelim | llvm-dis | not grep call
3 define i32 @factorial(i32 %x) {
4 entry:
5         %tmp.1 = icmp sgt i32 %x, 0             ; <i1> [#uses=1]
6         br i1 %tmp.1, label %then, label %else
7 then:           ; preds = %entry
8         %tmp.6 = add i32 %x, -1         ; <i32> [#uses=1]
9         %tmp.4 = call i32 @factorial( i32 %tmp.6 )              ; <i32> [#uses=1]
10         %tmp.7 = mul i32 %tmp.4, %x             ; <i32> [#uses=1]
11         ret i32 %tmp.7
12 else:           ; preds = %entry
13         ret i32 1