Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[mono][interp] Add vectorization for Vector4 #87822

Merged
merged 8 commits into from
Jul 5, 2023

Commits on Jul 5, 2023

  1. [mono][interp] Reuse vectorization for Vector4

    Which is pretty much Vector<float>
    BrzVlad committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    a856872 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b0d9bd1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8c361f1 View commit details
    Browse the repository at this point in the history
  4. [mono][interp] Intrinsify Vector<T> ctor and Vector4 ctor

    The constructors receive each element as an argument. This is the same as `Vector128.Create` so we reuse that code. This ends up generating a MINT_SIMD_V128_I*_CREATE opcode which receives each element value as an argument.
    BrzVlad committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    c77067d View commit details
    Browse the repository at this point in the history
  5. [mono][interp] Track r4 var value during interpreter optimizations

    Since it is common to instantiate Vector4 with constant values, add also support for tracking R4 values during optimizations. If all elements are constant, we generate instead a single MINT_SIMD_V128_LDC, which has the entire vector value embedded in the instruction stream.
    BrzVlad committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    03f7a26 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    c524d45 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    2beb17f View commit details
    Browse the repository at this point in the history
  8. [mono][interp] Return early if vector_klass is not simd type

    It is not marked as simd type if the generic param is not valid (ex not primitive type). Future checks are not expecting this scenario and can potentially crash.
    BrzVlad committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    941827d View commit details
    Browse the repository at this point in the history