DYND_CUDA_HOST_DEVICE inline static void assign(dynd_bool *dst,
                                                    const dynd_float128 *src)
    {
        DYND_TRACE_ASSIGNMENT((bool)(s != src_type(0)), dynd_bool, s, src_type);

        *dst = ((src->m_lo != 0) || ((src->m_hi&0x7fffffffffffffffULL) != 0));
    }
    static void assign(dynd_float128 *dst, const dynd_bool *src, ckernel_prefix *DYND_UNUSED(extra)) {
        DYND_TRACE_ASSIGNMENT((bool)(s != src_type(0)), dynd_bool, s, src_type);

        if (*src) {
            *dst = dynd_float128(0x3fff000000000000ULL, 0ULL);
        } else {
            *dst = dynd_float128(0ULL, 0ULL);
        }
    }
    DYND_CUDA_HOST_DEVICE static void assign(dynd_float128 *dst, const dynd_bool *src) {
        DYND_TRACE_ASSIGNMENT((bool)(s != src_type(0)), dynd_bool, s, src_type);

        if (*src) {
            *dst = dynd_float128(0x3fff000000000000ULL, 0ULL);
        } else {
            *dst = dynd_float128(0ULL, 0ULL);
        }
    }
    static void assign(dynd_bool *dst, const dynd_float128 *src, ckernel_prefix *DYND_UNUSED(extra)) {
        DYND_TRACE_ASSIGNMENT((bool)(s != src_type(0)), dynd_bool, s, src_type);

        *dst = ((src->m_lo != 0) || ((src->m_hi&0x7fffffffffffffffULL) != 0));
    }