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
