diff options
Diffstat (limited to 'test/Analysis/GlobalsModRef/purecse.ll')
-rw-r--r-- | test/Analysis/GlobalsModRef/purecse.ll | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/test/Analysis/GlobalsModRef/purecse.ll b/test/Analysis/GlobalsModRef/purecse.ll index 0c95182d46..1977f4750e 100644 --- a/test/Analysis/GlobalsModRef/purecse.ll +++ b/test/Analysis/GlobalsModRef/purecse.ll @@ -1,23 +1,23 @@ ; Test that pure functions are cse'd away +; RUN: llvm-as < %s | opt -globalsmodref-aa -load-vn -gcse -instcombine | \ +; RUN: llvm-dis | not grep sub -; RUN: llvm-upgrade < %s | llvm-as | opt -globalsmodref-aa -load-vn -gcse -instcombine | llvm-dis | not grep sub - -int %pure(int %X) { - %Y = add int %X, 1 - ret int %Y +define i32 @pure(i32 %X) { + %Y = add i32 %X, 1 ; <i32> [#uses=1] + ret i32 %Y } -int %test1(int %X) { - %A = call int %pure(int %X) - %B = call int %pure(int %X) - %C = sub int %A, %B - ret int %C +define i32 @test1(i32 %X) { + %A = call i32 @pure( i32 %X ) ; <i32> [#uses=1] + %B = call i32 @pure( i32 %X ) ; <i32> [#uses=1] + %C = sub i32 %A, %B ; <i32> [#uses=1] + ret i32 %C } -int %test2(int %X, int* %P) { - %A = call int %pure(int %X) - store int %X, int* %P ;; Does not invalidate 'pure' call. - %B = call int %pure(int %X) - %C = sub int %A, %B - ret int %C +define i32 @test2(i32 %X, i32* %P) { + %A = call i32 @pure( i32 %X ) ; <i32> [#uses=1] + store i32 %X, i32* %P ;; Does not invalidate 'pure' call. + %B = call i32 @pure( i32 %X ) ; <i32> [#uses=1] + %C = sub i32 %A, %B ; <i32> [#uses=1] + ret i32 %C } |