However, when compiling with -ftree-vectorize command-line option, there are cases of COND_EXPR nodes generated and not gimplified (in the sense of my previous sentence). An example of this is gcc.dg/tree-ssa/pr23115.c from the testsuite, when compiled with '-O2 -ftree-vectorize'.

Is it a known issue or is just my assumption about the restriction of COND_EXPRs in GIMPLE wrong?

These are produced by if-conversion. The vectorizer might then take them and convert them to VEC_COND_EXPR (which are the only case in which vector-type comparison operators are allowed -- this is about the semantics, not the grammar). But if the loop is not vectorized, the COND_EXPR remains.

Paolo

Reply via email to