Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:michaelmeissner
gcc-amd-barcelona-4.1.2
emmintr.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File emmintr.patch of Package gcc-amd-barcelona-4.1.2
2006-01-27 H.J. Lu <hongjiu.lu@intel.com> * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel intrinsic. (_mm_cvtsi128_si64): Likewise. (_mm_cvtsd_si64): Likewise. (_mm_cvttsd_si64): Likewise. (_mm_cvtsi64_sd): Likewise. (_mm_cvtsi64_si128): Likewise. * config/i386/mmintrin.h (_m_from_int64): Likewise. (_mm_cvtsi64_m64): Likewise. (_m_to_int64): Likewise. (_mm_cvtm64_si64): Likewise. * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise. (_mm_cvttss_si64): Likewise. (_mm_cvtsi64_ss): Likewise. (_mm_cvtss_f32): Likewise. Index: gcc/config/i386/mmintrin.h =================================================================== *** gcc/config/i386/mmintrin.h (revision 110310) --- gcc/config/i386/mmintrin.h (revision 110311) *************** *** 1,4 **** ! /* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GCC. --- 1,5 ---- ! /* Copyright (C) 2002, 2003, 2004, 2005, 2006 ! Free Software Foundation, Inc. This file is part of GCC. *************** *** 25,31 **** Public License. */ /* Implemented from the specification included in the Intel C++ Compiler ! User Guide and Reference, version 8.0. */ #ifndef _MMINTRIN_H_INCLUDED #define _MMINTRIN_H_INCLUDED --- 26,32 ---- Public License. */ /* Implemented from the specification included in the Intel C++ Compiler ! User Guide and Reference, version 9.0. */ #ifndef _MMINTRIN_H_INCLUDED #define _MMINTRIN_H_INCLUDED *************** _m_from_int (int __i) *** 69,81 **** #ifdef __x86_64__ /* Convert I to a __m64 object. */ static __inline __m64 __attribute__((__always_inline__)) _mm_cvtsi64x_si64 (long long __i) { return (__m64) __i; } - /* Convert I to a __m64 object. */ static __inline __m64 __attribute__((__always_inline__)) _mm_set_pi64x (long long __i) { --- 70,96 ---- #ifdef __x86_64__ /* Convert I to a __m64 object. */ + + /* Intel intrinsic. */ + static __inline __m64 __attribute__((__always_inline__)) + _m_from_int64 (long long __i) + { + return (__m64) __i; + } + + static __inline __m64 __attribute__((__always_inline__)) + _mm_cvtsi64_m64 (long long __i) + { + return (__m64) __i; + } + + /* Microsoft intrinsic. */ static __inline __m64 __attribute__((__always_inline__)) _mm_cvtsi64x_si64 (long long __i) { return (__m64) __i; } static __inline __m64 __attribute__((__always_inline__)) _mm_set_pi64x (long long __i) { *************** _m_to_int (__m64 __i) *** 97,103 **** } #ifdef __x86_64__ ! /* Convert the lower 32 bits of the __m64 object into an integer. */ static __inline long long __attribute__((__always_inline__)) _mm_cvtsi64_si64x (__m64 __i) { --- 112,133 ---- } #ifdef __x86_64__ ! /* Convert the __m64 object to a 64bit integer. */ ! ! /* Intel intrinsic. */ ! static __inline long long __attribute__((__always_inline__)) ! _m_to_int64 (__m64 __i) ! { ! return (long long)__i; ! } ! ! static __inline long long __attribute__((__always_inline__)) ! _mm_cvtm64_si64 (__m64 __i) ! { ! return (long long)__i; ! } ! ! /* Microsoft intrinsic. */ static __inline long long __attribute__((__always_inline__)) _mm_cvtsi64_si64x (__m64 __i) { Index: gcc/config/i386/xmmintrin.h =================================================================== *** gcc/config/i386/xmmintrin.h (revision 110310) --- gcc/config/i386/xmmintrin.h (revision 110311) *************** *** 1,4 **** ! /* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GCC. --- 1,5 ---- ! /* Copyright (C) 2002, 2003, 2004, 2005, 2006 ! Free Software Foundation, Inc. This file is part of GCC. *************** *** 25,31 **** Public License. */ /* Implemented from the specification included in the Intel C++ Compiler ! User Guide and Reference, version 8.0. */ #ifndef _XMMINTRIN_H_INCLUDED #define _XMMINTRIN_H_INCLUDED --- 26,32 ---- Public License. */ /* Implemented from the specification included in the Intel C++ Compiler ! User Guide and Reference, version 9.0. */ #ifndef _XMMINTRIN_H_INCLUDED #define _XMMINTRIN_H_INCLUDED *************** _mm_cvt_ss2si (__m128 __A) *** 491,498 **** } #ifdef __x86_64__ ! /* Convert the lower SPFP value to a 32-bit integer according to the current ! rounding mode. */ static __inline long long __attribute__((__always_inline__)) _mm_cvtss_si64x (__m128 __A) { --- 492,508 ---- } #ifdef __x86_64__ ! /* Convert the lower SPFP value to a 32-bit integer according to the ! current rounding mode. */ ! ! /* Intel intrinsic. */ ! static __inline long long __attribute__((__always_inline__)) ! _mm_cvtss_si64 (__m128 __A) ! { ! return __builtin_ia32_cvtss2si64 ((__v4sf) __A); ! } ! ! /* Microsoft intrinsic. */ static __inline long long __attribute__((__always_inline__)) _mm_cvtss_si64x (__m128 __A) { *************** _mm_cvtt_ss2si (__m128 __A) *** 529,534 **** --- 539,553 ---- #ifdef __x86_64__ /* Truncate the lower SPFP value to a 32-bit integer. */ + + /* Intel intrinsic. */ + static __inline long long __attribute__((__always_inline__)) + _mm_cvttss_si64 (__m128 __A) + { + return __builtin_ia32_cvttss2si64 ((__v4sf) __A); + } + + /* Microsoft intrinsic. */ static __inline long long __attribute__((__always_inline__)) _mm_cvttss_si64x (__m128 __A) { *************** _mm_cvt_si2ss (__m128 __A, int __B) *** 565,570 **** --- 584,598 ---- #ifdef __x86_64__ /* Convert B to a SPFP value and insert it as element zero in A. */ + + /* Intel intrinsic. */ + static __inline __m128 __attribute__((__always_inline__)) + _mm_cvtsi64_ss (__m128 __A, long long __B) + { + return (__m128) __builtin_ia32_cvtsi642ss ((__v4sf) __A, __B); + } + + /* Microsoft intrinsic. */ static __inline __m128 __attribute__((__always_inline__)) _mm_cvtsi64x_ss (__m128 __A, long long __B) { *************** _mm_store_ss (float *__P, __m128 __A) *** 911,916 **** --- 939,950 ---- *__P = __builtin_ia32_vec_ext_v4sf ((__v4sf)__A, 0); } + static __inline float __attribute__((__always_inline__)) + _mm_cvtss_f32 (__m128 __A) + { + return __builtin_ia32_vec_ext_v4sf ((__v4sf)__A, 0); + } + /* Store four SPFP values. The address must be 16-byte aligned. */ static __inline void __attribute__((__always_inline__)) _mm_store_ps (float *__P, __m128 __A) Index: gcc/config/i386/emmintrin.h =================================================================== *** gcc/config/i386/emmintrin.h (revision 110310) --- gcc/config/i386/emmintrin.h (revision 110311) *************** *** 1,4 **** ! /* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GCC. --- 1,4 ---- ! /* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GCC. *************** *** 25,31 **** Public License. */ /* Implemented from the specification included in the Intel C++ Compiler ! User Guide and Reference, version 8.0. */ #ifndef _EMMINTRIN_H_INCLUDED #define _EMMINTRIN_H_INCLUDED --- 25,31 ---- Public License. */ /* Implemented from the specification included in the Intel C++ Compiler ! User Guide and Reference, version 9.0. */ #ifndef _EMMINTRIN_H_INCLUDED #define _EMMINTRIN_H_INCLUDED *************** _mm_store_sd (double *__P, __m128d __A) *** 158,163 **** --- 158,169 ---- *__P = __builtin_ia32_vec_ext_v2df (__A, 0); } + static __inline double __attribute__((__always_inline__)) + _mm_cvtsd_f64 (__m128d __A) + { + return __builtin_ia32_vec_ext_v2df (__A, 0); + } + static __inline void __attribute__((__always_inline__)) _mm_storel_pd (double *__P, __m128d __A) { *************** _mm_cvtsi128_si32 (__m128i __A) *** 199,204 **** --- 205,218 ---- } #ifdef __x86_64__ + /* Intel intrinsic. */ + static __inline long long __attribute__((__always_inline__)) + _mm_cvtsi128_si64 (__m128i __A) + { + return __builtin_ia32_vec_ext_v2di ((__v2di)__A, 0); + } + + /* Microsoft intrinsic. */ static __inline long long __attribute__((__always_inline__)) _mm_cvtsi128_si64x (__m128i __A) { *************** _mm_cvtsd_si32 (__m128d __A) *** 789,794 **** --- 803,816 ---- } #ifdef __x86_64__ + /* Intel intrinsic. */ + static __inline long long __attribute__((__always_inline__)) + _mm_cvtsd_si64 (__m128d __A) + { + return __builtin_ia32_cvtsd2si64 ((__v2df) __A); + } + + /* Microsoft intrinsic. */ static __inline long long __attribute__((__always_inline__)) _mm_cvtsd_si64x (__m128d __A) { *************** _mm_cvttsd_si32 (__m128d __A) *** 803,808 **** --- 825,838 ---- } #ifdef __x86_64__ + /* Intel intrinsic. */ + static __inline long long __attribute__((__always_inline__)) + _mm_cvttsd_si64 (__m128d __A) + { + return __builtin_ia32_cvttsd2si64 ((__v2df) __A); + } + + /* Microsoft intrinsic. */ static __inline long long __attribute__((__always_inline__)) _mm_cvttsd_si64x (__m128d __A) { *************** _mm_cvtsi32_sd (__m128d __A, int __B) *** 823,828 **** --- 853,866 ---- } #ifdef __x86_64__ + /* Intel intrinsic. */ + static __inline __m128d __attribute__((__always_inline__)) + _mm_cvtsi64_sd (__m128d __A, long long __B) + { + return (__m128d)__builtin_ia32_cvtsi642sd ((__v2df) __A, __B); + } + + /* Microsoft intrinsic. */ static __inline __m128d __attribute__((__always_inline__)) _mm_cvtsi64x_sd (__m128d __A, long long __B) { *************** _mm_cvtsi32_si128 (int __A) *** 1379,1384 **** --- 1417,1430 ---- } #ifdef __x86_64__ + /* Intel intrinsic. */ + static __inline __m128i __attribute__((__always_inline__)) + _mm_cvtsi64_si128 (long long __A) + { + return _mm_set_epi64x (0, __A); + } + + /* Microsoft intrinsic. */ static __inline __m128i __attribute__((__always_inline__)) _mm_cvtsi64x_si128 (long long __A) {
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor