Skip to content

[AArch64][Clang] Internal Neon types missing in Clang #113297

Closed
@rj-jesus

Description

@rj-jesus

The AAPCS64, Appendix 11 (Neon) states that:

The AARCH64 architecture supports a number of short-vector operations. To facilitate accessing these types from C and C++ a number of extended types need to be added to the language.

Following the conventions used for adding types to C99 a number of additional types (internal types) are defined unconditionally.

These internal types are copied below:

Internal type (8) Internal type (16) Internal type (32) Internal type (64)
__Int8x8_t __Int16x4_t __Int32x2_t
__Uint8x8_t __Uint16x4_t __Uint32x2_t
__Float16x4_t __Float32x2_t
__Poly8x8_t __Poly16x4_t
__Bfloat16x4_t
__Int8x16_t __Int16x8_t __Int32x4_t __Int64x2_t
__Uint8x16_t __Uint16x8_t __Uint32x4_t __Uint64x2_t
__Float16x8_t __Float32x4_t __Float64x2_t
__Poly8x16_t __Poly16x8_t __Poly64x2_t
__Bfloat16x8_t

Appendix 12 defines similar SVE types, such as __SVUint8_t and __SVBool_t.

While Clang defines the SVE types, it does not define the Neon types.
GCC defines both. https://godbolt.org/z/jjG9vbj85

Should Clang be defining the internal Neon types?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions