Vectorizer question

Tim Prince n8tm@aol.com
Thu May 17 04:09:00 GMT 2012


On 5/16/2012 4:01 PM, Iyer, Balaji V wrote:
> Hello Everyone,
> 	I have a question regarding the vectorizer. In the following code below...
>
> Int func (int x, int y)
> {
> 	If (x==y)
> 		Return (x+y);
> 	Else
> 		Return (x-y);
> }
>
> If we force the x and y to be vectors of vectorlength 4, then will the if-statement get a vector of booleans or does it get 1 boolean that compares 2 very large values? I guess another way to ask is that, will it logically break it up into 4 if-statements or just 1?
>
> Any help is greatly appreciated!
>
> Thanks,
>
> Balaji V. Iyer.
>
> PS. Please CC me in response  so that I can get to it quickly.
Is this about vector extensions to C, or about other languages such as 
C++ or Fortran?  In Fortran, it's definitely an array of logical, in the 
case where the compiler can't optimize it away.  This would more likely 
be written
   return x==y ? x+y : x-y;

-- 
Tim Prince



More information about the Gcc mailing list