[clang] [llvm] [Clang][LLVM][AArch64] Add intrinsic for MOVT SME2 instruction (PR #97602)

via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 13 10:32:29 PDT 2024


================
@@ -935,7 +935,7 @@ defm FAMIN_4Z4Z : sme2_fp_sve_destructive_vector_vg4_multi<"famin", 0b0010101>;
 } //[HasSME2, HasFAMINMAX]
 
 let Predicates = [HasSME2, HasSME_LUTv2] in {
----------------
SpencerAbson wrote:

Not to do with this work, but I think the predication around FEAT_SME_LUTv2 is incorrect.

According to latest spec, these instructions should both only require FEAT_SME_LUTv2

- [MOVT](https://developer.arm.com/documentation/ddi0602/2024-06/SME-Instructions/MOVT--vector-to-table---Move-vector-register-to-ZT0-?lang=en)
- [LUTi4](https://developer.arm.com/documentation/ddi0602/2024-06/SME-Instructions/LUTI4--four-registers--8-bit---Lookup-table-read-with-4-bit-indexes-and-8-bit-elements-?lang=en)

 which itself requires SME2:

> If FEAT_SME_LUTv2 is implemented, then FEAT_SME2 is implemented.

[(from arm developer latest)](https://developer.arm.com/documentation/109697/0100/Feature-descriptions/The-Armv9-5-architecture-extension?lang=en#md462-the-armv95-architecture-extension__FEAT_SME_LUTv2)

So we could remove SME2 from this predicate and list it as a dependency of FEAT_SME_LUTv2 in AArch64Features.td.



https://github.com/llvm/llvm-project/pull/97602


More information about the cfe-commits mailing list