How to use the pybase64.distutils.ccompilercapabilities.CCompilerCapabilities.SIMD_SSE41 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 / setup.py View on Github external
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)
            return
        else:
            log.info("building '%s' extension", ext.name)

        capabilities = CCompilerCapabilities(self.compiler)
        pybase64_write_config(capabilities)

        objects = list()

        for simd_opt in (CCompilerCapabilities.SIMD_SSSE3,
                         CCompilerCapabilities.SIMD_SSE41,
                         CCompilerCapabilities.SIMD_SSE42,
                         CCompilerCapabilities.SIMD_AVX,
                         CCompilerCapabilities.SIMD_AVX2,
                         CCompilerCapabilities.SIMD_NEON32,
                         CCompilerCapabilities.SIMD_NEON64):
            if len(simd_sources[simd_opt]) == 0:
                continue
            if capabilities.has(simd_opt):
                objects = objects + self.compiler.compile(
                    simd_sources[simd_opt],
                    output_dir=self.build_temp,
                    include_dirs=ext.include_dirs,
                    debug=self.debug,
                    extra_postargs=capabilities.flags(simd_opt),
                    depends=ext.depends)
            else:
github mayeut / pybase64 / pybase64 / distutils / ccompilercapabilities.py View on Github external
]['support'])
        )
        self.__capabilities[CCompilerCapabilities.SIMD_SSE41] = \
            self.__has_simd_support(
                compiler,
                ['', '-msse4.1'],
                ['-D__SSE4_1__'],
                'smmintrin.h',
                '__m128i t = _mm_loadu_si128((const __m128i*)argv[0]);'
                't = _mm_mpsadbw_epu8(t, t, 1);'
                'return _mm_cvtsi128_si32(t);'
        )
        log.info(
            "SSE41: %s" %
            str(self.__capabilities[
                CCompilerCapabilities.SIMD_SSE41
            ]['support'])
        )
        self.__capabilities[CCompilerCapabilities.SIMD_SSE42] = \
            self.__has_simd_support(
                compiler,
                ['', '-msse4.2'],
                ['-D__SSE4_2__'],
                'nmmintrin.h',
                '__m128i t = _mm_loadu_si128((const __m128i*)argv[0]);'
                'return _mm_cmpistra(t, t, 0);'
        )
        log.info(
            "SSE42: %s" %
            str(self.__capabilities[
                CCompilerCapabilities.SIMD_SSE42
            ]['support'])
github mayeut / pybase64 / setup.py View on Github external
def pybase64_write_config(capabilities):
    log.info("creating 'base64/lib/config.h'")
    with open(path.join(here, 'base64/lib/config.h'), mode='wt') as f:
        f.write('\n#define HAVE_SSSE3                 %i' %
                capabilities.has(CCompilerCapabilities.SIMD_SSSE3))
        f.write('\n#define HAVE_SSE41                 %i' %
                capabilities.has(CCompilerCapabilities.SIMD_SSE41))
        f.write('\n#define HAVE_SSE42                 %i' %
                capabilities.has(CCompilerCapabilities.SIMD_SSE42))
        f.write('\n#define HAVE_AVX                   %i' %
                capabilities.has(CCompilerCapabilities.SIMD_AVX))
        f.write('\n#define HAVE_AVX2                  %i' %
                capabilities.has(CCompilerCapabilities.SIMD_AVX2))
        f.write('\n#define HAVE_NEON32                %i' % False)
        f.write('\n#define HAVE_NEON64                %i' % False)
        f.write('\n#define HAVE_FAST_UNALIGNED_ACCESS %i' % True)
        f.write('\n')