X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FTransforms%2FSimplifyLibCalls%2FFFS.ll;h=ab45f1819b291898c74db3f8702546ac0a140b02;hb=59e43bde289750a4683879727a9e0e41ab7000a6;hp=7049b5a377acf6a1616fa5a101d18b935078fd1c;hpb=43b40035baca3c0a66d3af538f8d5347fb4ceea6;p=oota-llvm.git diff --git a/test/Transforms/SimplifyLibCalls/FFS.ll b/test/Transforms/SimplifyLibCalls/FFS.ll index 7049b5a377a..ab45f1819b2 100644 --- a/test/Transforms/SimplifyLibCalls/FFS.ll +++ b/test/Transforms/SimplifyLibCalls/FFS.ll @@ -1,29 +1,36 @@ ; Test that the ToAsciiOptimizer works correctly -; RUN: llvm-upgrade < %s | llvm-as | opt -simplify-libcalls | llvm-dis | \ -; RUN: not grep {call.*%ffs} +; RUN: opt < %s -simplify-libcalls -S | \ +; RUN: not grep {call.*@ffs} -declare int %ffs(int) -declare int %ffsl(int) -declare int %ffsll(long) +@non_const = external global i32 ; [#uses=1] -%non_const = external global int +declare i32 @ffs(i32) -implementation ; Functions: +declare i32 @ffsl(i32) -int %main () { - %arg = load int* %non_const - %val0 = call int %ffs(int %arg) - %val1 = call int %ffs(int 1) - %val2 = call int %ffs(int 2048) - %val3 = call int %ffsl(int 65536) - %val4 = call int %ffsll(long 1024) - %val5 = call int %ffsll(long 17179869184) - %val6 = call int %ffsll(long 1152921504606846976) - %rslt1 = add int %val1, %val2 - %rslt2 = add int %val3, %val4 - %rslt3 = add int %val5, %val6 - %rslt4 = add int %rslt1, %rslt2 - %rslt5 = add int %rslt4, %rslt3 - %rslt6 = add int %rslt5, %val0 - ret int %rslt5 +declare i32 @ffsll(i64) + +define i32 @main() { + %arg = load i32* @non_const ; [#uses=1] + %val0 = call i32 @ffs( i32 %arg ) ; [#uses=1] + %val1 = call i32 @ffs( i32 1 ) ; [#uses=1] + %val2 = call i32 @ffs( i32 2048 ) ; [#uses=1] + %val3 = call i32 @ffsl( i32 65536 ) ; [#uses=1] + %val4 = call i32 @ffsll( i64 1024 ) ; [#uses=1] + %val5 = call i32 @ffsll( i64 17179869184 ) ; [#uses=1] + %val6 = call i32 @ffsll( i64 1152921504606846976 ) ; [#uses=1] + %rslt1 = add i32 %val1, %val2 ; [#uses=1] + %rslt2 = add i32 %val3, %val4 ; [#uses=1] + %rslt3 = add i32 %val5, %val6 ; [#uses=1] + %rslt4 = add i32 %rslt1, %rslt2 ; [#uses=1] + %rslt5 = add i32 %rslt4, %rslt3 ; [#uses=2] + %rslt6 = add i32 %rslt5, %val0 ; [#uses=0] + ret i32 %rslt5 +} + + +; PR4206 +define i32 @a(i64) nounwind { + %2 = call i32 @ffsll(i64 %0) ; [#uses=1] + ret i32 %2 }