X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FFeature%2Findirectcall.ll;h=c1cf39f337466d3f7ed1ed9a3d6a5c85d8a43b76;hb=7a25825033a53925f6039b77c4cb0b975026b4e1;hp=2d1855b9033e00252696ce68c21241fe136c8e22;hpb=69ccadd7535a83b348595cf603126e6a68b2883b;p=oota-llvm.git diff --git a/test/Feature/indirectcall.ll b/test/Feature/indirectcall.ll index 2d1855b9033..c1cf39f3374 100644 --- a/test/Feature/indirectcall.ll +++ b/test/Feature/indirectcall.ll @@ -1,54 +1,49 @@ -; RUN: llvm-upgrade < %s | llvm-as | llvm-dis > %t1.ll +; RUN: llvm-as < %s | llvm-dis > %t1.ll ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll ; RUN: diff %t1.ll %t2.ll -implementation - -declare int "atoi"(sbyte *) - -ulong "fib"(ulong %n) -begin - setlt ulong %n, 2 ; {bool}:0 - br bool %0, label %BaseCase, label %RecurseCase - -BaseCase: - ret ulong 1 - -RecurseCase: - %n2 = sub ulong %n, 2 - %n1 = sub ulong %n, 1 - %f2 = call ulong(ulong) * %fib(ulong %n2) - %f1 = call ulong(ulong) * %fib(ulong %n1) - %result = add ulong %f2, %f1 - ret ulong %result -end - -ulong "realmain"(int %argc, sbyte ** %argv) -begin - seteq int %argc, 2 ; {bool}:0 - br bool %0, label %HasArg, label %Continue -HasArg: - ; %n1 = atoi(argv[1]) - %n1 = add int 1, 1 - br label %Continue - -Continue: - %n = phi int [%n1, %HasArg], [1, %0] - %N = cast int %n to ulong - %F = call ulong(ulong) *%fib(ulong %N) - ret ulong %F -end - -ulong "trampoline"(ulong %n, ulong(ulong)* %fibfunc) -begin - %F = call ulong(ulong) *%fibfunc(ulong %n) - ret ulong %F -end - -int "main"() -begin - %Result = call ulong %trampoline(ulong 10, ulong(ulong) *%fib) - %Result = cast ulong %Result to int - ret int %Result -end +declare i32 @atoi(i8*) + +define i64 @fib(i64 %n) { + icmp ult i64 %n, 2 ; :1 [#uses=1] + br i1 %1, label %BaseCase, label %RecurseCase + +BaseCase: ; preds = %0 + ret i64 1 + +RecurseCase: ; preds = %0 + %n2 = sub i64 %n, 2 ; [#uses=1] + %n1 = sub i64 %n, 1 ; [#uses=1] + %f2 = call i64 @fib( i64 %n2 ) ; [#uses=1] + %f1 = call i64 @fib( i64 %n1 ) ; [#uses=1] + %result = add i64 %f2, %f1 ; [#uses=1] + ret i64 %result +} + +define i64 @realmain(i32 %argc, i8** %argv) { +;