This patch upstreams support for ld / st variants of BFloat intrinsics
in from __bf16 to AArch64. This includes IR intrinsics. Unittests are
provided as needed.
This patch is part of a series implementing the Bfloat16 extension of
the
Armv8.6-a architecture, as detailed here:
The bfloat type, and its properties are specified in the Arm
Architecture
Reference Manual:
The following people contributed to this patch:
- Luke Geeson
- Momchil Velikov
- Luke Cheeseman
What effect is this change of strategy having on the alignment computation, for the already-supported instances of this builtin?
It looks to me as if __builtin_neon_vld1_v with (say) a uint8_t * pointer argument will now compute Alignment=1 (the natural alignment of the pointee type), whereas it would previously have computed Alignment=8 (the size of the whole vector being loaded or stored).
Is that intentional? Or accidental? Or have I completely misunderstood what's going on?
(Whichever of the three, some discussion in the commit message would be a good idea, explaining why this change does or does not make a difference, as appropriate.)