Ding dong, the DoesntAccessMemoryFns and
OnlyReadsMemoryFns tables are dead!  We
get more, and more accurate, information
from gcc via the readnone and readonly
function attributes.

llvm-svn: 44288
diff --git a/llvm/test/Analysis/LoadVN/call_pure_function.ll b/llvm/test/Analysis/LoadVN/call_pure_function.ll
index 302ae60..8055c52 100644
--- a/llvm/test/Analysis/LoadVN/call_pure_function.ll
+++ b/llvm/test/Analysis/LoadVN/call_pure_function.ll
@@ -1,13 +1,14 @@
-; RUN: llvm-upgrade < %s | llvm-as | opt -basicaa -load-vn -gcse -instcombine | llvm-dis | not grep sub
-declare int %strlen(sbyte*)
-declare void %use(int %X)
+; RUN: llvm-as < %s | opt -basicaa -load-vn -gcse -instcombine | llvm-dis | not grep sub
 
-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
 }