aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <quic_apinski@quicinc.com>2024-11-21 11:10:56 -0800
committerAndrew Pinski <quic_apinski@quicinc.com>2024-11-29 12:09:10 -0800
commit4c46ad730acf8c119a99210c1485b456cdb06f19 (patch)
tree10f047254ef75816f2b89b7eff21d65b89ff739b /gcc
parent5034cecefcb1b3dce460f166d63fdbc825820946 (diff)
downloadgcc-4c46ad730acf8c119a99210c1485b456cdb06f19.zip
gcc-4c46ad730acf8c119a99210c1485b456cdb06f19.tar.gz
gcc-4c46ad730acf8c119a99210c1485b456cdb06f19.tar.bz2
aarch64: Add attributes to the data intrinsics.
All of the data intrinsics don't read/write memory nor they are fp related. So adding the attributes will improve the code generation slightly. Built and tested for aarch64-linux-gnu gcc/ChangeLog: * config/aarch64/aarch64-builtins.cc (aarch64_init_data_intrinsics): Call aarch64_get_attributes and update calls to aarch64_general_add_builtin. Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/aarch64/aarch64-builtins.cc14
1 files changed, 8 insertions, 6 deletions
diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc
index 9705f2d..bc1719a 100644
--- a/gcc/config/aarch64/aarch64-builtins.cc
+++ b/gcc/config/aarch64/aarch64-builtins.cc
@@ -2162,6 +2162,8 @@ aarch64_init_ls64_builtins (void)
static void
aarch64_init_data_intrinsics (void)
{
+ /* These intrinsics are not fp nor they read/write memory. */
+ tree attrs = aarch64_get_attributes (FLAG_NONE, SImode);
tree uint32_fntype = build_function_type_list (uint32_type_node,
uint32_type_node, NULL_TREE);
tree ulong_fntype = build_function_type_list (long_unsigned_type_node,
@@ -2171,22 +2173,22 @@ aarch64_init_data_intrinsics (void)
uint64_type_node, NULL_TREE);
aarch64_builtin_decls[AARCH64_REV16]
= aarch64_general_add_builtin ("__builtin_aarch64_rev16", uint32_fntype,
- AARCH64_REV16);
+ AARCH64_REV16, attrs);
aarch64_builtin_decls[AARCH64_REV16L]
= aarch64_general_add_builtin ("__builtin_aarch64_rev16l", ulong_fntype,
- AARCH64_REV16L);
+ AARCH64_REV16L, attrs);
aarch64_builtin_decls[AARCH64_REV16LL]
= aarch64_general_add_builtin ("__builtin_aarch64_rev16ll", uint64_fntype,
- AARCH64_REV16LL);
+ AARCH64_REV16LL, attrs);
aarch64_builtin_decls[AARCH64_RBIT]
= aarch64_general_add_builtin ("__builtin_aarch64_rbit", uint32_fntype,
- AARCH64_RBIT);
+ AARCH64_RBIT, attrs);
aarch64_builtin_decls[AARCH64_RBITL]
= aarch64_general_add_builtin ("__builtin_aarch64_rbitl", ulong_fntype,
- AARCH64_RBITL);
+ AARCH64_RBITL, attrs);
aarch64_builtin_decls[AARCH64_RBITLL]
= aarch64_general_add_builtin ("__builtin_aarch64_rbitll", uint64_fntype,
- AARCH64_RBITLL);
+ AARCH64_RBITLL, attrs);
}
/* Implement #pragma GCC aarch64 "arm_acle.h". */