This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

SSE fix 15 - xmmintrin.h assorted fixes


Sat Oct 19 21:55:22 CEST 2002  Jan Hubicka  <jh@suse.cz>
	* xmmintrin.h (_mm_sqrt_sd): Accept two arguments.
	(_mm_max_sd): Fix pasto.
	(_mm_storeh_pd, _mm_storel_pd): Fix.
Index: xmmintrin.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/xmmintrin.h,v
retrieving revision 1.11
diff -c -3 -p -r1.11 xmmintrin.h
*** xmmintrin.h	19 Oct 2002 17:13:50 -0000	1.11
--- xmmintrin.h	19 Oct 2002 20:01:02 -0000
*************** _mm_sqrt_pd (__m128d __A)
*** 1293,1302 ****
    return (__m128d)__builtin_ia32_sqrtpd ((__v2df)__A);
  }
  
  static __inline __m128d
! _mm_sqrt_sd (__m128d __A)
  {
!   return (__m128d)__builtin_ia32_sqrtsd ((__v2df)__A);
  }
  
  static __inline __m128d
--- 1293,1304 ----
    return (__m128d)__builtin_ia32_sqrtpd ((__v2df)__A);
  }
  
+ /* Return pair {sqrt (A[0), B[1]}.  */
  static __inline __m128d
! _mm_sqrt_sd (__m128d __A, __m128d __B)
  {
!   __v2df __tmp = __builtin_ia32_movsd ((__v2df)__A, (__v2df)__B);
!   return (__m128d)__builtin_ia32_sqrtsd ((__v2df)__tmp);
  }
  
  static __inline __m128d
*************** _mm_max_pd (__m128d __A, __m128d __B)
*** 1320,1326 ****
  static __inline __m128d
  _mm_max_sd (__m128d __A, __m128d __B)
  {
!   return (__m128d)__builtin_ia32_minsd ((__v2df)__A, (__v2df)__B);
  }
  
  static __inline __m128d
--- 1322,1328 ----
  static __inline __m128d
  _mm_max_sd (__m128d __A, __m128d __B)
  {
!   return (__m128d)__builtin_ia32_maxsd ((__v2df)__A, (__v2df)__B);
  }
  
  static __inline __m128d
*************** _mm_loadh_pd (__m128d __A, double *__B)
*** 1696,1705 ****
  }
  
  static __inline void
! _mm_storeh_pd (__m128d *__A, double __B)
  {
!   __v2df __tmp = __builtin_ia32_loadsd (&__B);
!   __builtin_ia32_storehpd ((__v2si *)__A, __tmp);
  }
  
  static __inline __m128d
--- 1698,1706 ----
  }
  
  static __inline void
! _mm_storeh_pd (double *__A, __m128d __B)
  {
!   __builtin_ia32_storehpd ((__v2si *)__A, (__v2df)__B);
  }
  
  static __inline __m128d
*************** _mm_loadl_pd (__m128d __A, double *__B)
*** 1709,1718 ****
  }
  
  static __inline void
! _mm_storel_pd (__m128d *__A, double __B)
  {
!   __v2df __tmp = __builtin_ia32_loadsd (&__B);
!   __builtin_ia32_storelpd ((__v2si *)__A, __tmp);
  }
  
  static __inline int
--- 1710,1718 ----
  }
  
  static __inline void
! _mm_storel_pd (double *__A, __m128d __B)
  {
!   __builtin_ia32_storelpd ((__v2si *)__A, (__v2df)__B);
  }
  
  static __inline int


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]