aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorRoger Sayle <roger@nextmovesoftware.com>2023-06-28 11:07:47 +0100
committerRoger Sayle <roger@nextmovesoftware.com>2023-06-28 11:07:47 +0100
commitc027592d39b2968005aa28bc84a946bab2668db8 (patch)
tree69ee68bcad10dd71df272389524f2f3e2dedd412 /gcc/fortran
parent45c53768b6fa3d737ae818e31d3c50da62e0ad2b (diff)
downloadgcc-c027592d39b2968005aa28bc84a946bab2668db8.zip
gcc-c027592d39b2968005aa28bc84a946bab2668db8.tar.gz
gcc-c027592d39b2968005aa28bc84a946bab2668db8.tar.bz2
i386: Fix FAIL of gcc.target/i386/pr78794.c on ia32.
This patch fixes that FAIL of gcc.target/i386/pr78794.c on ia32, which is caused by minor STV rtx_cost differences with -march=silvermont. It turns out that generic tuning results in pandn, but the lack of accurate parameterization for COMPARE in compute_convert_gain combined with small differences in scalar<->SSE costs on silvermont results in this DImode chain not being converted. The solution is to provide more accurate costs/gains for converting (DImode and SImode) comparisons. I'd been holding off of doing this as I'd thought it would be possible to turn pandn;ptestz into ptestc (for an even bigger scalar-to-vector win) but I've recently realized that these optimizations (as I've implemented them) occur in the wrong order (stv2 occurs after combine), so it isn't easy for STV to convert CCZmode into CCCmode. Doh! Perhaps something can be done in peephole2. 2023-06-28 Roger Sayle <roger@nextmovesoftware.com> gcc/ChangeLog PR target/78794 * config/i386/i386-features.cc (compute_convert_gain): Provide more accurate gains for conversion of scalar comparisons to PTEST.
Diffstat (limited to 'gcc/fortran')
0 files changed, 0 insertions, 0 deletions