2019-07-01 Segher Boessenkool <seg...@kernel.crashing.org> * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name. (doloop_end): Use that name. Simplify.
--- gcc/config/rs6000/rs6000.md | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index d665316..381f140 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -12566,22 +12566,14 @@ (define_expand "doloop_end" (use (match_operand 1))] ; label "" { - if (TARGET_64BIT) - { - if (GET_MODE (operands[0]) != DImode) - FAIL; - emit_jump_insn (gen_ctrdi (operands[0], operands[1])); - } - else - { - if (GET_MODE (operands[0]) != SImode) - FAIL; - emit_jump_insn (gen_ctrsi (operands[0], operands[1])); - } + if (GET_MODE (operands[0]) != Pmode) + FAIL; + + emit_jump_insn (gen_ctr (Pmode, operands[0], operands[1])); DONE; }) -(define_expand "ctr<mode>" +(define_expand "@ctr<mode>" [(parallel [(set (pc) (if_then_else (ne (match_operand:P 0 "register_operand") (const_int 1)) -- 1.8.3.1