[LLVMdev] A few inline assembly questions

Bill Wendling
Mon, 19 Mar 2007 10:44:29 -0000

On Mar 18, 2007, at 5:14 PM, Chris Lattner wrote:

>> 2) i have code utilizing whatever vector insructions i can get my
>> hands on to
>> speed up some very common rendering operations. llvm-gcc doesn't
>> seem to
>> support mmx intrinsics which makes Qt compiled with llvm-gcc quite
>> a bit
>> slower when it comes to graphics.
>
> As Anton mentioned, work is actively underway to add MMX intrinsic
> support.  Right now we have very basic support for a few simple
> operations
> like add and multiply.  Bill Wendling is the one working on this, I
> forwarded your testcase to him so that he can focus on those
> operations
> first.
>
Got 'em. :-) I think my schedule's slightly more open this week, so I
should be able to add the missing operators easily.

>> test2.cpp shows in essence what we're doing
>> in Qt. we basically have a very simple class that defines simple
>> static
>> methods like negate/add/byte_mul/interpolate_pixel. now the
>> question is if
>> there is any way of getting code like this to utilize vector
>> instructions
>> with llvm-gcc. i wouldn't mind having llvm specific path there as
>> long as it
>> works.
>
> Absolutely.  Until now, there hasn't been anything pushing for MMX
> intrinsic support (most clients we've worked with so far use SSE2
> instead
> of MMX).  LLVM definitely needs to support the MMX intrinsics, when
> Bill
> has your testcase working, I'd appreciate it if you could try Qt
> with MMX
> enabled again.  I filed http://llvm.org/PR1260 to track your specific
> testcase (PR1222 is the bug for MMX intrinsics in general).  If you
> want
> to see when this is completed, it is easiest to CC yourself on the
> bug.
>
Also, if you could do some performance comparisons between GCC and
LLVM, it would be a good measurement of how we're doing. From the few
instructions I've added, we tend to generate better code. :-)

-bw