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

Warnings on Ampere A1 #68

Open
bkmgit opened this issue Nov 4, 2022 · 4 comments
Open

Warnings on Ampere A1 #68

bkmgit opened this issue Nov 4, 2022 · 4 comments

Comments

@bkmgit
Copy link
Contributor

bkmgit commented Nov 4, 2022

When running tests on Ampere A1 with gcc, get the following warnings

Start test senario=make_nm_load_store
a.asm: Assembler messages:
a.asm:6985: Warning: unpredictable load of register pair -- `ldxp w0,w0,[x3]'
a.asm:6992: Warning: unpredictable load of register pair -- `ldxp w0,w0,[x3]'
...
a.asm:8951: Warning: unpredictable: identical transfer and status registers --`stlxr w7,w7,[x3]'
...
a.asm:9091: Warning: unpredictable: identical base and status registers --`stlxrb w7,w7,[x7]'
...
##########################################
# Test OK :-)
##########################################
 9428  9428 84852 x.lst
Finish test senario=make_nm_load_store
########################################################

and

########################################################
Start test senario=make_nm_sve
a.asm: Assembler messages:
a.asm:2002: Warning: instruction opens new dependency sequence without ending previous one -- `movprfx z0.b,p7/m,z7.b'
...
a.asm:2109: Warning: SVE `movprfx' compatible instruction expected -- `orv b7,p7,z7.b'
a.asm:6824: Warning: instruction opens new dependency sequence without ending previous one -- `movprfx z0,z7'
...
a.asm:6838: Warning: instruction opens new dependency sequence without ending previous one -- `movprfx z7,z31'
a.asm:6840: Warning: SVE `movprfx' compatible instruction expected -- `sqincb x15,w15'
##########################################
# Test OK :-)
##########################################
 47518  47518 427662 x.lst
Finish test senario=make_nm_sve
########################################################
@bkmgit
Copy link
Contributor Author

bkmgit commented Nov 4, 2022

warnings.txt

@kawakami-k
Copy link
Collaborator

Thank you for the comment. They are pseudo errors.
The regression test only checks whether Xbyak_aarch64 outputs the correct bit sequence correspond to the specified instruction; the test does not care whether the specified instruction is correct (make sense) or not (meaningless).
For exampole, LDR w0, ptr(x3) or LDR w0, ptr(x3, 8) should be used instead of 'LDXP w0, w0, ptr(x3)`.

So these warnings are not bugs of Xbyak_aarch64, but I think it's better to eliminate the warning in the test (eliminate the test pattern of LDXP w0, w0, ptr(x3)).

@bkmgit
Copy link
Contributor Author

bkmgit commented Nov 4, 2022

Ok, can make a pull request with this change. What about the SVE warnings?

@kawakami-k
Copy link
Collaborator

kawakami-k commented Nov 4, 2022

The warnings are output for LDXP, STX*, LDAXP and STLX*. These are pseudo errors as explained the previous comment.
That for MOVPRF is also preudo error. MOVPRF requires the following conditions. The test dosn't always meet these requirements, but it satisfies the purpose of checking the correctness of bit patterns generated by Xbyak_aarch64.

  • the register index of MOVPRF destination operand is as same as that of the destination operand of its immediately preceding instruction,
  • MOVPRF should be combined with the destructive instruction such as FDIV <Zdn>.<T>, <Pg>/M, <Zdn>.<T>, <Zm>.<T>.

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

No branches or pull requests

2 participants