aboutsummaryrefslogtreecommitdiff
path: root/contrib/gcc-changelog/git_commit.py
diff options
context:
space:
mode:
authorSpencer Abson <spencer.abson@arm.com>2025-07-30 08:20:58 +0000
committerSpencer Abson <spencer.abson@arm.com>2025-07-30 08:40:27 +0000
commit84f8f1ff6a9bfeb12e5fc0eac58efc375cc08485 (patch)
treee5dc35eb8350b023b3e5d077a88b25dd8e9f4f40 /contrib/gcc-changelog/git_commit.py
parent25593e555466f67348844c9cb572cf378ccef676 (diff)
downloadgcc-84f8f1ff6a9bfeb12e5fc0eac58efc375cc08485.zip
gcc-84f8f1ff6a9bfeb12e5fc0eac58efc375cc08485.tar.gz
gcc-84f8f1ff6a9bfeb12e5fc0eac58efc375cc08485.tar.bz2
aarch64: Relaxed SEL combiner patterns for unpacked SVE FP ternary arithmetic
Extend the ternary op/UNSPEC_SEL combiner patterns from SVE_FULL_F/ SVE_FULL_F_BF to SVE_F/SVE_F_BF, where the strictness value is SVE_RELAXED_GP. We can only reliably test the 'merging with the third input' (addend) and 'independent value' patterns at this stage as the canocalisation that reorders the multiplicands based on the second SEL input would be performed by the conditional expander. Another difficulty is that we can't test these fused multiply/SEL combines without using __builtin_fma and friends. The reason for this is as follows: We support COND_ADD, COND_SUB, and COND_MUL optabs, so match.pd will canonicalize patterns like ADD/SUB/MUL combined with a VEC_COND_EXPR into these conditional forms. Later, when widening_mul tries to fold these into conditional fused multiply operations, the transformation fails - simply because we haven’t implemented those conditional fused multiply optabs yet. Hence why this patch lacks tests for BFloat16... gcc/ChangeLog: * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_relaxed): Extend from SVE_FULL_F to SVE_F. (*cond_<optab><mode>_4_relaxed): Extend from SVE_FULL_F_B16B16 to SVE_F_B16B16. (*cond_<optab><mode>_any_relaxed): Likewise. gcc/testsuite/ChangeLog: * gcc.target/aarch64/sve/unpacked_cond_fmla_1.c: New test. * gcc.target/aarch64/sve/unpacked_cond_fmls_1.c: Likewise. * gcc.target/aarch64/sve/unpacked_cond_fnmla_1.c: Likewise. * gcc.target/aarch64/sve/unpacked_cond_fnmls_1.c: Likewise.
Diffstat (limited to 'contrib/gcc-changelog/git_commit.py')
0 files changed, 0 insertions, 0 deletions