This repository has been archived by the owner on Jan 23, 2023. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The hardware vector types: `Vector64<T>`, `Vector128<T>` and `Vector256<T>` are declared as having one or more fields of `ulong`. However, the JIT shouldn't be promoting these fields to local variables. It is almost never the right type, and the intrinsics in any case are not designed to cooperate with promoted fields (i.e. an index of a `Vector<ulong>` won't map to the promoted lclVar). Most importantly, it causes all copies of the vector to be done as 64-bit integer loads and stores. Finally, it will be important, as we support vector ABIs, to distinguish the handling of the fixed-size vectors (`Vector2`, `Vector3` and `Vector4`) which *are* considered to be normal structs of N floats, from the opaque types which will be passed in vector registers.
- Loading branch information