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

i#5365 AArch64: Change scatter/gather instructions to per-element size #6574

Merged

Conversation

jackgallagher-arm
Copy link
Collaborator

Make the AArch64 IR consistent with x86 which already uses the per-element
transfer size for the scatter/gather memory operand size.

This changes the AArch64 codec for the scatter/gather and predicated contiguous
load/store instructions to use the per-element access size for the memory operand
instead of the maximum total transfer size that it used previously, and updates
the tests accordingly.

Issues: #5365, #5036, #6561

This makes the IR consistent with x86 which already uses the per-element
transfer size for the scatter/gather memory operand size.

Issues: #5365, #5036, #6561
Change the scalar+vector scatter/gather instructions to use a
per-element size for their memory operand and update the codec tests
accordingly.
Change the vector+immediate scatter/gather instructions to use a
per-element size for their memory operand and update the codec tests
accordingly.
Change the scalar+scalar predicated contiguous load/store instructions
to use a per-element size for their memory operand and update the codec
tests accordingly.
The codec changes made in the previous patch mean we can combine some
of the scalar+scalar encode/decode functions and simplify the codec.
Change the scalar+scalar replicating predicated contiguous load/store
instructions to use a per-element size for their memory operand and
update the codec tests accordingly.
Change the scalar+immediate predicated contiguous load/store instructions
to use a per-element size for their memory operand and update the codec
tests accordingly.
Update the documentation comments to reflect the IR changes.
Now that the IR uses the per-element size drx_expand_scatter_gather()
will need to calculate the full memory transfer size.
Now that the SVE scatter/gather and predicated contiguous load/store
instructions use per-element sizes we don't need this workaround
any more.
@AssadHashmi
Copy link
Contributor

x86-32 regression related to #6417.

Copy link
Contributor

@derekbruening derekbruening left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did not check the codec details, just glanced over the other changes: LGTM

@jackgallagher-arm jackgallagher-arm merged commit e982665 into master Jan 24, 2024
14 of 15 checks passed
@jackgallagher-arm jackgallagher-arm deleted the i5365-aarch64-scatter-gather-per-element-size branch January 24, 2024 10:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants