There was a new effective-target predicate (thanks, Richard S), but the droplet that broke the camel's back or something, wasn't added to its target-list. Committed after brief testing (checking that tests fail before, checking that tests pass after patch).
Other observations: - LOGICAL_OP_NON_SHORT_CIRCUIT should move into defaults.h instead of the identical copies in fold-const.c and tree-ssa-ifcombine.c (both default to BRANCH_COST >= 2). - There seem to be more targets to add to that list (requires grep and test) and more tests that should use the predicate (requires at least brief analysis). gcc/testsuite: PR testsuite/60173 * lib/target-supports.exp (check_effective_target_logical_op_short_circuit): Add cris-*-* and crisv32-*-* to list. Index: gcc/testsuite/lib/target-supports.exp =================================================================== --- gcc/testsuite/lib/target-supports.exp (revision 208041) +++ gcc/testsuite/lib/target-supports.exp (working copy) @@ -5696,6 +5696,7 @@ proc check_effective_target_logical_op_s if { [istarget mips*-*-*] || [istarget arc*-*-*] || [istarget avr*-*-*] + || [istarget crisv32-*-*] || [istarget cris-*-*] || [check_effective_target_arm_cortex_m] } { return 1 } brgds, H-P