Re: [PATCH][X86] Add missing intrinsics for VRSQRT14

2017-05-11 Thread Uros Bizjak
On Thu, May 11, 2017 at 2:59 PM, Koval, Julia <julia.ko...@intel.com> wrote:
>> Please macroize existing rsqrt14_ pattern.
> There is no existing macro to match this pattern - it is "mask first element 
> of vec_merge", instead of mask the whole vector.(SDM Vol. 2C 5-527) 
> https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf
> I can create a new macro(patch attached), but I only know 2 of this type, so 
> I'm not sure if it is needed. Also I don't like (const_int 1) part of my 
> macro, but I don't know how I can save & use it as other operands.

OK, let's go with your original patch then.

I'll commit it later today.

Thanks,
Uros.

> -Original Message-
> From: Uros Bizjak [mailto:ubiz...@gmail.com]
> Sent: Thursday, May 11, 2017 11:25 AM
> To: Koval, Julia <julia.ko...@intel.com>
> Cc: GCC Patches <gcc-patches@gcc.gnu.org>; Kirill Yukhin 
> <kirill.yuk...@gmail.com>
> Subject: Re: [PATCH][X86] Add missing intrinsics for VRSQRT14
>
> On Thu, May 11, 2017 at 7:43 AM, Koval, Julia <julia.ko...@intel.com> wrote:
>> Hi,
>>
>> These are 4 missing intrinsics for VRSQRT14 instruction. Ok for trunk?
>>
>> gcc/
>> * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd, 
>> _mm_maskz_rsqrt14_sd,
>> _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss): New intrinsics.
>> * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask,
>> __builtin_ia32_rsqrt14ss_mask): New builtins.
>> * config/i386/sse.md (rsqrt14__mask): New pattern.
>
> Please macroize existing rsqrt14_ pattern.
>
> BTW: Please also macroize srcp14_mask from your previous patch in the 
> same way.
>
> Thanks,
> Uros.
>
>> gcc/testsuite/
>> * gcc.target/i386/avx512f-vrsqrt14sd-1.c: Test new intrinsics.
>> * gcc.target/i386/avx512f-vrsqrt14sd-2.c: Ditto.
>> * gcc.target/i386/avx512f-vrsqrt14ss-1.c: Ditto.
>> * gcc.target/i386/avx512f-vrsqrt14ss-2.c: Ditto.
>>
>> Thanks,
>> Julia


RE: [PATCH][X86] Add missing intrinsics for VRSQRT14

2017-05-11 Thread Koval, Julia
> Please macroize existing rsqrt14_ pattern.
There is no existing macro to match this pattern - it is "mask first element of 
vec_merge", instead of mask the whole vector.(SDM Vol. 2C 5-527) 
https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf
 
I can create a new macro(patch attached), but I only know 2 of this type, so 
I'm not sure if it is needed. Also I don't like (const_int 1) part of my macro, 
but I don't know how I can save & use it as other operands.

-Original Message-
From: Uros Bizjak [mailto:ubiz...@gmail.com] 
Sent: Thursday, May 11, 2017 11:25 AM
To: Koval, Julia <julia.ko...@intel.com>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>; Kirill Yukhin 
<kirill.yuk...@gmail.com>
Subject: Re: [PATCH][X86] Add missing intrinsics for VRSQRT14

On Thu, May 11, 2017 at 7:43 AM, Koval, Julia <julia.ko...@intel.com> wrote:
> Hi,
>
> These are 4 missing intrinsics for VRSQRT14 instruction. Ok for trunk?
>
> gcc/
> * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd, 
> _mm_maskz_rsqrt14_sd,
> _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss): New intrinsics.
> * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask,
> __builtin_ia32_rsqrt14ss_mask): New builtins.
> * config/i386/sse.md (rsqrt14__mask): New pattern.

Please macroize existing rsqrt14_ pattern.

BTW: Please also macroize srcp14_mask from your previous patch in the 
same way.

Thanks,
Uros.

> gcc/testsuite/
> * gcc.target/i386/avx512f-vrsqrt14sd-1.c: Test new intrinsics.
> * gcc.target/i386/avx512f-vrsqrt14sd-2.c: Ditto.
> * gcc.target/i386/avx512f-vrsqrt14ss-1.c: Ditto.
> * gcc.target/i386/avx512f-vrsqrt14ss-2.c: Ditto.
>
> Thanks,
> Julia


0001-pattern.patch
Description: 0001-pattern.patch


Re: [PATCH][X86] Add missing intrinsics for VRSQRT14

2017-05-11 Thread Uros Bizjak
On Thu, May 11, 2017 at 7:43 AM, Koval, Julia  wrote:
> Hi,
>
> These are 4 missing intrinsics for VRSQRT14 instruction. Ok for trunk?
>
> gcc/
> * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd, 
> _mm_maskz_rsqrt14_sd,
> _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss): New intrinsics.
> * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask,
> __builtin_ia32_rsqrt14ss_mask): New builtins.
> * config/i386/sse.md (rsqrt14__mask): New pattern.

Please macroize existing rsqrt14_ pattern.

BTW: Please also macroize srcp14_mask from your previous patch
in the same way.

Thanks,
Uros.

> gcc/testsuite/
> * gcc.target/i386/avx512f-vrsqrt14sd-1.c: Test new intrinsics.
> * gcc.target/i386/avx512f-vrsqrt14sd-2.c: Ditto.
> * gcc.target/i386/avx512f-vrsqrt14ss-1.c: Ditto.
> * gcc.target/i386/avx512f-vrsqrt14ss-2.c: Ditto.
>
> Thanks,
> Julia