- Notifications
You must be signed in to change notification settings - Fork 10.5k
/
Copy pathruntime.swift
19 lines (16 loc) · 981 Bytes
/
runtime.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// RUN: %target-swift-frontend -enable-builtin-module %s -emit-ir | %FileCheck %s
import Builtin
import _Differentiation
@_silgen_name("test_context_builtins_with_type")
func test_context_builtins_with_type<T>(t:T){
letcontext=Builtin.autoDiffCreateLinearMapContextWithType(T.self)
lettopLevelSubctxAddr=Builtin.autoDiffProjectTopLevelSubcontext(context)
UnsafeMutableRawPointer(topLevelSubctxAddr).storeBytes(of: t, as:T.self)
letnewBuffer=Builtin.autoDiffAllocateSubcontextWithType(context,T.self)
UnsafeMutableRawPointer(newBuffer).storeBytes(of: t, as:T.self)
}
// CHECK-LABEL: define{{.*}}@test_context_builtins_with_type(ptr noalias %0, ptr %T)
// CHECK: entry:
// CHECK: [[CTX:%.*]] = call swiftcc ptr @swift_autoDiffCreateLinearMapContextWithType(ptr %T)
// CHECK: call swiftcc ptr @swift_autoDiffProjectTopLevelSubcontext(ptr [[CTX]])
// CHECK: [[BUF:%.*]] = call swiftcc ptr @swift_autoDiffAllocateSubcontextWithType(ptr [[CTX]], ptr %T)