align 4 %3 = alloca %P13CoolFramework12CoolProtocol_, align 4 %4 = call %swift.type* @_TMaC13CoolFramework13CoolTestClass() #2 %5 = call %C13CoolFramework13CoolTestClass* @_TFC13CoolFramework13CoolTestClassCfT_S0_(%swift.type* %4) %6 = bitcast %C13CoolFramework13CoolTestClass* %5 to %swift.type** %7 = load %swift.type*, %swift.type** %6, align 4 %8 = bitcast %swift.type* %7 to i64 (%P13CoolFramework12CoolProtocol_*, i32, %C13CoolFramework13CoolTestClass*)** %9 = getelementptr inbounds i64 (%P13CoolFramework12CoolProtocol_*, i32, %C13CoolFramework13CoolTestClass*)*, i64 (%P13CoolFramework12CoolProtocol_*, i32, %C13CoolFramework13CoolTestClass*)** %8, i32 14 %10 = load i64 (%P13CoolFramework12CoolProtocol_*, i32, %C13CoolFramework13CoolTestClass*)*, i64 (%P13CoolFramework12CoolProtocol_*, i32, %C13CoolFramework13CoolTestClass*)** %9, align 4, !invariant.load !34 %11 = bitcast i64 (%P13CoolFramework12CoolProtocol_*, i32, %C13CoolFramework13CoolTestClass*)* %10 to i8* %12 = bitcast %P13CoolFramework12CoolProtocol_* %2 to i8* call void @llvm.lifetime.start(i64 20, i8* %12) %13 = call %swift.type* @_TMaC14ViewController10CProtoImpl() #2 %14 = getelementptr inbounds %P13CoolFramework12CoolProtocol_, %P13CoolFramework12CoolProtocol_* %2, i32 0, i32 1 store %swift.type* %13, %swift.type** %14, align 4 %15 = getelementptr inbounds %P13CoolFramework12CoolProtocol_, %P13CoolFramework12CoolProtocol_* %2, i32 0, i32 2 store i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @_TWPC14ViewController10CProtoImpl13CoolFramework12CoolProtocolS_, i32 0, i32 0), i8*** %15, align 4 %16 = getelementptr inbounds %P13CoolFramework12CoolProtocol_, %P13CoolFramework12CoolProtocol_* %2, i32 0, i32 0 %17 = bitcast [12 x i8]* %16 to %C14ViewController10CProtoImpl** %18 = bitcast %C14ViewController14ViewController* %0 to %swift.type** %19 = load %swift.type*, %swift.type** %18, align 4 %20 = bitcast %swift.type* %19 to %C14ViewController10CProtoImpl* (%C14ViewController14ViewController*)** %21 = getelementptr inbounds %C14ViewController10CProtoImpl* (%C14ViewController14ViewController*)*, %C14ViewController10CProtoImpl* (%C14ViewController14ViewController*)** %20, i32 13 %22 = load %C14ViewController10CProtoImpl* (%C14ViewController14ViewController*)*, %C14ViewController10CProtoImpl* (%C14ViewController14ViewController*)** %21, align 4, !invariant.load !34 %23 = bitcast %C14ViewController10CProtoImpl* (%C14ViewController14ViewController*)* %22 to i8* %24 = bitcast i8* %23 to %C14ViewController10CProtoImpl* (%C14ViewController14ViewController*)* %25 = call %C14ViewController10CProtoImpl* %24(%C14ViewController14ViewController* %0) store %C14ViewController10CProtoImpl* %25, %C14ViewController10CProtoImpl** %17, align 4 %26 = bitcast i8* %11 to i64 (%P13CoolFramework12CoolProtocol_*, i32, %C13CoolFramework13CoolTestClass*)* %27 = call i64 %26(%P13CoolFramework12CoolProtocol_* noalias nocapture dereferenceable(20) %2, i32 1, %C13CoolFramework13CoolTestClass* %5) %28 = bitcast %P13CoolFramework12CoolProtocol_* %2 to i8* call void @llvm.lifetime.end(i64 20, i8* %28) %29 = bitcast %C13CoolFramework13CoolTestClass* %5 to %swift.type** %30 = load %swift.type*, %swift.type** %29, align 4 %31 = bitcast %swift.type* %30 to i64 (%P13CoolFramework12CoolProtocol_*, i32, %C13CoolFramework13CoolTestClass*)** %32 = getelementptr inbounds i64 (%P13CoolFramework12CoolProtocol_*, i32, %C13CoolFramework13CoolTestClass*)*, i64 (%P13CoolFramework12CoolProtocol_*, i32, %C13CoolFramework13CoolTestClass*)** %31, i32 14 %33 = load i64 (%P13CoolFramework12CoolProtocol_*, i32, %C13CoolFramework13CoolTestClass*)*, i64 (%P13CoolFramework12CoolProtocol_*, i32, %C13CoolFramework13CoolTestClass*)** %32, align 4, !invariant.load !34 %34 = bitcast i64 (%P13CoolFramework12CoolProtocol_*, i32, %C13CoolFramework13CoolTestClass*)* %33 to i8* %35 = bitcast %P13CoolFramework12CoolProtocol_* %3 to i8* call void @llvm.lifetime.start(i64 20, i8* %35) %36 = getelementptr inbounds %P13CoolFramework12CoolProtocol_, %P13CoolFramework12CoolProtocol_* %3, i32 0, i32 1 store %swift.type* bitcast (i32* getelementptr inbounds (<{ i8**, i32, i32, %swift.type* }>, <{ i8**, i32, i32, %swift.type* }>* @_TMfV14ViewController10SProtoImpl, i32 0, i32 1) to %swift.type*), %swift.type** %36, align 4 %37 = getelementptr inbounds %P13CoolFramework12CoolProtocol_, %P13CoolFramework12CoolProtocol_* %3, i32 0, i32 2 store i8** getelementptr inbounds ([1 x i8*], [1 x i8*]* @_TWPV14ViewController10SProtoImpl13CoolFramework12CoolProtocolS_, i32 0, i32 0), i8*** %37, align 4 %38 = getelementptr inbounds %P13CoolFramework12CoolProtocol_, %P13CoolFramework12CoolProtocol_* %3, i32 0, i32 0 %39 = bitcast [12 x i8]* %38 to %V14ViewController10SProtoImpl* %40 = bitcast %C14ViewController14ViewController* %0 to %swift.type** %41 = load %swift.type*, %swift.type** %40, align 4 %42 = bitcast %swift.type* %41 to void (%C14ViewController14ViewController*)** %43 = getelementptr inbounds void (%C14ViewController14ViewController*)*, void (%C14ViewController14ViewController*)** %42, i32 16 %44 = load void (%C14ViewController14ViewController*)*, void (%C14ViewController14ViewController*)** %43, align 4, !invariant.load !34 %45 = bitcast void (%C14ViewController14ViewController*)* %44 to i8* %46 = bitcast i8* %45 to void (%C14ViewController14ViewController*)* call void %46(%C14ViewController14ViewController* %0) %47 = bitcast i8* %34 to i64 (%P13CoolFramework12CoolProtocol_*, i32, %C13CoolFramework13CoolTestClass*)* %48 = call i64 %47(%P13CoolFramework12CoolProtocol_* noalias nocapture dereferenceable(20) %3, i32 2, %C13CoolFramework13CoolTestClass* %5) %49 = bitcast %P13CoolFramework12CoolProtocol_* %3 to i8* call void @llvm.lifetime.end(i64 20, i8* %49) %50 = call %swift.type* @_TMaP_() #2 %51 = call { %swift.bridge*, i8* } @_TFs27_allocateUninitializedArrayurFBwTGSax_Bp_(i32 2, %swift.type* %50) %52 = extractvalue { %swift.bridge*, i8* } %51, 0 %53 = extractvalue { %swift.bridge*, i8* } %51, 1 %54 = bitcast i8* %53 to %Any* %55 = getelementptr inbounds %Any, %Any* %54, i32 0, i32 1 store %swift.type* @_TMVs5Int64, %swift.type** %55, align 4 %56 = getelementptr inbounds %Any, %Any* %54, i32 0, i32 0 %57 = call noalias i8* @rt_swift_slowAlloc(i32 8, i32 7) #1 %58 = bitcast [12 x i8]* %56 to i8** store i8* %57, i8** %58, align 4 %59 = bitcast i8* %57 to %Vs5Int64* %60 = getelementptr inbounds %Vs5Int64, %Vs5Int64* %59, i32 0, i32 0 store i64 %27, i64* %60, align 8 %61 = getelementptr inbounds %Any, %Any* %54, i32 1 %62 = getelementptr inbounds %Any, %Any* %61, i32 0, i32 1 store %swift.type* @_TMVs5Int64, %swift.type** %62, align 4 %63 = getelementptr inbounds %Any, %Any* %61, i32 0, i32 0 %64 = call noalias i8* @rt_swift_slowAlloc(i32 8, i32 7) #1 %65 = bitcast [12 x i8]* %63 to i8** store i8* %64, i8** %65, align 4 %66 = bitcast i8* %64 to %Vs5Int64* %67 = getelementptr inbounds %Vs5Int64, %Vs5Int64* %66, i32 0, i32 0 store i64 %48, i64* %67, align 8 %68 = call { i32, i32, i32 } @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A0_() %69 = extractvalue { i32, i32, i32 } %68, 0 %70 = extractvalue { i32, i32, i32 } %68, 1 %71 = extractvalue { i32, i32, i32 } %68, 2 %72 = call { i32, i32, i32 } @_TIFs5printFTGSaP__9separatorSS10terminatorSS_T_A1_() %73 = extractvalue { i32, i32, i32 } %72, 0 %74 = extractvalue { i32, i32, i32 } %72, 1 %75 = extractvalue { i32, i32, i32 } %72, 2 call void @_TFs5printFTGSaP__9separatorSS10terminatorSS_T_(%swift.bridge* %52, i32 %69, i32 %70, i32 %71, i32 %73, i32 %74, i32 %75) call void bitcast (void (%swift.refcounted*)* @rt_swift_release to void (%C13CoolFramework13CoolTestClass*)*)(%C13CoolFramework13CoolTestClass* %5) #1 ret void }