Re: codegen bug with SSE autovectorization
Re: codegen bug with SSE autovectorization
- Subject: Re: codegen bug with SSE autovectorization
- From: Devang Patel <email@hidden>
- Date: Thu, 15 Jun 2006 10:13:25 -0700
On Jun 15, 2006, at 7:57 AM, Elron Yellin wrote:
There is a codegen bug in Apple's gcc with SSE autovectorization.
Should the compiler ever decide to vectorize a loop with logical shift
operations, it will generate the wrong shift constant. The problem is
that the SSE2 logical shift instruction takes a single 128 bit shift
value, but Apple's gcc is treating the shift operand as a vector of N
shift values. So for the case of a double word shift, instead of
shifting by, eg, 0x12 it shifts by 0x00000012000000120000001200000012,
and the result is of course always zero.
Apparently this bug does not exist in the FSF gcc.
We have back ported some of the code from FSF GCC 4.1 to Apple GCC
(which is based on FSF GCC 4.0.x). We have not back port everything
and some of the bugs are fixed in FSF GCC after we did back port. We
will get this fix when we sync our GCC sources with newer version of
FSF GCC.
-
Devang
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden