> + /* Now we have matched the statement pattern > + > + rhs1 = (T1)x; > + rhs2 = (T1)y; > + op_result = rhs1 OP rhs2; > + lhs = (T2)op_result;
Just a note that the patch I proposed for the vectorizer ( http://gcc.gnu.org/ml/gcc-patches/2011-07/msg01472.html) also handles constants, multiple statements (i.e., op_result doesn't have to be promoted itself, but the sequence needs to end up with a promotion), and also it may use an intermediate type for OP. The tests in my patch don't match the pattern this patch detects. Thanks, Ira