Add basic support for folding SIMD intrinsics (#81547)
authorTanner Gooding <tagoo@outlook.com>
Sat, 11 Feb 2023 23:30:05 +0000 (15:30 -0800)
committerGitHub <noreply@github.com>
Sat, 11 Feb 2023 23:30:05 +0000 (15:30 -0800)
commit845820193905607901041760d3b1249d5c36fb56
tree80e1a6b1e0acb6243c2c06eb470e3178ec42cb99
parent2d411c4dfc1d71b2387ac64089014ec811ad7af0
Add basic support for folding SIMD intrinsics (#81547)

* Create a helper ValueNumStore::EvalHWIntrinsicFunBinary

* Adding some basic support for folding SIMD unary and binary operations

* Refactor SIMD constant folding logic to not depend on C++ 14

* Apply formatting patch

* Handle identity folding for simd add/sub

* Add some basic tests covering SIMD constant folding

* Move genTreeOps to its own header so simd.h can use it in Evaluate*Simd

* Applying formatting patch
src/coreclr/jit/CMakeLists.txt
src/coreclr/jit/gentree.h
src/coreclr/jit/gentreeopsdef.h [new file with mode: 0644]
src/coreclr/jit/simd.h
src/coreclr/jit/valuenum.cpp
src/coreclr/jit/valuenum.h
src/tests/JIT/HardwareIntrinsics/General/ConstantFolding/SimdConstantFoldings.cs [new file with mode: 0644]
src/tests/JIT/HardwareIntrinsics/General/ConstantFolding/SimdConstantFoldings.csproj [new file with mode: 0644]