jit-diff --pmi --altjit doesn't generate SIMD code
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 30/100
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from dotnet/jitutils
-
Difficulty 2/5 1-2 days Newbie friendliness 62/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 45/100
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
Similar issues
-
copilot documentation
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Maintainers usually reply within 2 days
-
needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
spectreconsole/spectre.console#2221 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
godotengine/godot-docs#12428 ·
Maintainers usually reply within 1 day
-
.NET triage
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
microsoft/semantic-kernel#14526 ·
Maintainers usually reply within 4 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day