Modcc: Add vectorization support for conditionals (#930)
* Add support for conditionals with the SIMD printer by using `where_expresssions` to mask assignments to range variables that happen inside if/else blocks. Assignments to non-range variables are executed non-masked when correctness is ensured. Fixes #836
Showing
- arbor/include/arbor/simd/simd.hpp 30 additions, 0 deletionsarbor/include/arbor/simd/simd.hpp
- modcc/functioninliner.cpp 0 additions, 1 deletionmodcc/functioninliner.cpp
- modcc/functioninliner.hpp 0 additions, 1 deletionmodcc/functioninliner.hpp
- modcc/printer/cexpr_emit.cpp 100 additions, 0 deletionsmodcc/printer/cexpr_emit.cpp
- modcc/printer/cexpr_emit.hpp 35 additions, 0 deletionsmodcc/printer/cexpr_emit.hpp
- modcc/printer/cprinter.cpp 51 additions, 25 deletionsmodcc/printer/cprinter.cpp
- modcc/printer/cprinter.hpp 8 additions, 3 deletionsmodcc/printer/cprinter.hpp
- test/unit-modcc/mod_files/test7.mod 55 additions, 0 deletionstest/unit-modcc/mod_files/test7.mod
- test/unit-modcc/test_printers.cpp 58 additions, 0 deletionstest/unit-modcc/test_printers.cpp
- test/unit/test_simd.cpp 17 additions, 1 deletiontest/unit/test_simd.cpp
Please register or sign in to comment