This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PR80582][X86] Add missing __mm256_set[r] intrinsics
- From: Jakub Jelinek <jakub at redhat dot com>
- To: "Koval, Julia" <julia dot koval at intel dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Uros Bizjak <ubizjak at gmail dot com>, Kirill Yukhin <kirill dot yukhin at gmail dot com>
- Date: Tue, 9 May 2017 11:35:40 +0200
- Subject: Re: [PR80582][X86] Add missing __mm256_set[r] intrinsics
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=jakub at redhat dot com
- Dkim-filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 92CF04E334
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 92CF04E334
- References: <4E89A029A0F8D443B436A5167BA3C53F1994952F@IRSMSX101.ger.corp.intel.com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Tue, May 09, 2017 at 09:28:40AM +0000, 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