aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2021-02-01 21:21:38 +0000
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>2021-02-02 12:14:39 +0000
commit5cebc818213c1281d54f3d1d1676674f995241fa (patch)
tree8bcdc80b341eaae51eda6a7e7cf9220990671203 /gcc
parent7bcd5e09fb3f80c4598c24633532b25b490e2f2c (diff)
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/aarch64/aarch64-simd-builtins.def18
1 files changed, 9 insertions, 9 deletions
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_<PERMUTE:perm_insn><mode>. */
- 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<op><mode>. */
VAR1 (BINOPU, crypto_aese, 0, NONE, v16qi)