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