From patchwork Wed Jun 6 09:33:23 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: arm: add _mm_empty to mmintrin.h for source compatibility Date: Tue, 05 Jun 2012 23:33:23 -0000 From: Ramana Radhakrishnan X-Patchwork-Id: 163308 Message-Id: To: Matt Turner Cc: gcc-patches@gcc.gnu.org, Nick Clifton , Richard Earnshaw , Paul Brook On 28 May 2012 22:56, Matt Turner wrote: > On Tue, Feb 28, 2012 at 7:13 PM, Ramana Radhakrishnan > wrote: >> On Fri, Feb 24, 2012 at 10:53:35PM -0500, Matt Turner wrote: >>> The x86/amd64 mmintrin.h provides the _mm_empty intrinsic for the 'emms' >>> MMX instruction. Although ARM does not need such an instruction, we >>> should provide an empty _mm_empty function nonetheless for source >>> compatibility. >> >> OK for 4.8 and after your copyright assignment has been >> sorted. >> >> Ramana >> >>> >>> 2012-02-24  Matt Turner   >>> >>>       * config/arm/mmintrin.h (_mm_empty): New. >>> --- >>>  gcc/config/arm/mmintrin.h |    7 +++++++ >>>  1 files changed, 7 insertions(+), 0 deletions(-) >>> >>> diff --git a/gcc/config/arm/mmintrin.h b/gcc/config/arm/mmintrin.h >>> index 2cc500d..ea73bf1 100644 >>> --- a/gcc/config/arm/mmintrin.h >>> +++ b/gcc/config/arm/mmintrin.h >>> @@ -32,6 +32,12 @@ typedef int __v2si __attribute__ ((vector_size (8))); >>>  typedef short __v4hi __attribute__ ((vector_size (8))); >>>  typedef char __v8qi __attribute__ ((vector_size (8))); >>> >>> +/* Provided for source compatibility with MMX.  */ >>> +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) >>> +_mm_empty (void) >>> +{ >>> +} >>> + >>>  /* "Convert" __m64 and __int64 into each other.  */ >>>  static __inline __m64 >>>  _mm_cvtsi64_m64 (__int64 __i) >>> @@ -1248,6 +1254,7 @@ _m_from_int (int __a) >>>  #define _m_psadzbw _mm_sadz_pu8 >>>  #define _m_psadzwd _mm_sadz_pu16 >>>  #define _m_paligniq _mm_align_si64 >>> +#define _m_empty _mm_empty >>>  #define _m_cvt_si2pi _mm_cvtsi64_m64 >>>  #define _m_cvt_pi2si _mm_cvtm64_si64 >>> >>> -- >>> 1.7.3.4 >>> > > Copyright assignment is sorted. Please commit. :) Done now. Only change was to put _m_empty in alphabetical order and this is what I committed. Thanks, Ramana _mm_cvtsi64_m64 (__int64 __i) @@ -1115,6 +1121,7 @@ return (__m64)__a; } +#define _m_empty _mm_empty #define _m_packsswb _mm_packs_pi16 #define _m_packssdw _mm_packs_pi32 #define _m_packuswb _mm_packs_pu16 Index: gcc/config/arm/mmintrin.h =================================================================== --- gcc/config/arm/mmintrin.h (revision 188258) +++ gcc/config/arm/mmintrin.h (revision 188259) @@ -32,6 +32,12 @@ typedef short __v4hi __attribute__ ((vector_size (8))); typedef char __v8qi __attribute__ ((vector_size (8))); +/* Provided for source compatibility with MMX. */ +extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) +_mm_empty (void) +{ +} + /* "Convert" __m64 and __int64 into each other. */ static __inline __m64