Hi Richard, as requested, this is the whole series (without the s390-specific parts) in total. 7/7 is "new" as it was posted separately as "8/7" before but actually does not change too much compared to the rest.
Supposing that the adjusted 4/7 is OK after recent discussions, if I'm not mistaken, 5/7, 6/7 (very minor) and 7/7 still need review. Robin Dapp (7): ifcvt: Check if cmovs are needed. ifcvt: Allow constants for noce_convert_multiple. ifcvt: Improve costs handling for noce_convert_multiple. ifcvt/optabs: Allow using a CC comparison for emit_conditional_move. ifcvt: Try re-using CC for conditional moves. testsuite/s390: Add tests for noce_convert_multiple. ifcvt: Run second pass if it is possible to omit a temporary. gcc/expmed.c | 8 +- gcc/expr.c | 10 +- gcc/ifcvt.c | 366 +++++++++++++++--- gcc/optabs.c | 135 +++++-- gcc/optabs.h | 4 +- gcc/rtl.h | 11 +- gcc/testsuite/gcc.dg/ifcvt-4.c | 2 +- .../gcc.target/s390/ifcvt-two-insns-bool.c | 39 ++ .../gcc.target/s390/ifcvt-two-insns-int.c | 39 ++ .../gcc.target/s390/ifcvt-two-insns-long.c | 39 ++ 10 files changed, 551 insertions(+), 102 deletions(-) create mode 100644 gcc/testsuite/gcc.target/s390/ifcvt-two-insns-bool.c create mode 100644 gcc/testsuite/gcc.target/s390/ifcvt-two-insns-int.c create mode 100644 gcc/testsuite/gcc.target/s390/ifcvt-two-insns-long.c -- 2.31.1