How to use the pybase64.distutils.ccompilercapabilities.CCompilerCapabilities.SIMD_NEON32 function in pybase64

To help you get started, we’ve selected a few pybase64 examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github mayeut / pybase64 / pybase64 / distutils / ccompilercapabilities.py View on Github external
self.__has_simd_support(
                compiler,
                ['', '-mavx2', '/arch:AVX2'],
                ['-D__AVX2__'],
                'immintrin.h',
                '__m256i y = _mm256_loadu_si256((const __m256i*)argv[0]);'
                'y = _mm256_i32gather_epi32((int const*)argv[1], y, 2);'
                'return _mm_cvtsi128_si32(_mm256_castsi256_si128(y));'
        )
        log.info(
            "AVX2:  %s" %
            str(self.__capabilities[
                CCompilerCapabilities.SIMD_AVX2
            ]['support'])
        )
        self.__capabilities[CCompilerCapabilities.SIMD_NEON32] = \
            self.__has_simd_support(
                compiler,
                [''],
                [],
                'arm_neon.h',
                'uint8x16_t t = vdupq_n_u8(1);'
                'return vgetq_lane_s32(vreinterpretq_s32_u8(t));'
        )
        log.info(
            "NEON32:  %s" %
            str(self.__capabilities[
                CCompilerCapabilities.SIMD_NEON32
            ]['support'])
        )
github mayeut / pybase64 / setup.py View on Github external
def build_extension(self, ext):
        sources = ext.sources
        if sources is None or not isinstance(sources, (list, tuple)):
            raise DistutilsSetupError(
                "in 'ext_modules' option (extension '%s'), "
                "'sources' must be present and must be "
                "a list of source filenames" % ext.name)
        sources = list(sources)

        simd_sources = dict()
        simd_sources[CCompilerCapabilities.SIMD_SSSE3] = ext.sources_ssse3
        simd_sources[CCompilerCapabilities.SIMD_SSE41] = ext.sources_sse41
        simd_sources[CCompilerCapabilities.SIMD_SSE42] = ext.sources_sse42
        simd_sources[CCompilerCapabilities.SIMD_AVX] = ext.sources_avx
        simd_sources[CCompilerCapabilities.SIMD_AVX2] = ext.sources_avx2
        simd_sources[CCompilerCapabilities.SIMD_NEON32] = \
            ext.sources_neon32
        simd_sources[CCompilerCapabilities.SIMD_NEON64] = \
            ext.sources_neon64

        ext_path = self.get_ext_fullpath(ext.name)
        depends = sources + ext.depends

        try:
            simd_sources_values = simd_sources.itervalues()
        except AttributeError:
            simd_sources_values = simd_sources.values()
        for add_sources in simd_sources_values:
            depends = depends + add_sources

        if not (self.force or newer_group(depends, ext_path, 'newer')):
            log.debug("skipping '%s' extension (up-to-date)", ext.name)