banach-space wrote:

Thanks for taking a look and for the feedback!

> I have some questions that might be naive, but I'm not following how much of 
> the simplification you intend to be permanent and how much is just not yet 
> implemented with regard to `SVETypeFlags`. Can you explain this in a bit more 
> detail if it isn't needed.

These are very good and very welcome questions - thanks for raising them.

To clarify upfront: the simplification is not intended to be permanent. We will 
be using SVETypeFlags in the near future. At the moment, I’m intentionally 
focusing on the most basic builtins/intrinsics that don’t meaningfully depend 
on these flags, mainly to better understand and validate the CIR flow first.

The set of available flags is defined in 
[arm_sve_sme_incl.td](https://github.com/llvm/llvm-project/blob/188507e54218c91832714fc50b24bd2fc2fd9383/clang/include/clang/Basic/arm_sve_sme_incl.td?plain=1#L206-L244)
 and the mapping between builtins/intrinsics and those flags lives in  
[arm_sve.td](https://github.com/llvm/llvm-project/blob/188507e54218c91832714fc50b24bd2fc2fd9383/clang/include/clang/Basic/arm_sve.td).
 For example, for 
[`svdup`](https://developer.arm.com/architectures/instruction-sets/intrinsics/#q=svdup):
 
https://github.com/llvm/llvm-project/blob/188507e54218c91832714fc50b24bd2fc2fd9383/clang/include/clang/Basic/arm_sve.td?plain=1#L515-L527

As you can see, the only attached “type flag” there is 
[VerifyRuntimeMode](https://github.com/llvm/llvm-project/blob/188507e54218c91832714fc50b24bd2fc2fd9383/clang/include/clang/Basic/arm_sve_sme_incl.td?plain=1#L237).
 This flag is not used in codegen - it is handled in Sema and relates to 
streaming vs non-streaming mode, which is relevant in the context of 
[SME](https://developer.arm.com/community/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-scalable-matrix-extension-introduction).

In contrast, there are builtins where `SVETypeFlags` are essential for 
communicating semantic differences, notably gathers and scatters: 
https://github.com/llvm/llvm-project/blob/188507e54218c91832714fc50b24bd2fc2fd9383/clang/lib/CodeGen/TargetBuiltins/ARM.cpp?plain=1#L4606-L4607

I’ll address the remaining points inline.

https://github.com/llvm/llvm-project/pull/174433
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to