Re: [PR80582][X86] Add missing __mm256_set[r] intrinsics

2017-05-10 Thread Uros Bizjak
On Tue, May 9, 2017 at 11:42 AM, Koval, Julia <julia.ko...@intel.com> wrote:
> Sorry, fixed that.
>
> Thanks,
> Julia
>
> -Original Message-
> From: Jakub Jelinek [mailto:ja...@redhat.com]
> Sent: Tuesday, May 09, 2017 11:36 AM
> To: Koval, Julia <julia.ko...@intel.com>
> Cc: GCC Patches <gcc-patches@gcc.gnu.org>; Uros Bizjak <ubiz...@gmail.com>; 
> Kirill Yukhin <kirill.yuk...@gmail.com>
> Subject: Re: [PR80582][X86] Add missing __mm256_set[r] intrinsics
>
> On Tue, May 09, 2017 at 09:28:40AM +, Koval, Julia wrote:
>> Hi,
>>
>> This patch implements missing intrinsics:
>> _mm256_set_m128
>> _mm256_set_m128d
>> _mm256_set_m128i
>> _mm256_setr_m128
>> _mm256_setr_m128d
>> _mm256_setr_m128i
>>
>> gcc/
>>   * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d,
>>   _mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d,
>>   _mm256_setr_m128i): New intrinsics.
>>
>> gcc/testsuite/
>>   * gcc.target/i386/avx-vinsertf128-256-1: Test new intrinsics.
>>   * gcc.target/i386/avx-vinsertf128-256-2: Ditto.
>>   * gcc.target/i386/avx-vinsertf128-256-3: Ditto.
>>
>> Ok for trunk?

Approved and committed to mainline SVN.

Thanks,
Uros.


RE: [PR80582][X86] Add missing __mm256_set[r] intrinsics

2017-05-09 Thread Koval, Julia
Sorry, fixed that.

Thanks,
Julia

-Original Message-
From: Jakub Jelinek [mailto:ja...@redhat.com] 
Sent: Tuesday, May 09, 2017 11:36 AM
To: Koval, Julia <julia.ko...@intel.com>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>; Uros Bizjak <ubiz...@gmail.com>; 
Kirill Yukhin <kirill.yuk...@gmail.com>
Subject: Re: [PR80582][X86] Add missing __mm256_set[r] intrinsics

On Tue, May 09, 2017 at 09:28:40AM +, Koval, Julia wrote:
> Hi,
> 
> This patch implements missing intrinsics:
> _mm256_set_m128
> _mm256_set_m128d
> _mm256_set_m128i
> _mm256_setr_m128
> _mm256_setr_m128d
> _mm256_setr_m128i
> 
> gcc/
>   * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d,
>   _mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d,
>   _mm256_setr_m128i): New intrinsics.
> 
> gcc/testsuite/
>   * gcc.target/i386/avx-vinsertf128-256-1: Test new intrinsics.
>   * gcc.target/i386/avx-vinsertf128-256-2: Ditto.
>   * gcc.target/i386/avx-vinsertf128-256-3: Ditto.
> 
> Ok for trunk?

--- a/gcc/config/i386/avxintrin.h
+++ b/gcc/config/i386/avxintrin.h
@@ -746,6 +746,7 @@ _mm256_broadcast_ps (__m128 const *__X)
   return (__m256) __builtin_ia32_vbroadcastf128_ps256 (__X);  }
 
+
 #ifdef __OPTIMIZE__
 extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))  _mm256_insertf128_pd (__m256d __X, __m128d __Y, const int 
__O) @@ -770,7 +771,6 @@ _mm256_insertf128_si256 (__m256i __X, __m128i __Y, 
const int __O)
 (__v4si)__Y,
 __O);
 }
-
 extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
 _mm256_insert_epi32 (__m256i __X, int __D, int const __N)  {

Why the above extra whitespace changes?  Especially the latter looks 
undesirable, there should be one empty line in between different inline 
functions.


Jakub


0001-set_.patch
Description: 0001-set_.patch


Re: [PR80582][X86] Add missing __mm256_set[r] intrinsics

2017-05-09 Thread Jakub Jelinek
On Tue, May 09, 2017 at 09:28:40AM +, Koval, Julia wrote:
> Hi,
> 
> This patch implements missing intrinsics:
> _mm256_set_m128
> _mm256_set_m128d
> _mm256_set_m128i
> _mm256_setr_m128
> _mm256_setr_m128d
> _mm256_setr_m128i
> 
> gcc/
>   * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d,
>   _mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d,
>   _mm256_setr_m128i): New intrinsics.
> 
> gcc/testsuite/
>   * gcc.target/i386/avx-vinsertf128-256-1: Test new intrinsics.
>   * gcc.target/i386/avx-vinsertf128-256-2: Ditto.
>   * gcc.target/i386/avx-vinsertf128-256-3: Ditto.
> 
> Ok for trunk?

--- a/gcc/config/i386/avxintrin.h
+++ b/gcc/config/i386/avxintrin.h
@@ -746,6 +746,7 @@ _mm256_broadcast_ps (__m128 const *__X)
   return (__m256) __builtin_ia32_vbroadcastf128_ps256 (__X);
 }
 
+
 #ifdef __OPTIMIZE__
 extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
 _mm256_insertf128_pd (__m256d __X, __m128d __Y, const int __O)
@@ -770,7 +771,6 @@ _mm256_insertf128_si256 (__m256i __X, __m128i __Y, const 
int __O)
 (__v4si)__Y,
 __O);
 }
-
 extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
 _mm256_insert_epi32 (__m256i __X, int __D, int const __N)
 {

Why the above extra whitespace changes?  Especially the latter looks
undesirable, there should be one empty line in between different inline
functions.


Jakub


[PR80582][X86] Add missing __mm256_set[r] intrinsics

2017-05-09 Thread Koval, Julia
Hi,

This patch implements missing intrinsics:
_mm256_set_m128
_mm256_set_m128d
_mm256_set_m128i
_mm256_setr_m128
_mm256_setr_m128d
_mm256_setr_m128i

gcc/
* config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d,
_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d,
_mm256_setr_m128i): New intrinsics.

gcc/testsuite/
* gcc.target/i386/avx-vinsertf128-256-1: Test new intrinsics.
* gcc.target/i386/avx-vinsertf128-256-2: Ditto.
* gcc.target/i386/avx-vinsertf128-256-3: Ditto.

Ok for trunk?

Thanks,
Julia


0001-set_.patch
Description: 0001-set_.patch