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

ARM64-SVE: Implement IF_SVE_DL_2A, IF_SVE_DZ_1A, IF_SVE_EA_1A #97068

Merged
merged 6 commits into from
Jan 17, 2024

Conversation

amanasifkhalid
Copy link
Member

Next batch of encodings from #94549.

JitDisasm output:

cntp    x0, p0.b, vlx2
cntp    x1, p1.b, vlx4
cntp    x2, p2.h, vlx2
cntp    x3, p3.h, vlx4
cntp    x4, p4.s, vlx2
cntp    x5, p5.s, vlx4
cntp    x6, p6.d, vlx2
cntp    x7, p7.d, vlx4
ptrue   p8.b
ptrue   p9.h
ptrue   p10.s
ptrue   p11.d
fmov    z0.h, #2.0000
fmov    z1.s, #1.0000
fmov    z2.d, #2.0000
fmov    z3.h, #-10.0000
fmov    z4.s, #-0.1250
fmov    z5.d, #31.0000

cstool output:

00822025  cntp  x0, pn0.b, vlx2
21862025  cntp  x1, pn1.b, vlx4
42826025  cntp  x2, pn2.h, vlx2
63866025  cntp  x3, pn3.h, vlx4
8482A025  cntp  x4, pn4.s, vlx2
A586A025  cntp  x5, pn5.s, vlx4
C682E025  cntp  x6, pn6.d, vlx2
E786E025  cntp  x7, pn7.d, vlx4
10782025  ptrue pn8.b
11786025  ptrue pn9.h
1278A025  ptrue pn0xA.s
1378E025  ptrue pn0xB.d
00C07925  fmov  z0.h, #2.00000000
01CEB925  fmov  z1.s, #1.00000000
02C0F925  fmov  z2.d, #2.00000000
83D47925  fmov  z3.h, #-10.00000000
04D8B925  fmov  z4.s, #-0.12500000
E5C7F925  fmov  z5.d, #31.00000000

Note that fmov is an alias for fdup, which is why we don't see the latter in the outputs. Aside from the differences in printing the predicate register numbers, the outputs look the same. cc @dotnet/arm64-contrib.

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 17, 2024
@ghost ghost assigned amanasifkhalid Jan 17, 2024
@ghost
Copy link

ghost commented Jan 17, 2024

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Issue Details

Next batch of encodings from #94549.

JitDisasm output:

cntp    x0, p0.b, vlx2
cntp    x1, p1.b, vlx4
cntp    x2, p2.h, vlx2
cntp    x3, p3.h, vlx4
cntp    x4, p4.s, vlx2
cntp    x5, p5.s, vlx4
cntp    x6, p6.d, vlx2
cntp    x7, p7.d, vlx4
ptrue   p8.b
ptrue   p9.h
ptrue   p10.s
ptrue   p11.d
fmov    z0.h, #2.0000
fmov    z1.s, #1.0000
fmov    z2.d, #2.0000
fmov    z3.h, #-10.0000
fmov    z4.s, #-0.1250
fmov    z5.d, #31.0000

cstool output:

00822025  cntp  x0, pn0.b, vlx2
21862025  cntp  x1, pn1.b, vlx4
42826025  cntp  x2, pn2.h, vlx2
63866025  cntp  x3, pn3.h, vlx4
8482A025  cntp  x4, pn4.s, vlx2
A586A025  cntp  x5, pn5.s, vlx4
C682E025  cntp  x6, pn6.d, vlx2
E786E025  cntp  x7, pn7.d, vlx4
10782025  ptrue pn8.b
11786025  ptrue pn9.h
1278A025  ptrue pn0xA.s
1378E025  ptrue pn0xB.d
00C07925  fmov  z0.h, #2.00000000
01CEB925  fmov  z1.s, #1.00000000
02C0F925  fmov  z2.d, #2.00000000
83D47925  fmov  z3.h, #-10.00000000
04D8B925  fmov  z4.s, #-0.12500000
E5C7F925  fmov  z5.d, #31.00000000

Note that fmov is an alias for fdup, which is why we don't see the latter in the outputs. Aside from the differences in printing the predicate register numbers, the outputs look the same. cc @dotnet/arm64-contrib.

Author: amanasifkhalid
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@amanasifkhalid amanasifkhalid added arm-sve Work related to arm64 SVE/SVE2 support area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI and removed area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Jan 17, 2024
@ghost
Copy link

ghost commented Jan 17, 2024

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Issue Details

Next batch of encodings from #94549.

JitDisasm output:

cntp    x0, p0.b, vlx2
cntp    x1, p1.b, vlx4
cntp    x2, p2.h, vlx2
cntp    x3, p3.h, vlx4
cntp    x4, p4.s, vlx2
cntp    x5, p5.s, vlx4
cntp    x6, p6.d, vlx2
cntp    x7, p7.d, vlx4
ptrue   p8.b
ptrue   p9.h
ptrue   p10.s
ptrue   p11.d
fmov    z0.h, #2.0000
fmov    z1.s, #1.0000
fmov    z2.d, #2.0000
fmov    z3.h, #-10.0000
fmov    z4.s, #-0.1250
fmov    z5.d, #31.0000

cstool output:

00822025  cntp  x0, pn0.b, vlx2
21862025  cntp  x1, pn1.b, vlx4
42826025  cntp  x2, pn2.h, vlx2
63866025  cntp  x3, pn3.h, vlx4
8482A025  cntp  x4, pn4.s, vlx2
A586A025  cntp  x5, pn5.s, vlx4
C682E025  cntp  x6, pn6.d, vlx2
E786E025  cntp  x7, pn7.d, vlx4
10782025  ptrue pn8.b
11786025  ptrue pn9.h
1278A025  ptrue pn0xA.s
1378E025  ptrue pn0xB.d
00C07925  fmov  z0.h, #2.00000000
01CEB925  fmov  z1.s, #1.00000000
02C0F925  fmov  z2.d, #2.00000000
83D47925  fmov  z3.h, #-10.00000000
04D8B925  fmov  z4.s, #-0.12500000
E5C7F925  fmov  z5.d, #31.00000000

Note that fmov is an alias for fdup, which is why we don't see the latter in the outputs. Aside from the differences in printing the predicate register numbers, the outputs look the same. cc @dotnet/arm64-contrib.

Author: amanasifkhalid
Assignees: amanasifkhalid
Labels:

area-CodeGen-coreclr, arch-arm64-sve

Milestone: -

Copy link
Contributor

@a74nh a74nh left a comment

Choose a reason for hiding this comment

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

Otherwise, LGTM

assert(isValidGeneralDatasize(id->idOpSize())); // X
case IF_SVE_DL_2A: // ........xx...... .....l.NNNNddddd -- SVE predicate count (predicate-as-counter)
assert(id->idOpSize() == EA_8BYTE);
// assert(isValidVectorLength()); // l
Copy link
Contributor

Choose a reason for hiding this comment

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

Commented assert?

Copy link
Member Author

Choose a reason for hiding this comment

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

Thanks for catching that; removed.

Copy link
Member

@kunalspathak kunalspathak left a comment

Choose a reason for hiding this comment

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

LGTM. Thanks!

@amanasifkhalid amanasifkhalid merged commit 05fe3e0 into dotnet:main Jan 17, 2024
45 of 111 checks passed
@amanasifkhalid amanasifkhalid deleted the if-sve-dl-2a branch January 17, 2024 15:50
@github-actions github-actions bot locked and limited conversation to collaborators Feb 17, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI arm-sve Work related to arm64 SVE/SVE2 support
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants