DynamicIntrinsicResolver
@dynamicMemberLookup
public struct DynamicIntrinsicResolver
This type provides a dynamic member lookup facility for LLVM intrinsics.
It is not possible to create a DynamicIntrinsicResolver
in user code.
One is provided by Intrinsic.ID
.
-
Performs a dynamic lookup for the normalized form of an intrinsic selector.
For any LLVM intrinsic selector of the form
llvm.foo.bar.baz
, the name of the corresponding dynamic member is that name with any dots replaced by underscores.For example:
llvm.foo.bar.baz -> Intrinsic.ID.llvm_foo_bar_baz llvm.stacksave -> Intrinsic.ID.llvm_stacksave llvm.x86.xsave64 -> Intrinsic.ID.llvm_x86_xsave64
Any existing underscores do not need to be replaced, e.g.
llvm.va_copy
becomesIntrinsic.ID.llvm_va_copy
.For overloaded intrinsics, the non-overloaded prefix excluding the explicit type parameters is used and normalized according to the convention above.
For example:
llvm.sinf64 -> Intrinsic.ID.llvm_sin llvm.memcpy.p0i8.p0i8.i32 -> Intrinsic.ID.llvm_memcpy llvm.bswap.v4i32 -> Intrinsic.ID.llvm_bswap
Declaration
Swift
public subscript(dynamicMember selector: String) -> Selector { get }
Parameters
selector
The LLVMSwift form of an intrinsic selector.