Instcombine x-((x/y)*y) into a remainder operator.
[oota-llvm.git] / test / Feature / indirectcall2.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | llvm-dis > %t1.ll
2 ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
3 ; RUN: diff %t1.ll %t2.ll
4
5 implementation
6
7 ulong "test"(ulong %X)
8 begin
9         ret ulong %X
10 end
11
12 ulong "fib"(ulong %n)
13 begin
14   %T = setlt ulong %n, 2       ; {bool}:0
15   br bool %T, label %BaseCase, label %RecurseCase
16
17 RecurseCase:
18   %result = call ulong %test(ulong %n)
19   br label %BaseCase
20
21 BaseCase:
22   %X = phi ulong [1, %0], [2, %RecurseCase]
23   ret ulong %X
24 end
25