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]

RE: [PATCH] Wire-up missing ARM iwmmxt intrinsics (bugs 35294, 36798, 36966)


At 2011-08-19 12:18:10,"Matt Turner" <mattst88@gmail.com> wrote:> Subject: Re: 
> 
> On Fri, Aug 19, 2011 at 12:13 AM, Matt Turner <mattst88@gmail.com> wrote:
> > Hi,
> >
> > Attached is a patch based on gcc-4.6.1 that wires-up missing ARM
> > iwmmxt intrinsics. Without it, gcc is completely useless when it comes
> > to using a large portion of the intrinsics documented on this page:
> > http://gcc.gnu.org/onlinedocs/gcc/ARM-iWMMXt-Built_002din-Functions.html
> >
> > The patch is based on the work of <serowk@yandex.ru> in bug 35294.
> >
> > I do not know why the check_opsmode hack is necessary.

Hi,

I think check_opsmode in this patch is used to solve something that could be solved by
-  gcc_assert (GET_MODE (op0) == mode0 && GET_MODE (op1) == mode1);
+  gcc_assert ((GET_MODE (op0) == mode0 || GET_MODE (op0) == VOIDmode)
+	      && (GET_MODE (op1) == mode1 || GET_MODE (op1) == VOIDmode));
in my patch.
For example, in the shift intrinsics, the shift count could be either a variable, or a CONST_INT which has VOIDmode.

> >I also do not know if this wires up all the missing intrinsics. 

I'm afraid not. Trunk misses all iWMMXt2 intrinsics and the bugs could be found everywhere since it is lack of maintenance for a long time.

> > I have seen much more extensive patches from Xinyu Qi, but I do not
> > suppose that they will be available in gcc 4.6.

The patches I submitted have some conflict with 4.6 code base.

Thanks,
Xinyu

> >
> > Thanks,
> > Matt Turner
> 
> <Sent to correct @marvell address>




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