[gnu.gcc.bug] more patches to loop.c

self@BAYES.ARC.NASA.GOV (Matthew Self) (04/01/89)

  Here are some more patches to loop.c which remove the MINUS vs.
COMPARE bugs found by Michael Meissner.  This patch combines the
patches from my previous posting (revised) and a patch by Jim Wilson.

*** loop.c.tar	Fri Mar 31 15:33:33 1989
--- loop.c	Fri Mar 31 15:34:44 1989
***************
*** 4104,4109 ****
  	  if (GET_CODE (SET_SRC (PATTERN (p))) == REG)
  	    tested_before_loop = SET_SRC (PATTERN (p));
! 	  else if (GET_CODE (SET_SRC (PATTERN (p))) == MINUS
! 		   && GET_CODE (XEXP (SET_SRC (PATTERN (p)), 1)) == REG
  		   && XEXP (SET_SRC (PATTERN (p)), 1) == const0_rtx)
  	    tested_before_loop = XEXP (SET_SRC (PATTERN (p)), 0);
--- 4104,4109 ----
  	  if (GET_CODE (SET_SRC (PATTERN (p))) == REG)
  	    tested_before_loop = SET_SRC (PATTERN (p));
! 	  else if (GET_CODE (SET_SRC (PATTERN (p))) == COMPARE
! 		   && GET_CODE (XEXP (SET_SRC (PATTERN (p)), 0)) == REG
  		   && XEXP (SET_SRC (PATTERN (p)), 1) == const0_rtx)
  	    tested_before_loop = XEXP (SET_SRC (PATTERN (p)), 0);
***************
*** 4486,4490 ****
  	{
  	  /* Replace biv with the giv's reduced register.  */
! 	  SET_SRC (PATTERN (insn)) = gen_rtx (MINUS, GET_MODE (v->new_reg),
  					      v->new_reg, v->add_val);
  
--- 4486,4490 ----
  	{
  	  /* Replace biv with the giv's reduced register.  */
! 	  SET_SRC (PATTERN (insn)) = gen_rtx (COMPARE, GET_MODE (v->new_reg),
  					      v->new_reg, v->add_val);