This series fixes a number of problems in the rs6000 backend, building on top of https://gcc.gnu.org/ml/gcc-patches/2015-06/msg01396.html. Patch 5,6,7 really need the fixed rtx_cost function to be applied first, the others are independent of that change (if you're willing to allow a failing testcase).
Bootstrapped and regression tested powerpc64le-linux and powerpc64-linux. Alan Modra (7): [RS6000] Hide insns not needing to be public [RS6000] Tidy rotates [RS6000] rtx_costs for ROTATE/ASHIFT inside AND [RS6000] rldic in rotate and mask patterns [RS6000] Split mask64_2_operand rotates early [RS6000] Cost multi-insn constants [RS6000] Address cost gcc/config/rs6000/predicates.md | 23 +-- gcc/config/rs6000/rs6000.c | 151 +++++++++++------ gcc/config/rs6000/rs6000.md | 249 +++++++++++------------------ gcc/testsuite/gcc.target/powerpc/rotmask.c | 8 + 4 files changed, 208 insertions(+), 223 deletions(-) create mode 100644 gcc/testsuite/gcc.target/powerpc/rotmask.c -- Alan Modra Australia Development Lab, IBM