diff options
Diffstat (limited to 'src/core/common')
-rw-r--r-- | src/core/common/Macros.h (renamed from src/core/common/StdTypes.h) | 28 | ||||
-rw-r--r-- | src/core/common/Registrars.h | 169 | ||||
-rw-r--r-- | src/core/common/Validate.h | 41 |
3 files changed, 172 insertions, 66 deletions
diff --git a/src/core/common/StdTypes.h b/src/core/common/Macros.h index 3fba6187a3..bc0ea29911 100644 --- a/src/core/common/StdTypes.h +++ b/src/core/common/Macros.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Arm Limited. + * Copyright (c) 2021 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -21,23 +21,13 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#ifndef SRC_CORE_COMMON_STDTYPES_H -#define SRC_CORE_COMMON_STDTYPES_H +#ifndef ARM_COMPUTE_COMMON_MACROS_H +#define ARM_COMPUTE_COMMON_MACROS_H -#include <cstdint> +#define ARM_COMPUTE_DISALLOW_COPY_ALLOW_MOVE(TypeName) \ + TypeName(const TypeName &) = delete; \ + TypeName &operator=(const TypeName &) = delete; \ + TypeName(TypeName &&) = default; \ + TypeName &operator=(TypeName &&) = default -namespace arm_compute -{ -using u8 = uint8_t; -using s8 = int8_t; -using u16 = uint16_t; -using s16 = int16_t; -using u32 = uint32_t; -using s32 = int32_t; -using f32 = float; -#if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) -using f16 = __fp16; -#endif /* defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) */ -} // namespace arm_compute - -#endif /* SRC_CORE_COMMON_STDTYPES_H */ +#endif /* ARM_COMPUTE_COMMON_MACROS_H */ diff --git a/src/core/common/Registrars.h b/src/core/common/Registrars.h index dcea3e8d38..cd849c3666 100644 --- a/src/core/common/Registrars.h +++ b/src/core/common/Registrars.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 Arm Limited. + * Copyright (c) 2020-2024 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -21,37 +21,194 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#ifndef SRC_CORE_COMMON_REGISTRARS_H -#define SRC_CORE_COMMON_REGISTRARS_H +#ifndef ACL_SRC_CORE_COMMON_REGISTRARS_H +#define ACL_SRC_CORE_COMMON_REGISTRARS_H -#if defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) && defined(ENABLE_FP16_KERNELS) +#if defined(ENABLE_FP16_KERNELS) + +#if defined(ARM_COMPUTE_ENABLE_SVE) +#define REGISTER_FP16_SVE(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SVE) */ +#define REGISTER_FP16_SVE(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SVE) */ + +#if defined(ARM_COMPUTE_ENABLE_SVE2) +#define REGISTER_FP16_SVE2(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SVE2) */ +#define REGISTER_FP16_SVE2(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SVE2) */ + +#if defined(ARM_COMPUTE_ENABLE_SME2) +#define REGISTER_FP16_SME2(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SME2) */ +#define REGISTER_FP16_SME2(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SME2) */ + +#if defined(ARM_COMPUTE_ENABLE_NEON) #define REGISTER_FP16_NEON(func_name) &(func_name) -#else /* defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) && defined(ENABLE_FP16_KERNELS) */ +#else /* !defined(ARM_COMPUTE_ENABLE_NEON) */ #define REGISTER_FP16_NEON(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_NEON) */ + +#else /* !defined(ENABLE_FP16_KERNELS) */ +#define REGISTER_FP16_NEON(func_name) nullptr +#define REGISTER_FP16_SVE(func_name) nullptr +#define REGISTER_FP16_SVE2(func_name) nullptr +#define REGISTER_FP16_SME2(func_name) nullptr #endif /* defined(__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) && defined(ENABLE_FP16_KERNELS) */ #if defined(ENABLE_FP32_KERNELS) + +#if defined(ARM_COMPUTE_ENABLE_SVE) +#define REGISTER_FP32_SVE(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SVE) */ +#define REGISTER_FP32_SVE(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SVE) */ + +#if defined(ARM_COMPUTE_ENABLE_SVE2) +#define REGISTER_FP32_SVE2(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SVE2) */ +#define REGISTER_FP32_SVE2(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SVE2) */ + +#if defined(ARM_COMPUTE_ENABLE_SME2) +#define REGISTER_FP32_SME2(func_name) &(func_name) +#define REGISTER_QASYMM8_SME2(func_name) &(func_name) +#define REGISTER_QASYMM8_SIGNED_SME2(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SME2) */ +#define REGISTER_FP32_SME2(func_name) nullptr +#define REGISTER_QASYMM8_SME2(func_name) nullptr +#define REGISTER_QASYMM8_SIGNED_SME2(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SME2) */ + +#if defined(ARM_COMPUTE_ENABLE_NEON) #define REGISTER_FP32_NEON(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_NEON) */ +#define REGISTER_FP32_NEON(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_NEON) */ + #else /* defined(ENABLE_FP32_KERNELS) */ #define REGISTER_FP32_NEON(func_name) nullptr +#define REGISTER_FP32_SVE(func_name) nullptr +#define REGISTER_FP32_SVE2(func_name) nullptr +#define REGISTER_FP32_SME2(func_name) nullptr #endif /* defined(ENABLE_FP32_KERNELS) */ #if defined(ENABLE_QASYMM8_SIGNED_KERNELS) + #define REGISTER_QASYMM8_SIGNED_NEON(func_name) &(func_name) + +#if defined(ARM_COMPUTE_ENABLE_SVE) +#define REGISTER_QASYMM8_SIGNED_SVE(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SVE) */ +#define REGISTER_QASYMM8_SIGNED_SVE(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SVE) */ + +#if defined(ARM_COMPUTE_ENABLE_SVE2) +#define REGISTER_QASYMM8_SIGNED_SVE2(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SVE2) */ +#define REGISTER_QASYMM8_SIGNED_SVE2(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SVE2) */ + +#if defined(ARM_COMPUTE_ENABLE_SME2) +#define REGISTER_QASYMM8_SIGNED_SME2(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SME2) */ +#define REGISTER_QASYMM8_SIGNED_SME2(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SME2) */ + #else /* defined(ENABLE_QASYMM8_SIGNED_KERNELS) */ #define REGISTER_QASYMM8_SIGNED_NEON(func_name) nullptr +#define REGISTER_QASYMM8_SIGNED_SVE(func_name) nullptr +#define REGISTER_QASYMM8_SIGNED_SVE2(func_name) nullptr +#define REGISTER_QASYMM8_SIGNED_SME2(func_name) nullptr #endif /* defined(ENABLE_QASYMM8_SIGNED_KERNELS) */ #if defined(ENABLE_QASYMM8_KERNELS) #define REGISTER_QASYMM8_NEON(func_name) &(func_name) + +#if defined(ARM_COMPUTE_ENABLE_SVE) +#define REGISTER_QASYMM8_SVE(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SVE) */ +#define REGISTER_QASYMM8_SVE(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SVE) */ + +#if defined(ARM_COMPUTE_ENABLE_SVE2) +#define REGISTER_QASYMM8_SVE2(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SVE2) */ +#define REGISTER_QASYMM8_SVE2(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SVE2) */ + +#if defined(ARM_COMPUTE_ENABLE_SME2) +#define REGISTER_QASYMM8_SME2(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SME2) */ +#define REGISTER_QASYMM8_SME2(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SME2) */ + #else /* defined(ENABLE_QASYMM8_KERNELS) */ #define REGISTER_QASYMM8_NEON(func_name) nullptr +#define REGISTER_QASYMM8_SVE(func_name) nullptr +#define REGISTER_QASYMM8_SVE2(func_name) nullptr +#define REGISTER_QASYMM8_SME2(func_name) nullptr #endif /* defined(ENABLE_QASYMM8_KERNELS) */ #if defined(ENABLE_QSYMM16_KERNELS) + #define REGISTER_QSYMM16_NEON(func_name) &(func_name) + +#if defined(ARM_COMPUTE_ENABLE_SVE) +#define REGISTER_QSYMM16_SVE(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SVE) */ +#define REGISTER_QSYMM16_SVE(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SVE) */ + +#if defined(ARM_COMPUTE_ENABLE_SVE2) +#define REGISTER_QSYMM16_SVE2(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SVE2) */ +#define REGISTER_QSYMM16_SVE2(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SVE2) */ + #else /* defined(ENABLE_QSYMM16_KERNELS) */ #define REGISTER_QSYMM16_NEON(func_name) nullptr +#define REGISTER_QSYMM16_SVE(func_name) nullptr +#define REGISTER_QSYMM16_SVE2(func_name) nullptr #endif /* defined(ENABLE_QSYMM16_KERNELS) */ -#endif /* SRC_CORE_COMMON_REGISTRARS_H */ +#if defined(ENABLE_QASYMM8_KERNELS) || defined(ENABLE_QASYMM8_SIGNED_KERNELS) +#define REGISTER_Q8_NEON(func_name) &(func_name) +#else /* !defined(ENABLE_QASYMM8_KERNELS) && !defined(ENABLE_QASYMM8_SIGNED_KERNELS) */ +#define REGISTER_Q8_NEON(func_name) nullptr +#endif /* defined(ENABLE_QASYMM8_KERNELS) || defined(ENABLE_QASYMM8_SIGNED_KERNELS) */ + +#if defined(ENABLE_INTEGER_KERNELS) + +#if defined(ARM_COMPUTE_ENABLE_SVE) +#define REGISTER_INTEGER_SVE(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SVE) */ +#define REGISTER_INTEGER_SVE(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SVE) */ + +#if defined(ARM_COMPUTE_ENABLE_SVE2) +#define REGISTER_INTEGER_SVE2(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_SVE2) */ +#define REGISTER_INTEGER_SVE2(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_SVE2) */ + +#if defined(ARM_COMPUTE_ENABLE_NEON) +#define REGISTER_INTEGER_NEON(func_name) &(func_name) +#else /* !defined(ARM_COMPUTE_ENABLE_NEON) */ +#define REGISTER_INTEGER_NEON(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_NEON) */ + +#else /* defined(ENABLE_INTEGER_KERNELS) */ +#define REGISTER_INTEGER_NEON(func_name) nullptr +#define REGISTER_INTEGER_SVE(func_name) nullptr +#define REGISTER_INTEGER_SVE2(func_name) nullptr +#endif /* defined(ENABLE_INTEGER_KERNELS) */ + +#if defined(ARM_COMPUTE_ENABLE_BF16) +#define REGISTER_BF16_NEON(func_name) &(func_name) +#else /* !(defined(ARM_COMPUTE_ENABLE_BF16))*/ +#define REGISTER_BF16_NEON(func_name) nullptr +#endif /* defined(ARM_COMPUTE_ENABLE_BF16)*/ + +#endif // ACL_SRC_CORE_COMMON_REGISTRARS_H diff --git a/src/core/common/Validate.h b/src/core/common/Validate.h deleted file mode 100644 index fa24bf5fa7..0000000000 --- a/src/core/common/Validate.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2020 Arm Limited. - * - * SPDX-License-Identifier: MIT - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -#ifndef SRC_CORE_COMMON_VALIDATE_H -#define SRC_CORE_COMMON_VALIDATE_H - -#if defined(ARM_COMPUTE_ASSERTS_ENABLED) - -#include <cassert> - -#define ARM_COMPUTE_ASSERT(cond) assert(cond) -#define ARM_COMPUTE_ASSERT_NOT_NULLPTR(ptr) assert((ptr) != nullptr) - -#else /* defined(ARM_COMPUTE_ASSERTS_ENABLED) */ - -#define ARM_COMPUTE_ASSERT(cond) -#define ARM_COMPUTE_ASSERT_NOT_NULLPTR(ptr) - -#endif /* defined(ARM_COMPUTE_ASSERTS_ENABLED) */ -#endif /* SRC_CORE_COMMON_VALIDATE_H */ |