https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85368
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 45072
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45072&action=edit
gcc9-pr85368.patch
So, does this fix it? On branch_cost targets, we should IMHO always expect no
ifs because we pass -mbranch-cost=2 which makes it effectively a
non-logical_op_short_circuit target at compile time, whatever it has as
default.
Tested so far only on x86_64-linux as an example of !logical_op_short_circuit
&& branch_cost target. Another target to try is s390x-linux as
logical_op_short_circuit && branch_cost target, then perhaps powerpc*-linux as
logical_op_short_circuit && !branch_cost target and perhaps even some
!logical_op_short_circuit && !branch_cost like ia64-*-linux* or others.