aboutsummaryrefslogtreecommitdiff
path: root/gcc/diagnostic-format-json.cc
diff options
context:
space:
mode:
authorJennifer Schmitz <jschmitz@nvidia.com>2024-07-22 23:24:45 -0700
committerKyrylo Tkachov <ktkachov@nvidia.com>2024-07-24 17:07:25 +0530
commit4c5eb66e701bc9f3bf1298269f52559b10d63a09 (patch)
treeef7487fdd91041b38df1819fabaf201368e3f542 /gcc/diagnostic-format-json.cc
parent4efe43a61334e231bcd3cf9150cd844dbdf9ed20 (diff)
downloadgcc-4c5eb66e701bc9f3bf1298269f52559b10d63a09.zip
gcc-4c5eb66e701bc9f3bf1298269f52559b10d63a09.tar.gz
gcc-4c5eb66e701bc9f3bf1298269f52559b10d63a09.tar.bz2
aarch64: Fuse CMP+CSEL and CMP+CSET for -mcpu=neoverse-v2
According to the Neoverse V2 Software Optimization Guide (section 4.14), the instruction pairs CMP+CSEL and CMP+CSET can be fused, which had not been implemented so far. This patch implements and tests the two fusion pairs. The patch was bootstrapped and regtested on aarch64-linux-gnu, no regression. There was also no non-noise impact on SPEC CPU2017 benchmark. OK for mainline? Signed-off-by: Jennifer Schmitz <jschmitz@nvidia.com> gcc/ * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement fusion logic. * config/aarch64/aarch64-fusion-pairs.def (cmp+csel): New entry. (cmp+cset): Likewise. * config/aarch64/tuning_models/neoversev2.h: Enable logic in field fusible_ops. gcc/testsuite/ * gcc.target/aarch64/cmp_csel_fuse.c: New test. * gcc.target/aarch64/cmp_cset_fuse.c: Likewise.
Diffstat (limited to 'gcc/diagnostic-format-json.cc')
0 files changed, 0 insertions, 0 deletions