Use the llvm-upgrade program to upgrade llvm assembly.
[oota-llvm.git] / test / Analysis / LoadVN / call_pure_function.ll
1 ; RUN: llvm-upgrade < %s | llvm-as | opt -basicaa -load-vn -gcse -instcombine | llvm-dis | not grep sub
2 declare int %strlen(sbyte*)
3 declare void %use(int %X)
4
5 sbyte %test(sbyte* %P, sbyte* %Q) {
6         %A = load sbyte* %Q
7         %X = call int %strlen(sbyte* %P)
8         %B = load sbyte* %Q                ;; CSE with A.
9         call void %use(int %X)             ;; make strlen not dead
10
11         %C = sub sbyte %A, %B
12         ret sbyte %C
13 }