Implement minimal SIMD::Int functionality
This change introduces the first Reactor SIMD type with minimal working
functionality.
SIMD types go in the SIMD namespace, to facilitate the writing of
parallel algorithms without explicitly using SIMD everywhere. In other
words one can write SPMD style code such as shaders.
The types are defined in SIMD.hpp, while the target-independent
operations are implemented in SIMD.cpp. LLVMReactor.cpp and
SubzeroReactor.cpp contain the target-dependent code. Note we don't add
new files for the latter, as some of the static utilities defined in
the old files will be reused, including adaptations of some of the
narrow-vector operations.
SIMD related unit tests do go in a new source file, as the legacy
functionality should remain independent and this also avoids some
confusion for tests that will use the SIMD namespace.
Bug: b/214583550
Change-Id: I2b17d38d6e8ccf6fa5568344a8d6163fea4ef44a
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/66189
Reviewed-by: Alexis Hétu <sugoi@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Android.bp b/src/Android.bp
index 26ed610..b647f2a 100644
--- a/src/Android.bp
+++ b/src/Android.bp
@@ -39,6 +39,7 @@
"Reactor/LLVMReactor.cpp",
"Reactor/Pragma.cpp",
"Reactor/Reactor.cpp",
+ "Reactor/SIMD.cpp",
],
cflags: [