Struct & SIMD improvements (#22255)
authorCarol Eidt <carol.eidt@microsoft.com>
Thu, 28 Mar 2019 18:23:10 +0000 (11:23 -0700)
committerGitHub <noreply@github.com>
Thu, 28 Mar 2019 18:23:10 +0000 (11:23 -0700)
commit3d4a1d5cea0ae71eed1482990ce6e575049829d8
treefd3ea00fbd67bec2b6f6ec0966ef2bd34ea0c01d
parenta32f7e6b176fc18973581d48d919112d66e321aa
Struct & SIMD improvements (#22255)

* [WIP] Struct & SIMD improvements

- Enable CSE of struct values when handle is available (and add code to get the handle of HW SIMD types)
- Don't require block nodes for SIMD assignments
- Don't set `GTF_GLOB_REF` on `GT_OBJ` if it is local
- Set `lvRegStruct` on promoted SIMD fields
- Add tests for #19910 (fixed with this PR) and #3539 & #19438 (fixed with #21314)
- Additional cleanup

Fix #19910
18 files changed:
src/jit/codegencommon.cpp
src/jit/gentree.cpp
src/jit/gentree.h
src/jit/importer.cpp
src/jit/lclvars.cpp
src/jit/liveness.cpp
src/jit/lower.cpp
src/jit/morph.cpp
src/jit/optcse.cpp
src/jit/rationalize.cpp
src/jit/rationalize.h
src/jit/simd.cpp
tests/src/JIT/Regression/JitBlue/GitHub_19438/GitHub_19438.cs [new file with mode: 0644]
tests/src/JIT/Regression/JitBlue/GitHub_19438/GitHub_19438.csproj [new file with mode: 0644]
tests/src/JIT/Regression/JitBlue/GitHub_19910/GitHub_19910.cs [new file with mode: 0644]
tests/src/JIT/Regression/JitBlue/GitHub_19910/GitHub_19910.csproj [new file with mode: 0644]
tests/src/JIT/Regression/JitBlue/GitHub_3539/GitHub_3539.cs [new file with mode: 0644]
tests/src/JIT/Regression/JitBlue/GitHub_3539/GitHub_3539.csproj [new file with mode: 0644]