On 11/23/2016 11:18 AM, Paolo Bonzini wrote:


On 23/11/2016 10:35, Eric Botcazou wrote:
I now wonder
whether this also matters for !WORD_REGISTER_OPERATIONS targets, e.g. x86:

         (set (reg1:DI) ...
         ...
         (set (reg1:QI) (expression:QI))
         ...
         (set (reg2:DI) (any_extend:DI (reg1:QI)))
         ...
         (use (reg1:DI))

where the use reads well-defined upper bits from the very first set.

Does it really do that with a (set (reg1:QI)), as opposed to a
(set (strict_low_part (subreg:QI (reg1:DI)))?

It would need strict_low_part unless we're dealing with subwords. I think the patch should maybe check for that in the !W_R_O case.

Does WORD_REGISTER_OPERATIONS really buy much on targets that use it? This sort of situation seems very surprising and unfortunate.


Bernd

Reply via email to