// Copyright (c) Facebook, Inc. and its affiliates. // All rights reserved. // // Copyright 2019 Google LLC // // This source code is licensed under the BSD-style license found in the // LICENSE file in the root directory of this source tree. #pragma once #include #include #if XNN_ARCH_PNACL || XNN_ARCH_WASMSIMD #define TEST_REQUIRES_PSIMD #else #define TEST_REQUIRES_PSIMD \ do { \ if (!cpuinfo_initialize() || !(cpuinfo_has_arm_neon() || cpuinfo_has_x86_sse2())) { \ GTEST_SKIP(); \ } \ } while (0) #endif #define TEST_REQUIRES_X86_SSE \ do { \ if (!cpuinfo_initialize() || !cpuinfo_has_x86_sse()) { \ GTEST_SKIP(); \ } \ } while (0) #define TEST_REQUIRES_X86_SSE2 \ do { \ if (!cpuinfo_initialize() || !cpuinfo_has_x86_sse2()) { \ GTEST_SKIP(); \ } \ } while (0) #define TEST_REQUIRES_X86_SSE41 \ do { \ if (!cpuinfo_initialize() || !cpuinfo_has_x86_sse4_1()) { \ GTEST_SKIP(); \ } \ } while (0) #define TEST_REQUIRES_X86_AVX \ do { \ if (!cpuinfo_initialize() || !cpuinfo_has_x86_avx()) { \ GTEST_SKIP(); \ } \ } while (0) #define TEST_REQUIRES_X86_FMA3 \ do { \ if (!cpuinfo_initialize() || !cpuinfo_has_x86_fma3()) { \ GTEST_SKIP(); \ } \ } while (0) #define TEST_REQUIRES_X86_AVX2 \ do { \ if (!cpuinfo_initialize() || !cpuinfo_has_x86_avx2()) { \ GTEST_SKIP(); \ } \ } while (0) #define TEST_REQUIRES_X86_AVX512F \ do { \ if (!cpuinfo_initialize() || !cpuinfo_has_x86_avx512f()) { \ GTEST_SKIP(); \ } \ } while (0) #define TEST_REQUIRES_ARM_NEON \ do { \ if (!cpuinfo_initialize() || !cpuinfo_has_arm_neon()) { \ GTEST_SKIP(); \ } \ } while (0) #define TEST_REQUIRES_ARM_NEON_FMA \ do { \ if (!cpuinfo_initialize() || !cpuinfo_has_arm_neon_fma()) { \ GTEST_SKIP(); \ } \ } while (0) #define TEST_REQUIRES_ARM_NEON_FP16_ARITH \ do { \ if (!cpuinfo_initialize() || !cpuinfo_has_arm_neon_fp16_arith()) { \ GTEST_SKIP(); \ } \ } while (0)