// RUN: %target-swift-frontend -parse-stdlib %s -emit-ir | %FileCheck %s import Swift import _Differentiation struct ExamplePullbackStruct { var pb0: (T.TangentVector) -> T.TangentVector } @_silgen_name("test_context_builtins") func test_context_builtins() { let pbStruct = ExamplePullbackStruct(pb0: { $0 }) let context = Builtin.autoDiffCreateLinearMapContext(Builtin.sizeof(type(of: pbStruct))) let topLevelSubctxAddr = Builtin.autoDiffProjectTopLevelSubcontext(context) UnsafeMutableRawPointer(topLevelSubctxAddr).storeBytes(of: pbStruct, as: type(of: pbStruct)) let newBuffer = Builtin.autoDiffAllocateSubcontext(context, Builtin.sizeof(type(of: pbStruct))) UnsafeMutableRawPointer(newBuffer).storeBytes(of: pbStruct, as: type(of: pbStruct)) } // CHECK-LABEL: define{{.*}}@test_context_builtins() // CHECK: entry: // CHECK: [[CTX:%.*]] = call swiftcc %swift.refcounted* @swift_autoDiffCreateLinearMapContext({{i[0-9]+}} {{.*}}) // CEHCK: call swiftcc i8* @swift_autoDiffProjectTopLevelSubcontext(%swift.refcounted* [[CTX]]) // CHECK: [[BUF:%.*]] = call swiftcc i8* @swift_autoDiffAllocateSubcontext(%swift.refcounted* [[CTX]], {{i[0-9]+}} {{.*}})