Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-08-28 09:11:40

0001 /***************************************************************************
0002  * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and         *
0003  * Martin Renou                                                             *
0004  * Copyright (c) QuantStack                                                 *
0005  * Copyright (c) Serge Guelton                                              *
0006  *                                                                          *
0007  * Distributed under the terms of the BSD 3-Clause License.                 *
0008  *                                                                          *
0009  * The full license is in the file LICENSE, distributed with this software. *
0010  ****************************************************************************/
0011 
0012 #ifndef XSIMD_NEON64_REGISTER_HPP
0013 #define XSIMD_NEON64_REGISTER_HPP
0014 
0015 #include "xsimd_neon_register.hpp"
0016 
0017 namespace xsimd
0018 {
0019     /**
0020      * @ingroup architectures
0021      *
0022      * NEON instructions for arm64
0023      */
0024     struct neon64 : neon
0025     {
0026         static constexpr bool supported() noexcept { return XSIMD_WITH_NEON64; }
0027         static constexpr bool available() noexcept { return true; }
0028         static constexpr bool requires_alignment() noexcept { return true; }
0029         static constexpr std::size_t alignment() noexcept { return 16; }
0030         static constexpr char const* name() noexcept { return "arm64+neon"; }
0031     };
0032 
0033 #if XSIMD_WITH_NEON64
0034 
0035     namespace types
0036     {
0037         XSIMD_DECLARE_SIMD_REGISTER_ALIAS(neon64, neon);
0038         XSIMD_DECLARE_SIMD_REGISTER(double, neon64, float64x2_t);
0039 
0040         template <class T>
0041         struct get_bool_simd_register<T, neon64>
0042             : detail::neon_bool_simd_register<T, neon64>
0043         {
0044         };
0045     }
0046 
0047 #endif
0048 
0049 }
0050 
0051 #endif