RE: Vectorizer question

2012-05-17 Thread Bingfeng Mei
If both X & Y are vectors, GCC will report error (at least on our port based on 4.5) as invalid operands to ==. Not sure if it is extended for 4.7. Bingfeng -Original Message- From: gcc-ow...@gcc.gnu.org [mailto:gcc-ow...@gcc.gnu.org] On Behalf Of Iyer, Balaji V Sent: 17 May 2012 00:01

Re: Vectorizer question

2012-05-16 Thread Tim Prince
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 ve

Re: Vectorizer question: DIV to RSHIFT conversion

2011-12-13 Thread Kirill Yukhin
Great! Thanks, K > > Let me hack up a quick pattern recognizer for this... > >        Jakub

Re: Vectorizer question: DIV to RSHIFT conversion

2011-12-13 Thread Jakub Jelinek
On Tue, Dec 13, 2011 at 05:42:16PM +0400, Kirill Yukhin wrote: > The full case attached. > > Jakub, you are right, we have to convert signed ints into something a > bit more tricky. > BTW, here is output for that cases from Intel compiler: Ah, so that matches to do j / 2 in the pattern recognizer

Re: Vectorizer question: DIV to RSHIFT conversion

2011-12-13 Thread Kirill Yukhin
The full case attached. Jakub, you are right, we have to convert signed ints into something a bit more tricky. BTW, here is output for that cases from Intel compiler: vpxor %ymm1, %ymm1, %ymm1 #184.23 vmovdqu .L_2il0floatpacket.12(%rip), %ymm0

Re: Vectorizer question: DIV to RSHIFT conversion

2011-12-13 Thread Jakub Jelinek
On Tue, Dec 13, 2011 at 02:07:11PM +0100, Richard Guenther wrote: > > Hi guys, > > While looking at Spec2006/401.bzip2 I found such a loop: > > for (i = 1; i <= alphaSize; i++) { > > j = weight[i] >> 8; > > j = 1 + (j / 2); > > weight[i] = j << 8; > > } It would be helpfu

Re: Vectorizer question: DIV to RSHIFT conversion

2011-12-13 Thread Richard Guenther
On Tue, 13 Dec 2011, Kirill Yukhin wrote: > Hi guys, > While looking at Spec2006/401.bzip2 I found such a loop: > for (i = 1; i <= alphaSize; i++) { > j = weight[i] >> 8; > j = 1 + (j / 2); > weight[i] = j << 8; > } > > Which is not vectorizeble (using Intel's AVX2) beca

Re: vectorizer question

2008-08-18 Thread VandeVondele Joost
It would be nice to have a stand-alone testcase for this, so please file a bugreport. I've opened PR37150 for this. Thanks, Joost

Re: vectorizer question

2008-08-18 Thread Richard Guenther
2008/8/18 VandeVondele Joost <[EMAIL PROTECTED]>: > > The attached testcase yields (on a core2 duo, gcc trunk): > >> gfortran -O3 -ftree-vectorize -ffast-math -march=native test.f90 >> time ./a.out > > real0m3.414s > >> ifort -xT -O3 test.f90 >> time ./a.out > > real0m1.556s > > The assemb