This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] for PR 26449


Hello,

in this PR, we try to force

(lshiftrt:TI (subreg:TI (reg:V4SI 71 [ vect_cst_.47 ]) 0)
        (const_int 32 [0x20]))

to operand, which fails since there is no optab for TI mode LSHIFTRT.
There are several possible solutions, the conservative one being to just
fail in this case.  Bootstrapped & regtested on i686.

Zdenek

	PR rtl-optimization/26449
	* loop-invariant.c (move_invariant_reg): Fail if force_operand fails.

Index: loop-invariant.c
===================================================================
*** loop-invariant.c	(revision 114387)
--- loop-invariant.c	(working copy)
*************** move_invariant_reg (struct loop *loop, u
*** 1178,1183 ****
--- 1178,1188 ----
  	{
  	  start_sequence ();
  	  op = force_operand (SET_SRC (set), reg);
+ 	  if (!op)
+ 	    {
+ 	      end_sequence ();
+ 	      goto fail;
+ 	    }
  	  if (op != reg)
  	    emit_move_insn (reg, op);
  	  seq = get_insns ();


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]