On 7 October 2014 18:38, Jeff Law <l...@redhat.com> wrote: > On 10/06/14 20:57, Joern Rennecke wrote: >> >> On 6 October 2014 19:58, Jeff Law <l...@redhat.com> wrote: >>> >>> What makes word_mode special here? ie, why is special casing for >>> word_mode >>> the right thing to do? >> >> >> The patch does not special-case word mode. The if condition tests if >> smode would >> cover multiple hard registers. >> If that would be the case, smode is replaced with word_mode. > > SO I'll ask another way. Why do you want to change smode to word_mode?
Because SImode covers four hard registers, wheras the intention is to have a single one. (concatn:SI [ (reg:SI 18 r18) (reg:SI 19 r19) (mem/c:QI (plus:HI (reg/f:HI 28 r28) (const_int 43 [0x2b])) [6 S1 A8]) (mem/c:QI (plus:HI (reg/f:HI 28 r28) (const_int 44 [0x2c])) [6 S1 A8]) ]) (see original post) is invalid RTL, and thuis the cause of the later ICE.