Re: [patch] Remove redundant intrinsics

2018-06-18 Thread Jeff Law
On 06/14/2018 05:44 AM, Koval, Julia wrote:
> Hi,
> 
> This patch should fix the issue. Ok for trunk?
> 
> gcc/testsuite/
>   * gcc.target/i386/avx512vl-vpclmulqdq-2.c: Remove 128bit version.
OK.
jeff


RE: [patch] Remove redundant intrinsics

2018-06-14 Thread Koval, Julia
Hi,

This patch should fix the issue. Ok for trunk?

gcc/testsuite/
* gcc.target/i386/avx512vl-vpclmulqdq-2.c: Remove 128bit version.

Thanks,
Julia

> -Original Message-
> From: H.J. Lu [mailto:hjl.to...@gmail.com]
> Sent: Tuesday, June 12, 2018 1:27 PM
> To: Koval, Julia 
> Cc: GCC Patches ; Kirill Yukhin
> 
> Subject: Re: [patch] Remove redundant intrinsics
> 
> On Mon, Jun 4, 2018 at 3:27 AM, Koval, Julia  wrote:
> > Hi,
> >
> > Since pre-Icelake ISA already had 128bit version vpclmul and vaes, we 
> > already
> have intrinsics for them(_mm_aesdec_si128, _mm_aesdeclast_si128,
> _mm_aesenc_si128, _mm_aesenclast_si128, _mm_clmulepi64_si128).
> Therefore intrinsics for them, introduced with Icelake instructions are
> redundant. This patch removes them. Ok for trunk?
> >
> > gcc/
> > * config/i386/vaesintrin.h (_mm_aesdec_epi128,
> _mm_aesdeclast_epi128,
> > _mm_aesenc_epi128, _mm_aesenclast_epi128): Remove.
> > * config/i386/vpclmulqdqintrin.h (_mm_clmulepi64_epi128): Remove.
> >
> > gcc/testsuite/
> > * gcc.target/i386/avx512fvl-vaes-1.c: Remove 128bit versions from 
> > test.
> > * gcc.target/i386/vpclmulqdq.c: Ditto.
> 
> This caused:
> 
> [hjl@gnu-skx-1 gcc]$
> /export/build/gnu/gcc-test/build-x86_64-linux/gcc/xgcc
> -B/export/build/gnu/gcc-test/build-x86_64-linux/gcc/
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512vl-
> vpclmulqdq-2.c
> -fno-diagnostics-show-caret -fdiagnostics-color=never -O2 -mavx512bw
> -mavx512vl -mvpclmulqdq -lm -o ./avx512vl-vpclmulqdq-2.exe
> In file included from
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-
> vpclmulqdq-2.c:9,
>  from
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512vl-
> vpclmulqdq-2.c:17:
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-
> vpclmulqdq-2.c:
> In function \u2018test_128\u2019:
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-
> helper.h:107:25:
> warning: implicit declaration of function
> \u2018_mm_clmulepi64_epi128\u2019; did you mean
> \u2018_mm_clmulepi64_si128\u2019? [-Wimplicit-function-declaration]
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-
> vpclmulqdq-2.c:56:11:
> note: in expansion of macro \u2018INTRINSIC\u2019
> In file included from
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512vl-
> vpclmulqdq-2.c:17:
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-
> vpclmulqdq-2.c:56:9:
> error: incompatible types when assigning to type \u2018__m128i\u2019
> {aka \u2018__vector(2) long long int\u2019} from type \u2018int\u2019
> [hjl@gnu-skx-1 gcc]$
> /export/build/gnu/gcc-test/build-x86_64-linux/gcc/xgcc
> -B/export/build/gnu/gcc-test/build-x86_64-linux/gcc/
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512vl-
> vpclmulqdq-2.c
> -fno-diagnostics-show-caret -fdiagnostics-color=never -O2 -mavx512bw
> -mavx512vl -mvpclmulqdq -lm -o ./avx512vl-vpclmulqdq-2.exe
> In file included from
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-
> vpclmulqdq-2.c:9,
>  from
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512vl-
> vpclmulqdq-2.c:17:
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-
> vpclmulqdq-2.c:
> In function \u2018test_128\u2019:
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-
> helper.h:107:25:
> warning: implicit declaration of function
> \u2018_mm_clmulepi64_epi128\u2019; did you mean
> \u2018_mm_clmulepi64_si128\u2019? [-Wimplicit-function-declaration]
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-
> vpclmulqdq-2.c:56:11:
> note: in expansion of macro \u2018INTRINSIC\u2019
> In file included from
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512vl-
> vpclmulqdq-2.c:17:
> /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-
> vpclmulqdq-2.c:56:9:
> error: incompatible types when assigning to type \u2018__m128i\u2019
> {aka \u2018__vector(2) long long int\u2019} from type \u2018int\u2019
> [hjl@gnu-skx-1 gcc]$
> 
> FAIL: gcc.target/i386/avx512vl-vpclmulqdq-2.c (test for excess errors)
> 
> 
> --
> H.J.


test_fix.patch
Description: test_fix.patch


Re: [patch] Remove redundant intrinsics

2018-06-12 Thread H.J. Lu
On Mon, Jun 4, 2018 at 3:27 AM, Koval, Julia  wrote:
> Hi,
>
> Since pre-Icelake ISA already had 128bit version vpclmul and vaes, we already 
> have intrinsics for them(_mm_aesdec_si128, _mm_aesdeclast_si128, 
> _mm_aesenc_si128, _mm_aesenclast_si128, _mm_clmulepi64_si128). Therefore 
> intrinsics for them, introduced with Icelake instructions are redundant. This 
> patch removes them. Ok for trunk?
>
> gcc/
> * config/i386/vaesintrin.h (_mm_aesdec_epi128, _mm_aesdeclast_epi128,
> _mm_aesenc_epi128, _mm_aesenclast_epi128): Remove.
> * config/i386/vpclmulqdqintrin.h (_mm_clmulepi64_epi128): Remove.
>
> gcc/testsuite/
> * gcc.target/i386/avx512fvl-vaes-1.c: Remove 128bit versions from 
> test.
> * gcc.target/i386/vpclmulqdq.c: Ditto.

This caused:

[hjl@gnu-skx-1 gcc]$
/export/build/gnu/gcc-test/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-test/build-x86_64-linux/gcc/
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512vl-vpclmulqdq-2.c
-fno-diagnostics-show-caret -fdiagnostics-color=never -O2 -mavx512bw
-mavx512vl -mvpclmulqdq -lm -o ./avx512vl-vpclmulqdq-2.exe
In file included from
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-vpclmulqdq-2.c:9,
 from
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512vl-vpclmulqdq-2.c:17:
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-vpclmulqdq-2.c:
In function \u2018test_128\u2019:
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-helper.h:107:25:
warning: implicit declaration of function
\u2018_mm_clmulepi64_epi128\u2019; did you mean
\u2018_mm_clmulepi64_si128\u2019? [-Wimplicit-function-declaration]
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-vpclmulqdq-2.c:56:11:
note: in expansion of macro \u2018INTRINSIC\u2019
In file included from
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512vl-vpclmulqdq-2.c:17:
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-vpclmulqdq-2.c:56:9:
error: incompatible types when assigning to type \u2018__m128i\u2019
{aka \u2018__vector(2) long long int\u2019} from type \u2018int\u2019
[hjl@gnu-skx-1 gcc]$
/export/build/gnu/gcc-test/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-test/build-x86_64-linux/gcc/
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512vl-vpclmulqdq-2.c
-fno-diagnostics-show-caret -fdiagnostics-color=never -O2 -mavx512bw
-mavx512vl -mvpclmulqdq -lm -o ./avx512vl-vpclmulqdq-2.exe
In file included from
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-vpclmulqdq-2.c:9,
 from
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512vl-vpclmulqdq-2.c:17:
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-vpclmulqdq-2.c:
In function \u2018test_128\u2019:
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-helper.h:107:25:
warning: implicit declaration of function
\u2018_mm_clmulepi64_epi128\u2019; did you mean
\u2018_mm_clmulepi64_si128\u2019? [-Wimplicit-function-declaration]
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-vpclmulqdq-2.c:56:11:
note: in expansion of macro \u2018INTRINSIC\u2019
In file included from
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512vl-vpclmulqdq-2.c:17:
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.target/i386/avx512f-vpclmulqdq-2.c:56:9:
error: incompatible types when assigning to type \u2018__m128i\u2019
{aka \u2018__vector(2) long long int\u2019} from type \u2018int\u2019
[hjl@gnu-skx-1 gcc]$

FAIL: gcc.target/i386/avx512vl-vpclmulqdq-2.c (test for excess errors)


-- 
H.J.


Re: [patch] Remove redundant intrinsics

2018-06-11 Thread Kirill Yukhin
Hello Julia!
On 04 июн 10:27, Koval, Julia wrote:
> Hi,
> 
> Since pre-Icelake ISA already had 128bit version vpclmul and vaes, we already 
> have intrinsics for them(_mm_aesdec_si128, _mm_aesdeclast_si128, 
> _mm_aesenc_si128, _mm_aesenclast_si128, _mm_clmulepi64_si128). Therefore 
> intrinsics for them, introduced with Icelake instructions are redundant. This 
> patch removes them. Ok for trunk?
> 
> gcc/
>   * config/i386/vaesintrin.h (_mm_aesdec_epi128, _mm_aesdeclast_epi128,
>   _mm_aesenc_epi128, _mm_aesenclast_epi128): Remove.
>   * config/i386/vpclmulqdqintrin.h (_mm_clmulepi64_epi128): Remove.
> 
> gcc/testsuite/
>   * gcc.target/i386/avx512fvl-vaes-1.c: Remove 128bit versions from test.
>   * gcc.target/i386/vpclmulqdq.c: Ditto.
Your patch is OK. I've checked it into main trunk.

> 
> Thanks,
> Julia

--
Thanks, K