Skip to content

Conversation

@saitama951
Copy link
Contributor

This is the inital patch to support simd on s390x. on s390x we have 16 floating point registers and 32 vector registers out of which f0 - f15 overlap with v0 - v15.

redefine the mirrored_mask logic for unequal masks in the register allocator.

This is the inital patch to support simd on s390x.
on s390x we have 16 floating point registers and 32
vector registers out of which f0 - f15 overlap with
v0 - v15.

redefine the mirrored_mask logic for unequal masks in the
register allocator.
@saitama951
Copy link
Contributor Author

@dotnet-policy-service dotnet-policy-service bot added the community-contribution Indicates that the PR has been added by a community member label Jun 14, 2025
@saitama951 saitama951 changed the title [mono][1/2] Support SIMD on s390x [mono][1/2] Add SIMD Support for s390x Jun 14, 2025
saitama951 added a commit to saitama951/runtime that referenced this pull request Jun 18, 2025
This is a followup patch to dotnet#116669 to add vector support to s390x
saitama951 added a commit to saitama951/runtime that referenced this pull request Jun 18, 2025
This is a followup patch to dotnet#116669 to add vector support to s390x
saitama951 added a commit to saitama951/runtime that referenced this pull request Jun 18, 2025
This is a followup patch to dotnet#116669 to add vector support to s390x
saitama951 added a commit to saitama951/runtime that referenced this pull request Jun 18, 2025
This is a followup patch to dotnet#116669 to add vector support to s390x
saitama951 added a commit to saitama951/runtime that referenced this pull request Jun 18, 2025
This is a followup patch to dotnet#116669 to add vector support to s390x
@jkotas jkotas added the arch-s390x Related to s390x architecture (unsupported) label Jun 18, 2025
* generalize assert statements for the unequal masks
* remove duplicate line
@uweigand
Copy link
Contributor

uweigand commented Jul 8, 2025

This LGTM now from a s390x architecture perspective.

We're using tabs for indentation.
@akoeplinger
Copy link
Member

/ba-g wasm failures are not related to s390x

@akoeplinger akoeplinger merged commit 7a14c76 into dotnet:main Jul 18, 2025
62 of 70 checks passed
akoeplinger pushed a commit that referenced this pull request Jul 21, 2025
* [mono][2/2] Add SIMD Support for s390x

This is a followup patch to #116669 to add vector support to s390x

* Address Review Comments

* remove SIY_1 (duplicacy)
* remove locgrnle and locghinle use locghiho instead
* reformat whole patch
* remove vflc use vfpso instead
* move common op's to a common ifdef in mini-ops
* remove NEW_INS , it's used no-where
* rewrite the whole logic for Vector conditional ops for floats
* update ANDN with vnc instruction
* add couple of comments
* remove some pseudo op in simd-intrinsics
* add aligned loads and stores

* Adress Review Comments - 2

* reformat patch - rename opcode from OP_ to OP_S390
* rewrite OP_XCOMPARE and OP_XEXTRACT into one opcode OP_S390_OPXCOMPARE_XEXTRACT
* introduce compare neumonics without setting the condition code
* rewrite OP_VEC_ABS to handle float and integer separately

* Address Review Comments - 3

* remove hard-coded s390_vr16 to allocate a temp_reg instead
* omit move incase ins->sreg and ins->dreg
@github-actions github-actions bot locked and limited conversation to collaborators Aug 18, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

arch-s390x Related to s390x architecture (unsupported) area-Codegen-JIT-mono community-contribution Indicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants