This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] arm: add _mm_empty to mmintrin.h for source compatibility
- From: Ramana Radhakrishnan <ramana dot radhakrishnan at linaro dot org>
- To: Matt Turner <mattst88 at gmail dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Nick Clifton <nickc at redhat dot com>, Richard Earnshaw <richard dot earnshaw at arm dot com>, Paul Brook <paul at codesourcery dot com>
- Date: Wed, 6 Jun 2012 10:33:23 +0100
- Subject: Re: [PATCH] arm: add _mm_empty to mmintrin.h for source compatibility
- References: <1330142015-26244-1-git-send-email-mattst88@gmail.com> <1330142015-26244-2-git-send-email-mattst88@gmail.com> <20120229001359.GB7636@e102742> <CAEdQ38FZkQ5yVBLG0MC+A=bNn6_go18msj8YiE1pJjiU7tBxew@mail.gmail.com>
On 28 May 2012 22:56, Matt Turner <mattst88@gmail.com> wrote:
> On Tue, Feb 28, 2012 at 7:13 PM, Ramana Radhakrishnan
> <ramana.radhakrishnan@linaro.org> 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 ?<mattst88@gmail.com>
>>>
>>> ? ? ? * 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
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
_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