This is a respin of a AArch64 patch that adds support for builtin arithmetic 
overflow operations. This update separates the patch into multiple pieces and 
addresses comments made by Richard Earnshaw here:

https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00249.html

Original patch and motivation for patch here:

https://gcc.gnu.org/ml/gcc-patches/2017-05/msg01512.html

This patch contains new patterns for addv<mode> overflow patterns.

Bootstrapped and tested on aarch64-linux-gnu. Okay for trunk?


2017-10-26  Michael Collison  <michael.colli...@arm.com>
            Richard Henderson <r...@redhat.com>

        * config/aarch64/aarch64.md: (addv<GPI>4, uaddv<GPI>4): New.
        (addti3): Create simpler code if low part is already known to be 0.
        (addvti4, uaddvti4): New.
        (*add<GPI>3_compareC_cconly_imm): New.
        (*add<GPI>3_compareC_cconly): New.
        (*add<GPI>3_compareC_imm): New.
        (*add<GPI>3_compareC): Rename from add<GPI>3_compare1; do not
        handle constants within this pattern..
        (*add<GPI>3_compareV_cconly_imm): New.
        (*add<GPI>3_compareV_cconly): New.
        (*add<GPI>3_compareV_imm): New.
        (add<GPI>3_compareV): New.
        (add<GPI>3_carryinC, add<GPI>3_carryinV): New.
        (*add<GPI>3_carryinC_zero, *add<GPI>3_carryinV_zero): New.
        (*add<GPI>3_carryinC, *add<GPI>3_carryinV): New.
        ((*add<GPI>3_compareC_cconly_imm): Replace 'ne' operator
        with 'comparison' operator.
        (*add<GPI>3_compareV_cconly_imm): Ditto.
        (*add<GPI>3_compareV_cconly): Ditto.
        (*add<GPI>3_compareV_imm): Ditto.
        (add<GPI>3_compareV): Ditto.
        (add<mode>3_carryinC): Ditto.
        (*add<mode>3_carryinC_zero): Ditto.
        (*add<mode>3_carryinC): Ditto.
        (add<mode>3_carryinV): Ditto.
        (*add<mode>3_carryinV_zero): Ditto.
        (*add<mode>3_carryinV): Ditto.

Attachment: gnutools-6308-addv-v2.patch.patch
Description: gnutools-6308-addv-v2.patch.patch

Reply via email to