> > And this is just recent too. > > > > Anyways here is the reduced testcase: > > long long > > __fixunsdfdi (unsigned hi, unsigned lo) > > { > > return ((unsigned long long) hi << (32)) | lo; > > } > > flow2 is where the diference comes in: > I don't understand why it is not being split at all.
Only the trunk is broken so that leaves the following patches which could have caused it: 2005-11-19 Richard Guenther <[EMAIL PROTECTED]> * fold-const.c (fold_indirect_ref_1): Make sure we fold ARRAY_REFs of constant strings. 2005-11-19 Joseph S. Myers <[EMAIL PROTECTED]> * combine.c (make_compound_operation): Swap operands of commutative operation if necessary before returning. 2005-11-19 Richard Guenther <[EMAIL PROTECTED]> PR middle-end/23294 * fold-const.c (fold_plusminus_mult_expr): New function. (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR cases, remove now unnecessary code. 2005-11-19 Paolo Bonzini <[EMAIL PROTECTED]> * gensupport.c (old_preds): Rename to std_preds, add special field. (struct old_pred_table): Rename to struct std_pred_table, add special field. (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS. (NUM_OLD_SPECIAL_MODE_PREDS): Remove. (init_predicate_table): Adjust, and set along the way whether a predicate is special. -------- I am thinking it is the last one but I have not gone through a hunt yet to make sure but I will do so soon. -- Pinski