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, v8] Vectorized _cpp_clean_line


On 08/22/2010 02:48 AM, Andi Kleen wrote:
> Thanks. To be honest I'm not sure there are enough non SSE2 x86 boxes
> around used for compiling that makes the MMX variant worth keeping around.
> Perhaps with only three alternatives the if would work again.
> But it's nice that you wrote it.

Honestly, the code generation didn't look great even with just
SSE2 + SSE4.2.  That probably points to a problem with too much
hoisting.

That said, it's pretty hard to measure things at this point, 
and it just feels cleaner to do via indirection.

>> +      if (__builtin_expect (end - s < 16, 0)
>> +	  && __builtin_expect ((si & 0xfff) > 0xff0, 0))
> 
> OT but I thought __builtin_expect supported &&. Not true?

I really don't know what happens if you put the B_E on the outside.

>> +      /* ??? The builtin doesn't understand that the PCMPESTRI read from
> 
> Can we fix the builtin?

Possibly.

> I'm wondering, could we add a new builtin that supports returning 
> the flags directly? 

Well, we have a builtin that returns the flags, but not the flags
and the value in ecx at the same time.  I thought about trying to
add that, but didn't get far.


r~


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