Hi Mark,
On 2/28/2026 9:39 PM, Mark Brown wrote:
On Fri, Feb 27, 2026 at 11:19:33AM +0800, Yifan Wu wrote:
The FEAT_SVE2p1 is indicated by ID_AA64ZFR0_EL1.SVEver. However,
the BFADD requires the FEAT_SVE_B16B16, which is indicated by
ID_AA64ZFR0_EL1.B16B16. This could cause the test to incorrectly
fail on a CPU that supports FEAT_SVE2.1 but not FEAT_SVE_B16B16.
LD1Q Gather load quadwords which is decoded from SVE encodings and
implied by FEAT_SVE2p1.
Ah, good spot - I think my search for instructions to use got confused
by them mention of SVE2 in the description of BFADD. Since this is a
fix it should really be patch 1.
- /* BFADD Z0.H, Z0.H, Z0.H */
- asm volatile(".inst 0x65000000" : : : "z0");
+ /* LD1Q Z0.Q, P0/Z, Z0.D, X0 */
That should be:
LD1Q {Z0.Q}, P0/Z, [Z0.D, X0]
(the existing asm has some issues which we ought to get round fixing but
may as well keep the new stuff good.)
+ asm volatile(".inst 0xC400A000" : : : "z0");
Verified the decode with objdump. With the above change to the comment:
Reviewed-by: Mark Brown <[email protected]>
Thanks a lot for the review and the tag! I'll update the comment and re-
order the patches in v2.
Regards,
Yifan Wu