------- Comment #18 from dje at gcc dot gnu dot org  2008-05-02 17:36 -------
Yes, the patch works, modulo typos.

  if (GET_CODE (ops[n_ops - 1].op) == CONST_INT)
    i = n_ops - 2;
  else
    i = n_ops - 1;

  if (i >= 1
      && ops[i].neg
      && !ops[i - 1].neg
      && CONSTANT_P (ops[i].op)
      && GET_CODE (ops[i].op) == GET_CODE (ops[i - 1].op))
    {
      ops[i - 1].op = gen_rtx_MINUS (mode, ops[i - 1].op, ops[i].op);
      ops[i - 1].op = gen_rtx_CONST (mode, ops[i - 1].op);
      if (i < n_ops - 1)
        ops[i] = ops[i + 1];
      n_ops--;
    }

plus_constant strips the inner CONST and the earlier version also wrapped
everything in CONST.

Does it make sense to group any two RTX_CONST_OBJ together of not the same
type?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36090

Reply via email to