Use InstrSlots::NUM rather than pre-dividing by four. Also, mark this const.
[oota-llvm.git] / test / Analysis / LoadVN / call_pure_function.ll
index c9de486c066ec1be73f14d6b6b90889974b1ce4a..8055c5271f4a498a2465704ca6826e206a544198 100644 (file)
@@ -1,13 +1,14 @@
 ; RUN: llvm-as < %s | opt -basicaa -load-vn -gcse -instcombine | llvm-dis | not grep sub
-declare int %strlen(sbyte*)
-declare void %use(int %X)
 
-sbyte %test(sbyte* %P, sbyte* %Q) {
-       %A = load sbyte* %Q
-       %X = call int %strlen(sbyte* %P)
-       %B = load sbyte* %Q                ;; CSE with A.
-       call void %use(int %X)             ;; make strlen not dead
+declare i32 @strlen(i8*) readonly
 
-       %C = sub sbyte %A, %B
-       ret sbyte %C
+declare void @use(i32)
+
+define i8 @test(i8* %P, i8* %Q) {
+       %A = load i8* %Q                ; <i8> [#uses=1]
+       %X = call i32 @strlen( i8* %P ) readonly                ; <i32> [#uses=1]
+       %B = load i8* %Q                ; <i8> [#uses=1]
+       call void @use( i32 %X )
+       %C = sub i8 %A, %B              ; <i8> [#uses=1]
+       ret i8 %C
 }