| Server IP : 93.86.61.54 / Your IP : 216.73.216.60 Web Server : Apache/2.4.62 (Ubuntu) System : Linux rasin.ddns.net 6.8.0-124-generic #124~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 21:05:19 UTC x86_64 User : www-data ( 33) PHP Version : 8.4.22 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/include/xsimd/config/ |
Upload File : |
/***************************************************************************
* Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
* Martin Renou *
* Copyright (c) QuantStack *
* *
* Distributed under the terms of the BSD 3-Clause License. *
* *
* The full license is in the file LICENSE, distributed with this software. *
****************************************************************************/
#ifndef XSIMD_ALIGN_HPP
#define XSIMD_ALIGN_HPP
#include "xsimd_instruction_set.hpp"
/************************************************
* Platform checks for aligned malloc functions *
************************************************/
#if ((defined __QNXNTO__) || (defined _GNU_SOURCE) || ((defined _XOPEN_SOURCE) && (_XOPEN_SOURCE >= 600))) \
&& (defined _POSIX_ADVISORY_INFO) && (_POSIX_ADVISORY_INFO > 0)
#define XSIMD_HAS_POSIX_MEMALIGN 1
#else
#define XSIMD_HAS_POSIX_MEMALIGN 0
#endif
#if defined(XSIMD_X86_INSTR_SET_AVAILABLE)
#define XSIMD_HAS_MM_MALLOC 1
#else
#define XSIMD_HAS_MM_MALLOC 0
#endif
/********************
* Stack allocation *
********************/
#ifndef XSIMD_ALLOCA
#if defined(__linux__)
#define XSIMD_ALLOCA alloca
#elif defined(_MSC_VER)
#define XSIMD_ALLOCA _alloca
#endif
#endif
/*********************
* Default alignment *
*********************/
#if XSIMD_X86_INSTR_SET >= XSIMD_X86_AVX512_VERSION
#define XSIMD_DEFAULT_ALIGNMENT 64
#elif XSIMD_X86_INSTR_SET >= XSIMD_X86_AVX_VERSION
#define XSIMD_DEFAULT_ALIGNMENT 32
#elif XSIMD_X86_INSTR_SET >= XSIMD_X86_SSE2_VERSION
#define XSIMD_DEFAULT_ALIGNMENT 16
#elif XSIMD_ARM_INSTR_SET >= XSIMD_ARM8_64_NEON_VERSION
#define XSIMD_DEFAULT_ALIGNMENT 32
#elif XSIMD_ARM_INSTR_SET >= XSIMD_ARM7_NEON_VERSION
#define XSIMD_DEFAULT_ALIGNMENT 16
#else
// Set the default to the requirements of posix_memalign
#define XSIMD_DEFAULT_ALIGNMENT sizeof(void*)
#endif
#endif