On 11/22/13 04:03, Bingfeng Mei wrote:
Well, in your modified example, it is still due to jump threading that produce
code of bad control flow that cannot be if-converted and vectorized, though in
tree-vrp pass this time.

Try this
~/install-4.8/bin/gcc vect-ifconv-2.c  -O2 -fdump-tree-ifcvt-details 
-ftree-vectorize  -save-temps -fno-tree-vrp

The code can be vectorized.

Grep "threading" in gcc, it seems that dom and vrp passes are two places that 
apply
jump threading. Any other place? I think we need an target hook to control it.
No no.  The right thing to do is fix if-conversion.

jeff

Reply via email to