Refactor simd API and add SVE backend (#1044)
* Add new API for the SIMD library that is compatible with the ARM 'sizeless' SVE vectors. Language restrictions prevent the use of the operator overload interface used up to this point for SIMD. * Add `indirect_expressions` and `indirect_indexed_expressions` for describing memory reads/writes. `where_expressions` control masked access to simd vectors. * Implement the SVE SIMD back-end in accordance with the alternate SIMD API. * Retrieve vector width information from compiled mechanisms. * Use alternate SIMD API in modcc-generated mechanisms. * Add assertion in generated mechanism code that checks runtime vector width compatibility. Fixess #1021.
Showing
- arbor/backends/multicore/mechanism.cpp 2 additions, 5 deletionsarbor/backends/multicore/mechanism.cpp
- arbor/backends/multicore/mechanism.hpp 4 additions, 0 deletionsarbor/backends/multicore/mechanism.hpp
- arbor/backends/multicore/shared_state.cpp 25 additions, 13 deletionsarbor/backends/multicore/shared_state.cpp
- arbor/include/arbor/simd/avx.hpp 4 additions, 4 deletionsarbor/include/arbor/simd/avx.hpp
- arbor/include/arbor/simd/avx512.hpp 3 additions, 3 deletionsarbor/include/arbor/simd/avx512.hpp
- arbor/include/arbor/simd/implbase.hpp 4 additions, 4 deletionsarbor/include/arbor/simd/implbase.hpp
- arbor/include/arbor/simd/native.hpp 12 additions, 7 deletionsarbor/include/arbor/simd/native.hpp
- arbor/include/arbor/simd/neon.hpp 2 additions, 2 deletionsarbor/include/arbor/simd/neon.hpp
- arbor/include/arbor/simd/simd.hpp 504 additions, 189 deletionsarbor/include/arbor/simd/simd.hpp
- arbor/include/arbor/simd/sve.hpp 904 additions, 0 deletionsarbor/include/arbor/simd/sve.hpp
- mechanisms/default/kdrmt.mod 4 additions, 4 deletionsmechanisms/default/kdrmt.mod
- modcc/modcc.cpp 2 additions, 1 deletionmodcc/modcc.cpp
- modcc/printer/cexpr_emit.cpp 168 additions, 10 deletionsmodcc/printer/cexpr_emit.cpp
- modcc/printer/cexpr_emit.hpp 22 additions, 4 deletionsmodcc/printer/cexpr_emit.hpp
- modcc/printer/cprinter.cpp 125 additions, 66 deletionsmodcc/printer/cprinter.cpp
- modcc/printer/cprinter.hpp 8 additions, 4 deletionsmodcc/printer/cprinter.hpp
- modcc/printer/simd.hpp 26 additions, 4 deletionsmodcc/printer/simd.hpp
- test/unit-modcc/test_printers.cpp 17 additions, 17 deletionstest/unit-modcc/test_printers.cpp
- test/unit/test_partition_by_constraint.cpp 3 additions, 1 deletiontest/unit/test_partition_by_constraint.cpp
- test/unit/test_simd.cpp 543 additions, 17 deletionstest/unit/test_simd.cpp
Please register or sign in to comment