; This fails because the linker renames the external symbol not the internal
; one...
-; RUN: echo "implementation internal int %foo() { ret int 7 }" | llvm-upgrade |\
-; RUN: llvm-as > %t.1.bc
-; RUN: llvm-upgrade < %s | llvm-as -o %t.2.bc -f
-; RUN: llvm-link %t.[12].bc | llvm-dis | grep '@foo()' | grep -v internal
+; RUN: echo "define internal i32 @foo() { ret i32 7 } " | llvm-as > %t.1.bc
+; RUN: llvm-as %s -o %t.2.bc
+; RUN: llvm-link %t.1.bc %t.2.bc -S | FileCheck %s
+; CHECK: internal{{.*}}@foo{{[0-9]}}()
-implementation
-int %foo() { ret int 0 }
+define i32 @foo() { ret i32 0 }