Use only lower floats for Vector3 dot and equality
authorCarol Eidt <carol.eidt@microsoft.com>
Thu, 1 Dec 2016 03:31:58 +0000 (19:31 -0800)
committerCarol Eidt <carol.eidt@microsoft.com>
Wed, 7 Dec 2016 16:43:06 +0000 (08:43 -0800)
commit062387a6772b4703f546f41e0ea67d60bcb24236
treef3f881c7bf51fbdf24fdb9a398fdfc6852ba0707
parentfd2732fa9b0e861a5d8c0751df3c7db526621f55
Use only lower floats for Vector3 dot and equality

For both dot product and comparisons that produce a boolean result, we need to use only the lower 3 floats. The bug was exposed by a case where the result of a call was being used in one of these operations without being stored to a local (which would have caused the upper bits to be cleared).

Fix dotnet/coreclr#8220

Commit migrated from https://github.com/dotnet/coreclr/commit/0403e4d81f67a9abe61bf8637deff85b971381b7
src/coreclr/src/jit/gentree.h
src/coreclr/src/jit/simd.cpp
src/coreclr/src/jit/simd.h
src/coreclr/src/jit/simdcodegenxarch.cpp
src/coreclr/tests/src/JIT/Regression/JitBlue/GitHub_8220/GitHub_8220.cs [new file with mode: 0644]
src/coreclr/tests/src/JIT/Regression/JitBlue/GitHub_8220/GitHub_8220.csproj [new file with mode: 0644]