Commit 0b192937 by Ulrich Drepper Committed by Ulrich Drepper

avxintrin.h (_mm256_undefined_si256): Define.

2014-03-24  Ulrich Drepper  <drepper@gmail.com>

        * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
        (_mm256_undefined_ps): Define.
        (_mm256_undefined_pd): Define.
        * config/i386/emmintrin.h (_mm_undefined_si128): Define.
        (_mm_undefined_pd): Define.
        * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
        * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
        (_mm512_undefined_ps): Define.
        (_mm512_undefined_pd): Define.
        Use _mm*_undefined_*.
        * config/i386/avx2intrin.h: Use _mm*_undefined_*.

From-SVN: r208793
parent d0f27fb6
2014-03-24 Ulrich Drepper <drepper@gmail.com>
* config/i386/avxintrin.h (_mm256_undefined_si256): Define.
(_mm256_undefined_ps): Define.
(_mm256_undefined_pd): Define.
* config/i386/emmintrin.h (_mm_undefined_si128): Define.
(_mm_undefined_pd): Define.
* config/i386/xmmintrin.h (_mm_undefined_ps): Define.
* config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
(_mm512_undefined_ps): Define.
(_mm512_undefined_pd): Define.
Use _mm*_undefined_*.
* config/i386/avx2intrin.h: Use _mm*_undefined_*.
2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
* config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
......
......@@ -1233,10 +1233,10 @@ extern __inline __m128d
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_i32gather_pd (double const *base, __m128i index, const int scale)
{
__v2df src = _mm_setzero_pd ();
__v2df mask = _mm_cmpeq_pd (src, src);
__v2df zero = _mm_setzero_pd ();
__v2df mask = _mm_cmpeq_pd (zero, zero);
return (__m128d) __builtin_ia32_gathersiv2df (src,
return (__m128d) __builtin_ia32_gathersiv2df (_mm_undefined_pd (),
base,
(__v4si)index,
mask,
......@@ -1259,10 +1259,10 @@ extern __inline __m256d
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm256_i32gather_pd (double const *base, __m128i index, const int scale)
{
__v4df src = _mm256_setzero_pd ();
__v4df mask = _mm256_cmp_pd (src, src, _CMP_EQ_OQ);
__v4df zero = _mm256_setzero_pd ();
__v4df mask = _mm256_cmp_pd (zero, zero, _CMP_EQ_OQ);
return (__m256d) __builtin_ia32_gathersiv4df (src,
return (__m256d) __builtin_ia32_gathersiv4df (_mm256_undefined_pd (),
base,
(__v4si)index,
mask,
......
......@@ -1168,6 +1168,27 @@ _mm256_movemask_ps (__m256 __A)
}
extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm256_undefined_pd (void)
{
__m256d __Y = __Y;
return __Y;
}
extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm256_undefined_ps (void)
{
__m256 __Y = __Y;
return __Y;
}
extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm256_undefined_si256 (void)
{
__m256i __Y = __Y;
return __Y;
}
extern __inline __m256d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm256_setzero_pd (void)
{
return __extension__ (__m256d){ 0.0, 0.0, 0.0, 0.0 };
......
......@@ -86,6 +86,14 @@ _mm_setr_pd (double __W, double __X)
return __extension__ (__m128d){ __W, __X };
}
/* Create an undefined vector. */
extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_undefined_pd (void)
{
__m128d __Y = __Y;
return __Y;
}
/* Create a vector of zeros. */
extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_setzero_pd (void)
......@@ -728,6 +736,14 @@ _mm_move_epi64 (__m128i __A)
return (__m128i)__builtin_ia32_movq128 ((__v2di) __A);
}
/* Create an undefined vector. */
extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_undefined_si128 (void)
{
__m128i __Y = __Y;
return __Y;
}
/* Create a vector of zeros. */
extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_setzero_si128 (void)
......
......@@ -102,6 +102,14 @@ typedef float __v4sf __attribute__ ((__vector_size__ (16)));
#define _MM_FLUSH_ZERO_ON 0x8000
#define _MM_FLUSH_ZERO_OFF 0x0000
/* Create an undefined vector. */
extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_undefined_ps (void)
{
__m128 __Y = __Y;
return __Y;
}
/* Create a vector of zeros. */
extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
_mm_setzero_ps (void)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment