https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101935

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by hongtao Liu <liuho...@gcc.gnu.org>:

https://gcc.gnu.org/g:5b01bfeb8703c264ad402b77741f06f41d7fceac

commit r12-3485-g5b01bfeb8703c264ad402b77741f06f41d7fceac
Author: H.J. Lu <hjl.to...@gmail.com>
Date:   Thu Aug 26 05:31:50 2021 -0700

    x86: Add TARGET_AVX256_[MOVE|STORE]_BY_PIECES

    1. Add TARGET_AVX256_MOVE_BY_PIECES to perform move by-pieces operation
    with 256-bit AVX instructions.
    2. Add TARGET_AVX256_STORE_BY_PIECES to perform move and store by-pieces
    operations with 256-bit AVX instructions.

    They are enabled only for Intel Alder Lake and Intel processors with
    AVX512.

    gcc/

            PR target/101935
            * config/i386/i386.h (TARGET_AVX256_MOVE_BY_PIECES): New.
            (TARGET_AVX256_STORE_BY_PIECES): Likewise.
            (MOVE_MAX): Check TARGET_AVX256_MOVE_BY_PIECES and
            TARGET_AVX256_STORE_BY_PIECES instead of
            TARGET_AVX256_SPLIT_UNALIGNED_LOAD and
            TARGET_AVX256_SPLIT_UNALIGNED_STORE.
            (STORE_MAX_PIECES): Check TARGET_AVX256_STORE_BY_PIECES instead
            of TARGET_AVX256_SPLIT_UNALIGNED_STORE.
            * config/i386/x86-tune.def (X86_TUNE_AVX256_MOVE_BY_PIECES): New.
            (X86_TUNE_AVX256_STORE_BY_PIECES): Likewise.

    gcc/testsuite/

            PR target/101935
            * g++.target/i386/pr80566-1.C: Add
            -mtune-ctrl=avx256_store_by_pieces.
            * gcc.target/i386/pr100865-4a.c: Likewise.
            * gcc.target/i386/pr100865-10a.c: Likewise.
            * gcc.target/i386/pr90773-20.c: Likewise.
            * gcc.target/i386/pr90773-21.c: Likewise.
            * gcc.target/i386/pr90773-22.c: Likewise.
            * gcc.target/i386/pr90773-23.c: Likewise.
            * g++.target/i386/pr80566-2.C: Add
            -mtune-ctrl=avx256_move_by_pieces.
            * gcc.target/i386/eh_return-1.c: Likewise.
            * gcc.target/i386/pr90773-26.c: Likewise.
            * gcc.target/i386/pieces-memcpy-12.c: Replace -mtune=haswell
            with -mtune-ctrl=avx256_move_by_pieces.
            * gcc.target/i386/pieces-memcpy-15.c: Likewise.
            * gcc.target/i386/pieces-memset-2.c: Replace -mtune=haswell
            with -mtune-ctrl=avx256_store_by_pieces.
            * gcc.target/i386/pieces-memset-5.c: Likewise.
            * gcc.target/i386/pieces-memset-11.c: Likewise.
            * gcc.target/i386/pieces-memset-14.c: Likewise.
            * gcc.target/i386/pieces-memset-20.c: Likewise.
            * gcc.target/i386/pieces-memset-23.c: Likewise.
            * gcc.target/i386/pieces-memset-29.c: Likewise.
            * gcc.target/i386/pieces-memset-30.c: Likewise.
            * gcc.target/i386/pieces-memset-33.c: Likewise.
            * gcc.target/i386/pieces-memset-34.c: Likewise.
            * gcc.target/i386/pieces-memset-44.c: Likewise.
            * gcc.target/i386/pieces-memset-37.c: Replace -mtune=generic
            with -mtune-ctrl=avx256_store_by_pieces.

Reply via email to