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



--- Comment #5 from Manjunath S Matti <mmatti.gcc at gmail dot com> 2012-11-30 
09:28:04 UTC ---

The "define_insn_and_split "neon_vld1_dupv2di" contains the DI move pattern 

as second instruction in split. The pattern generated for the move are 

subreg:DI (Reg:VDI) to subreg:DI (Reg:VDI).





Ideally, this pattern should use "*movdi_vfp" in vfp.md file as suggested by 

Ramana. 



However, the "*movdi_vfp" specifies that at least one of the operands should be

placed in register. So, subreg in our move pattern should satisfy the

condition.

However, the condition is not  satisfied and hence the move pattern is not

being

recognized for DImode.



Hence, to allow the register in one of the operands, "neon_vld1_dupv2di"

pattern

was modified to use register in one of the operand. 



Reload condition was removed as a pseudo register is used in one of the

operands. This modification fixed the ICE.



Tested with no extra regressions.

Reply via email to