[clang] [CLANG][AArch64]Add Neon vectors for mfloat8_t (PR #99865)

Momchil Velikov via cfe-commits cfe-commits at lists.llvm.org
Wed Oct 16 09:40:18 PDT 2024


================
@@ -97,6 +97,17 @@
   SVE_TYPE(Name, Id, SingletonId)
 #endif
 
+#ifndef AARCH64_VECTOR_TYPE
----------------
momchil-velikov wrote:

This naming seems odd to me. So, far we've got a sort of taxonomy, or "isA" relationship
that looks like:

    SVE_VECTOR_TYPE_BFLOAT -> SVE_VECTOR_TYPE_DETAILS -> SVE_VECTOR_TYPE -> SVE_TYPE
                              ^  ^                                           ^  ^
                              |  |                                           |  |
    SVE_VECTOR_TYPE_FLOAT ----+  |                                           |  |
    SVE_VECTOR_TYPE_INT ---------+                                           |  |
    SVE_PREDICATE_TYPE_ALL  ---------------------------> SVE_PREDICATE_TYPE -+  |  
                                                         SVE_OPAQUE_TYPE -------+

And now appears

    AARCH64_VECTOR_TYPE -> SVE_TYPE

where the relation implied by the naming goes in the opposite direction.

It would look more sensible to have

    SVE_VECTOR_TYPE_BFLOAT -> SVE_VECTOR_TYPE_DETAILS -> SVE_VECTOR_TYPE -> SVE_TYPE --> AARCH64_VECTOR_TYPE --> AARCH64_TYPE
                              ^  ^  ^                                        ^  ^        ^
                              |  |  |                                        |  |        |
    SVE_VECTOR_TYPE_FLOAT ----+  |  |                                        |  |        |
    SVE_VECTOR_TYPE_INT ---------+  |                                        |  |        |
    SVE_VECTOR_TYPE_MFLOAT ---------+                                        |  |        |
    SVE_PREDICATE_TYPE_ALL  ---------------------------> SVE_PREDICATE_TYPE -+  |        |
                                                         SVE_OPAQUE_TYPE -------+        |
    SIMD_VECTOR_TYPE_MFLOAT  --------------------------> SIMD_VECTOR_TYPE ---------------+

(potentially collapsing "empty" classes, but still having them there conceptually)

and them having the implementation fit into a logical structure as the one above.
Admittedly, that'd cause some churn in the source.

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


More information about the cfe-commits mailing list