On Mon, Jun 29, 2026 at 02:26:53PM +0000, Karl Meakin via Sourceware Forge 
wrote:
> From: Karl Meakin <[email protected]>
> 
> Port the `vreinterpret` family of intrinsics to the pragma-based framework.
> 

...
> diff --git a/gcc/config/aarch64/aarch64-neon-builtins-base.def 
> b/gcc/config/aarch64/aarch64-neon-builtins-base.def
> index 78b0a39df07b..7257f59bbc56 100644
> --- a/gcc/config/aarch64/aarch64-neon-builtins-base.def
> +++ b/gcc/config/aarch64/aarch64-neon-builtins-base.def
> @@ -17,6 +17,12 @@
>     along with GCC; see the file COPYING3.  If not see
>     <http://www.gnu.org/licenses/>.  */
>  
> +// Reinterpret
> +#define REQUIRED_EXTENSIONS nonstreaming_only (AARCH64_FL_SIMD)

The instructions required to implement the vreinterpret intrinsics (i.e. no
instructions at all) are valid in streaming mode, so this gating is wrong.
Assuming you agree, can you send a follow-up patch to fix this?

Thanks,
Alice

> +DEF_NEON_FUNCTION (vreinterpret,  neon_reinterpret,  ("D0,D1"))
> +DEF_NEON_FUNCTION (vreinterpretq, neon_reinterpretq, ("Q0,Q1"))
> +#undef REQUIRED_EXTENSIONS
> +
>  // Lane manipulation
>  #define REQUIRED_EXTENSIONS nonstreaming_only (AARCH64_FL_SIMD)
>  DEF_NEON_FUNCTION (vcreate,     all_neon,  ("D0,su64"))

Reply via email to