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 becomes Intrinsic.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.