This is the mail archive of the gcc-bugs@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]

[Bug target/55426] gcc.target/arm/neon-vld1_dupQ.c ICEs on armeb


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.


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