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

Enable AVX512 Additional 16 SIMD Registers #79544

Merged
merged 36 commits into from
Feb 8, 2023

Commits on Jan 17, 2023

  1. Change regMask_enum and regMaskTP to unsigned __int64_t on AMD64.

    This allows for more registers to be encoded in the register allocator.
    anthonycanino committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    9da5b6d View commit details
    Browse the repository at this point in the history
  2. Add upper 16 SIMD registers to allocator.

    Commit includes refactoring code to use `const instrDesc *` instead of `instruction`
    so information about when EVEX is needed (due to high SIMD registers) is
    available to the emitter.
    anthonycanino committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    6c6c884 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    bd6d2a5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    47ff9ca View commit details
    Browse the repository at this point in the history
  5. Limit high SIMD reg to compatible intrinsics and gentree nodes.

    Commit constrains certain hw intrinsics and gentree nodes to use
    lower SIMD registers even if upper SIMD registers are available due
    to limitations of EVEX encoding for certain instructions.
    
    For example, SSE `Reciprocal` lowers to `rcpps` which does not have an
    EVEX encoding form, hence, we cannot allow that hw intrincis node to use
    a high SIMD register.
    
    These intrinsics are marked with `HW_Flag_NoEvexSemantics`. Other such
    intructions related to masking (typically marked with
    `HW_Flag_ReturnsPerElementMask`) also have similar issues (though they
    can be replaced with the EVEX k registers and associated masking when
    implemented).
    
    In addition, the callee/calleer save registers have also been adjusted
    to properly handle the presence and absence of AVX512 upper simd
    registers at runtime.
    anthonycanino committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    9cabef6 View commit details
    Browse the repository at this point in the history
  6. Fix for X86 throughput.

    anthonycanino committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    9f711ba View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    f29c146 View commit details
    Browse the repository at this point in the history
  8. Formatting.

    anthonycanino committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    b95d296 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    6a4dcd1 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    d1f2fdb View commit details
    Browse the repository at this point in the history
  11. Update src/coreclr/jit/compiler.h

    Co-authored-by: Bruce Forstall <[email protected]>
    anthonycanino and BruceForstall committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    c7807c7 View commit details
    Browse the repository at this point in the history
  12. Update src/coreclr/jit/compiler.cpp

    Co-authored-by: Bruce Forstall <[email protected]>
    anthonycanino and BruceForstall committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    0b6cb55 View commit details
    Browse the repository at this point in the history
  13. Update src/coreclr/jit/gentree.cpp

    Co-authored-by: Bruce Forstall <[email protected]>
    anthonycanino and BruceForstall committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    a45163c View commit details
    Browse the repository at this point in the history
  14. Update src/coreclr/jit/hwintrinsic.h

    Co-authored-by: Bruce Forstall <[email protected]>
    anthonycanino and BruceForstall committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    730b4eb View commit details
    Browse the repository at this point in the history
  15. Update src/coreclr/jit/target.h

    Co-authored-by: Bruce Forstall <[email protected]>
    anthonycanino and BruceForstall committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    34d6199 View commit details
    Browse the repository at this point in the history
  16. Update src/coreclr/jit/emitxarch.cpp

    Co-authored-by: Bruce Forstall <[email protected]>
    anthonycanino and BruceForstall committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    395f5e4 View commit details
    Browse the repository at this point in the history
  17. Remove unneeded vars

    kunalspathak authored and anthonycanino committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    852e051 View commit details
    Browse the repository at this point in the history
  18. Address PR comments.

    anthonycanino committed Jan 17, 2023
    Configuration menu
    Copy the full SHA
    7238b49 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    2b56df7 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    fa1a550 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    564dc81 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    5ea489d View commit details
    Browse the repository at this point in the history

Commits on Jan 18, 2023

  1. Fix a merge/rebase bug.

    anthonycanino committed Jan 18, 2023
    Configuration menu
    Copy the full SHA
    e60aece View commit details
    Browse the repository at this point in the history

Commits on Jan 26, 2023

  1. Update src/coreclr/jit/compiler.h

    Co-authored-by: Bruce Forstall <[email protected]>
    anthonycanino and BruceForstall authored Jan 26, 2023
    Configuration menu
    Copy the full SHA
    b28a231 View commit details
    Browse the repository at this point in the history
  2. Update src/coreclr/jit/lsra.cpp

    Co-authored-by: Bruce Forstall <[email protected]>
    anthonycanino and BruceForstall authored Jan 26, 2023
    Configuration menu
    Copy the full SHA
    37af7c3 View commit details
    Browse the repository at this point in the history
  3. Update src/coreclr/jit/compiler.h

    Co-authored-by: Bruce Forstall <[email protected]>
    anthonycanino and BruceForstall authored Jan 26, 2023
    Configuration menu
    Copy the full SHA
    e9be8f8 View commit details
    Browse the repository at this point in the history
  4. Fix nits.

    anthonycanino committed Jan 26, 2023
    Configuration menu
    Copy the full SHA
    f680448 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7416501 View commit details
    Browse the repository at this point in the history

Commits on Jan 31, 2023

  1. Trying VM changes.

    anthonycanino committed Jan 31, 2023
    Configuration menu
    Copy the full SHA
    73f43b6 View commit details
    Browse the repository at this point in the history

Commits on Feb 2, 2023

  1. VM hack.

    anthonycanino committed Feb 2, 2023
    Configuration menu
    Copy the full SHA
    c6f1a90 View commit details
    Browse the repository at this point in the history

Commits on Feb 3, 2023

  1. VM hack.

    anthonycanino committed Feb 3, 2023
    Configuration menu
    Copy the full SHA
    91cf3db View commit details
    Browse the repository at this point in the history
  2. Revert "VM hack."

    This reverts commit 91cf3db.
    anthonycanino committed Feb 3, 2023
    Configuration menu
    Copy the full SHA
    228c0c5 View commit details
    Browse the repository at this point in the history

Commits on Feb 6, 2023

  1. Configuration menu
    Copy the full SHA
    5490617 View commit details
    Browse the repository at this point in the history

Commits on Feb 8, 2023

  1. Use inline accessor functions instead of macros

    Convert from macros to accessor functions for
    RBM_ALLFLOAT, RBM_FLT_CALLEE_TRASH, CNT_CALLEE_TRASH_FLOAT.
    Convert LSRA use of ACTUAL_REG_COUNT to AVAILABLE_REG_COUNT,
    and create an accessor for that value for AMD64 as well.
    BruceForstall committed Feb 8, 2023
    Configuration menu
    Copy the full SHA
    3c7acdb View commit details
    Browse the repository at this point in the history
  2. Merge pull request #6 from BruceForstall/anthonycanino_avx512-upper-r…

    …egs-with-reg-accessors
    
    Use inline accessor functions instead of macros
    anthonycanino authored Feb 8, 2023
    Configuration menu
    Copy the full SHA
    e42db99 View commit details
    Browse the repository at this point in the history
  3. Clearifying comments.

    anthonycanino committed Feb 8, 2023
    Configuration menu
    Copy the full SHA
    10b4703 View commit details
    Browse the repository at this point in the history