This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: [PATCH][PR76731] Fix intrinsics according to icc and docs


I fixed the Changelog. Can you commit it for me if it is ok?

Thanks,
Julia

gcc/
  * config/i386/avx512fintrin.h
    (_mm512_i32gather_ps): Fixed arg to void const*.
    (_mm512_mask_i32gather_ps): Ditto.
    (_mm512_i32gather_pd): Ditto.
    (_mm512_mask_i32gather_pd): Ditto.
    (_mm512_i64gather_ps): Ditto.
    (_mm512_mask_i64gather_ps): Ditto.
    (_mm512_i64gather_pd): Ditto.
    (_mm512_mask_i64gather_pd): Ditto.
    (_mm512_i32gather_epi32): Ditto.
    (_mm512_mask_i32gather_epi32): Ditto.
    (_mm512_i32gather_epi64): Ditto.
    (_mm512_mask_i32gather_epi64): Ditto.
    (_mm512_i64gather_epi32): Ditto.
    (_mm512_mask_i64gather_epi32): Ditto.
    (_mm512_i64gather_epi64): Ditto.
    (_mm512_mask_i64gather_epi64): Ditto.
    (_mm512_i32scatter_ps): Fixed arg to void*.
    (_mm512_mask_i32scatter_ps): Ditto.
    (_mm512_i32scatter_pd): Ditto.
    (_mm512_mask_i32scatter_pd): Ditto.
    (_mm512_i64scatter_ps): Ditto.
    (_mm512_mask_i64scatter_ps): Ditto.
    (_mm512_i64scatter_pd): Ditto.
    (_mm512_mask_i64scatter_pd): Ditto.
    (_mm512_i32scatter_epi32): Ditto.
    (_mm512_mask_i32scatter_epi32): Ditto.
    (_mm512_i32scatter_epi64): Ditto.
    (_mm512_mask_i32scatter_epi64): Ditto.
    (_mm512_i64scatter_epi32): Ditto.
    (_mm512_mask_i64scatter_epi32): Ditto.
    (_mm512_i64scatter_epi64): Ditto.
    (_mm512_mask_i64scatter_epi64): Ditto.
  * config/i386/avx512pfintrin.h
    (_mm512_mask_prefetch_i32gather_pd): Fixed arg to void const*.
    (_mm512_mask_prefetch_i32gather_ps): Ditto.
    (_mm512_mask_prefetch_i64gather_pd): Ditto.
    (_mm512_mask_prefetch_i64gather_ps): Ditto.
    (_mm512_prefetch_i32scatter_pd): Fixed arg to void*.
    (_mm512_prefetch_i32scatter_ps): Ditto.
    (_mm512_mask_prefetch_i32scatter_pd): Ditto.
    (_mm512_mask_prefetch_i32scatter_ps): Ditto.
    (_mm512_prefetch_i64scatter_pd): Ditto.
    (_mm512_prefetch_i64scatter_ps): Ditto.
    (_mm512_mask_prefetch_i64scatter_pd): Ditto.
    (_mm512_mask_prefetch_i64scatter_ps): Ditto.
  * config/i386/avx512vlintrin.h
    (_mm256_mmask_i32gather_ps): Fixed arg to void const*.
    (_mm_mmask_i32gather_ps): Ditto.
    (_mm256_mmask_i32gather_pd): Ditto.
    (_mm_mmask_i32gather_pd): Ditto.
    (_mm256_mmask_i64gather_ps): Ditto.
    (_mm_mmask_i64gather_ps): Ditto.
    (_mm256_mmask_i64gather_pd): Ditto.
    (_mm_mmask_i64gather_pd): Ditto.
    (_mm256_mmask_i32gather_epi32): Ditto.
    (_mm_mmask_i32gather_epi32): Ditto.
    (_mm256_mmask_i32gather_epi64): Ditto.
    (_mm_mmask_i32gather_epi64): Ditto.
    (_mm256_mmask_i64gather_epi32): Ditto.
    (_mm_mmask_i64gather_epi32): Ditto.
    (_mm256_mmask_i64gather_epi64): Ditto.
    (_mm_mmask_i64gather_epi64): Ditto.
    (_mm256_i32scatter_ps): Fixed arg to void*.
    (_mm256_mask_i32scatter_ps): Ditto.
    (_mm_i32scatter_ps): Ditto.
    (_mm_mask_i32scatter_ps): Ditto.
    (_mm256_i32scatter_pd): Ditto.
    (_mm256_mask_i32scatter_pd): Ditto.
    (_mm_i32scatter_pd): Ditto.
    (_mm_mask_i32scatter_pd): Ditto.
    (_mm256_i64scatter_ps): Ditto.
    (_mm256_mask_i64scatter_ps): Ditto.
    (_mm_i64scatter_ps): Ditto.
    (_mm_mask_i64scatter_ps): Ditto.
    (_mm256_i64scatter_pd): Ditto.
    (_mm256_mask_i64scatter_pd): Ditto.
    (_mm_i64scatter_pd): Ditto.
    (_mm_mask_i64scatter_pd): Ditto.
    (_mm256_i32scatter_epi32): Ditto.
    (_mm256_mask_i32scatter_epi32): Ditto.
    (_mm_i32scatter_epi32): Ditto.
    (_mm_mask_i32scatter_epi32): Ditto.
    (_mm256_i32scatter_epi64): Ditto.
    (_mm256_mask_i32scatter_epi64): Ditto.
    (_mm_i32scatter_epi64): Ditto.
    (_mm_mask_i32scatter_epi64): Ditto.
    (_mm256_i64scatter_epi32): Ditto.
    (_mm256_mask_i64scatter_epi32): Ditto.
    (_mm_i64scatter_epi32): Ditto.
    (_mm_mask_i64scatter_epi32): Ditto.
    (_mm256_i64scatter_epi64): Ditto.
    (_mm256_mask_i64scatter_epi64): Ditto.
    (_mm_i64scatter_epi64): Ditto.
    (_mm_mask_i64scatter_epi64): Ditto.
  * config/i386/i386-builtin-types.def: (V16SF_V16SF_PCFLOAT_V16SI_HI_INT,
    V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT,
    V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT,
    V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT,
    V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT,
    V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT,
    V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT,
    V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT,
    V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT,
    V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT,
    V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT,
    V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT,
    V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT,
    VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT,
    VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT,
    VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT,
    VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT,
    VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT,
    VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT,
    VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT,
    VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT,
    VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT,
    VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT,
    VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT,
    VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT,
    VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT,
    VOID_QI_V8DI_PCINT_INT_INT): Remove
    (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT,
    V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT,
    V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT,
    V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT,
    VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT,
    VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT,
    VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT,
    VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT,
    V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT,
    V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
    V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT,
    V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT,
    V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT,
    V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT,
    V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT,
    V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT,
    VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT,
    VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT,
    VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT,
    VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT,
    VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT,
    VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT,
    VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT,
    VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT,
    VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT,
    VOID_QI_V8DI_PCVOID_INT_INT): Add
  * config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix builtin types.

-----Original Message-----
From: Uros Bizjak [mailto:ubizjak@gmail.com] 
Sent: Tuesday, January 17, 2017 2:08 PM
To: Koval, Julia <julia.koval@intel.com>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>; Jakub Jelinek <jakub@redhat.com>; Kirill Yukhin <kirill.yukhin@gmail.com>; Andrew Senkevich <andrew.n.senkevich@gmail.com>
Subject: Re: [PATCH][PR76731] Fix intrinsics according to icc and docs

On Tue, Jan 17, 2017 at 1:57 PM, Koval, Julia <julia.koval@intel.com> wrote:
> Hi,
> I added builtin changes to Jakub's patch from https://gcc.gnu.org/bugzilla/show_bug.cgi?id=76731 It fixes the issue, when gather/scatter intrinsics has wrong spec. Ok for trunk?

>   * config/i386/i386-builtin-types.def: Remove types
>     V16SF_V16SF_PCFLOAT_V16SI_HI_INT, V8DF_V8DF_PCDOUBLE_V8SI_QI_INT,
>     V8SF_V8SF_PCFLOAT_V8DI_QI_INT,  V8DF_V8DF_PCDOUBLE_V8DI_QI_INT,
>     V16SI_V16SI_PCINT_V16SI_HI_INT,  V8DI_V8DI_PCINT64_V8SI_QI_INT,
>     V8SI_V8SI_PCINT_V8DI_QI_INT, V8DI_V8DI_PCINT64_V8DI_QI_INT,
>     V2DF_V2DF_PCDOUBLE_V4SI_QI_INT, V4DF_V4DF_PCDOUBLE_V4SI_QI_INT,
>     V2DF_V2DF_PCDOUBLE_V2DI_QI_INT, V4DF_V4DF_PCDOUBLE_V4DI_QI_INT,
>     V4SF_V4SF_PCFLOAT_V4SI_QI_INT, V8SF_V8SF_PCFLOAT_V8SI_QI_INT,
>     V4SF_V4SF_PCFLOAT_V2DI_QI_INT, V4SF_V4SF_PCFLOAT_V4DI_QI_INT,
>     V2DI_V2DI_PCINT64_V4SI_QI_INT, V4DI_V4DI_PCINT64_V4SI_QI_INT,
>     V2DI_V2DI_PCINT64_V2DI_QI_INT, V4DI_V4DI_PCINT64_V4DI_QI_INT,
>     V4SI_V4SI_PCINT_V4SI_QI_INT, V8SI_V8SI_PCINT_V8SI_QI_INT,
>     V4SI_V4SI_PCINT_V2DI_QI_INT, V4SI_V4SI_PCINT_V4DI_QI_INT,
>     VOID_PFLOAT_HI_V16SI_V16SF_INT, VOID_PFLOAT_QI_V8SI_V8SF_INT,
>     VOID_PFLOAT_QI_V4SI_V4SF_INT, VOID_PDOUBLE_QI_V8SI_V8DF_INT,
>     VOID_PDOUBLE_QI_V4SI_V4DF_INT, VOID_PDOUBLE_QI_V4SI_V2DF_INT,
>     VOID_PFLOAT_QI_V8DI_V8SF_INT, VOID_PFLOAT_QI_V4DI_V4SF_INT,
>     VOID_PFLOAT_QI_V2DI_V4SF_INT, VOID_PDOUBLE_QI_V8DI_V8DF_INT,
>     VOID_PDOUBLE_QI_V4DI_V4DF_INT, VOID_PDOUBLE_QI_V2DI_V2DF_INT,
>     VOID_PINT_HI_V16SI_V16SI_INT, VOID_PINT_QI_V8SI_V8SI_INT,
>     VOID_PINT_QI_V4SI_V4SI_INT, VOID_PLONGLONG_QI_V8SI_V8DI_INT,
>     VOID_PLONGLONG_QI_V4SI_V4DI_INT, VOID_PLONGLONG_QI_V4SI_V2DI_INT,
>     VOID_PINT_QI_V8DI_V8SI_INT, VOID_PINT_QI_V4DI_V4SI_INT,
>     VOID_PINT_QI_V2DI_V4SI_INT, VOID_PLONGLONG_QI_V8DI_V8DI_INT,
>     VOID_QI_V8SI_PCINT64_INT_INT, VOID_PLONGLONG_QI_V4DI_V4DI_INT,
>     VOID_PLONGLONG_QI_V2DI_V2DI_INT, VOID_HI_V16SI_PCINT_INT_INT,
>     VOID_QI_V8DI_PCINT64_INT_INT, VOID_QI_V8DI_PCINT_INT_INT
>     Add types V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT,
>     V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT,
>     V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT,
>     V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT,
>     VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT,
>     VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT,
>     VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT,
>     VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT,
>     V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT,
>     V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
>     V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT,
>     V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT,
>     V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT,
>     V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT,
>     V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT,
>     V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT,
>     VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT,
>     VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT,
>     VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT,
>     VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT,
>     VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT,
>     VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT,
>     VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT,
>     VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT,
>     VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT,
>     VOID_QI_V8DI_PCVOID_INT_INT

Please write the above part as:

   * config/i386/i386-builtin-types.def  (V16SF_V16SF_PCFLOAT_V16SI_HI_INT,
     V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT,
     ...
     VOID_QI_V8DI_PCINT_INT_INT): Remove.
     ( ... ): Add.

Uros.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]