From: Kyrylo Tkachov Date: Mon, 1 Feb 2021 21:21:38 +0000 (+0000) Subject: aarch64: Relax some builtins to AUTO_FP X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5cebc818213c1281d54f3d1d1676674f995241fa;p=gcc.git aarch64: Relax some builtins to AUTO_FP This patch relaxes the flags for some builtins to AUTO_FP. These builtins do permutes and similar, so they shouldn't get the FP flags when operating on floating-point modes as they don't care about FPCR/FPSR and exceptions. gcc/ChangeLog: * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2, uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags. --- diff --git a/gcc/config/aarch64/aarch64-simd-builtins.def b/gcc/config/aarch64/aarch64-simd-builtins.def index 224cff33e35..45573c2f537 100644 --- a/gcc/config/aarch64/aarch64-simd-builtins.def +++ b/gcc/config/aarch64/aarch64-simd-builtins.def @@ -43,8 +43,8 @@ help describe the attributes (for example, pure) for the intrinsic function. */ - BUILTIN_VDC (COMBINE, combine, 0, ALL) - VAR1 (COMBINEP, combine, 0, ALL, di) + BUILTIN_VDC (COMBINE, combine, 0, AUTO_FP) + VAR1 (COMBINEP, combine, 0, NONE, di) BUILTIN_VB (BINOP, pmul, 0, NONE) BUILTIN_VHSDF_HSDF (BINOP, fmulx, 0, FP) BUILTIN_VHSDF_DF (UNOP, sqrt, 2, FP) @@ -556,12 +556,12 @@ /* Implemented by aarch64_. */ - BUILTIN_VALL (BINOP, zip1, 0, ALL) - BUILTIN_VALL (BINOP, zip2, 0, ALL) - BUILTIN_VALL (BINOP, uzp1, 0, ALL) - BUILTIN_VALL (BINOP, uzp2, 0, ALL) - BUILTIN_VALL (BINOP, trn1, 0, ALL) - BUILTIN_VALL (BINOP, trn2, 0, ALL) + BUILTIN_VALL (BINOP, zip1, 0, AUTO_FP) + BUILTIN_VALL (BINOP, zip2, 0, AUTO_FP) + BUILTIN_VALL (BINOP, uzp1, 0, AUTO_FP) + BUILTIN_VALL (BINOP, uzp2, 0, AUTO_FP) + BUILTIN_VALL (BINOP, trn1, 0, AUTO_FP) + BUILTIN_VALL (BINOP, trn2, 0, AUTO_FP) BUILTIN_GPF_F16 (UNOP, frecpe, 0, FP) BUILTIN_GPF_F16 (UNOP, frecpx, 0, FP) @@ -619,7 +619,7 @@ BUILTIN_VDQQH (BSL_P, simd_bsl, 0, NONE) VAR2 (BSL_P, simd_bsl,0, NONE, di, v2di) BUILTIN_VSDQ_I_DI (BSL_U, simd_bsl, 0, NONE) - BUILTIN_VALLDIF (BSL_S, simd_bsl, 0, ALL) + BUILTIN_VALLDIF (BSL_S, simd_bsl, 0, AUTO_FP) /* Implemented by aarch64_crypto_aes. */ VAR1 (BINOPU, crypto_aese, 0, NONE, v16qi)