Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

jit-diff --pmi --altjit doesn't generate SIMD code

Open
#142 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
30/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
csharp

Research direction

Start by reproducing the System.Private.Corelib PMI case with jit-diff --pmi --altjit and inspect the disassembly for Simd:Abs(struct):struct. Investigate the extra setup needed for SIMD methods and compare the generated output with the expected SIMD codegen. Done means the altjit PMI path produces SIMD instructions instead of a PlatformNotSupportedException stub.

Written by the indexing model from the issue text.

Description

Looking at pmi of System.Private.Corelib with an altjit, I see disassembly like:

; Assembly listing for method Simd:Abs(struct):struct
; Emitting BLENDED_CODE for X64 CPU with AVX
; optimized code
; rsp based frame
; partially interruptible
; Final local variable assignments
;
;* V00 arg0         [V00    ] (  0,  0   )  struct ( 8) zero-ref   
;# V01 OutArgs      [V01    ] (  1,  1   )  lclBlk ( 0) [rsp+0x00]  
;  V02 tmp1         [V02,T00] (  3,  0   )     ref  ->  rbx         class-hnd exact
;* V03 tmp2         [V03    ] (  0,  0   )    long  ->  zero-ref    V00._00(offs=0x00) P-INDEP
;
; Lcl frame size = 0
G_M1197_IG01:
       push     rbx
G_M1197_IG02:
       mov      rdi, 0xD1FFAB1E
       call     CORINFO_HELP_NEWSFAST
       mov      rbx, rax
       mov      rdi, rbx
       call     PlatformNotSupportedException:.ctor():this
       mov      rdi, rbx
       call     CORINFO_HELP_THROW
       int3     
; Total bytes of code 36, prolog size 1 for method Simd:Abs(struct):struct

We may need some extra setup to see codegen for SIMD methods here.

Dominant language
C#
Stars
161
Forks
69
Avg merge
8d 1h
Merged PRs (30d)
2

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from dotnet/jitutils

All issues in dotnet/jitutils

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.