1; RUN: llvm-link %s %p/partial-type-refinement-link.ll -S | FileCheck %s 2; PR4954 3 4; CHECK: load %PI*, %PI** getelementptr inbounds (%"RegisterP<LowerArrayLength>", %"RegisterP<LowerArrayLength>"* @_ZN3mvmL1XE, i64 0, i32 0, i32 6, i32 0, i32 0, i32 0), align 16 5 6%AnalysisResolver = type { i8, %PMDataManager* } 7%"DenseMap<P*,AU*>" = type { i64, %"pair<P*,AU*>"*, i64, i64 } 8%PMDataManager = type { i8, %PMTopLevelManager*, i8, i8, i8, i8, i8, i64, i8 } 9%PMTopLevelManager = type { i8, i8, i8, i8, i8, i8, i8, i8, %"DenseMap<P*,AU*>" } 10%P = type { i8, %AnalysisResolver*, i64 } 11%PI = type { i8, i8, i8, i8, i8, i8, %"vector<const PI*>", %P* } 12%"RegisterP<LowerArrayLength>" = type { %PI } 13%"_V_base<const PI*>" = type { %"_V_base<const PI*>::_V_impl" } 14%"_V_base<const PI*>::_V_impl" = type { %PI*, i8, i8 } 15%"pair<P*,AU*>" = type opaque 16%"vector<const PI*>" = type { %"_V_base<const PI*>" } 17 18@_ZN3mvmL1XE = external global %"RegisterP<LowerArrayLength>" 19 20define void @__tcf_0() nounwind { 21entry: 22 %0 = load %PI*, %PI** getelementptr inbounds (%"RegisterP<LowerArrayLength>", %"RegisterP<LowerArrayLength>"* @_ZN3mvmL1XE, i64 0, i32 0, i32 6, i32 0, i32 0, i32 0), align 16 23 ret void 24} 25