-; RUN: llvm-upgrade < %s | llvm-as > %t.out1.bc
-; RUN: echo {%S = external global \{ int, opaque* \} declare void %F(opaque*)}\
-; RUN: | llvm-upgrade | llvm-as > %t.out2.bc
-; RUN: llvm-link %t.out1.bc %t.out2.bc | llvm-dis | not grep opaque
+; RUN: llvm-as < %s > %t.out1.bc
+; RUN: echo "%%T1 = type opaque %%T2 = type opaque @S = external global { i32, %%T1* } declare void @F(%%T2*)"\
+; RUN: | llvm-as > %t.out2.bc
+; RUN: llvm-link %t.out1.bc %t.out2.bc -S | FileCheck %s
+; CHECK-NOT: opaque