Hi all,

This patch relaxes the flags for most integer builtins to NONE as they don't 
read/write memory
and don't care about the FPCR/FPSR or exceptions so we should be more 
aggressive with them.

This leads to fallout in a testcase where the result of an intrinsic was unused 
and it is now
DCE'd. The testcase is adjusted.

Bootstrapped and tested on aarch64-none-linux-gnu.
Pushing to trunk.
Thanks,
Kyrill

gcc/ChangeLog:

        * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
        vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
        vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
        ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
        udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
        ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
        ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
        ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
        NONE builtin flags.

gcc/testsuite/ChangeLog:

        * gcc.target/aarch64/arg-type-diagnostics-1.c: Return result from foo.

Attachment: flag-int.patch
Description: flag-int.patch

Reply via email to