On Tue, Jun 18, 2019 at 12:31:13PM +0000, Joel Hutton wrote:
> from bar.c.263r.combine:
>       Trying 10 -> 12:
>          10: r97:V4SF=float(r96:V4SI)
>             REG_DEAD r96:V4SI
>          12: r98:V4SF=r97:V4SF*r99:V4SF
>             REG_DEAD r97:V4SF
>             REG_EQUAL r97:V4SF*const_vector
>       Failed to match this instruction:
>       (set (reg:V4SF 98 [ D.3424 ])
>           (mult:V4SF (float:V4SF (reg:V4SI 96 [ D.3422 ]))
>               (reg:V4SF 99)))
> I would expect combine to try this pattern:
>       (set (reg:V4SF 98 [ D.3424 ])
>           (mult:V4SF (float:V4SF (reg:V4SI 96 [ D.3422 ]))
>               (const_vector:V4SF [
>                       (const_double:SF 2.5e-1 [0x0.8p-1]) repeated x4
>                               ])))
> 
> but it does not.

Like I said, if combine tried these things, it would replace *every* i3
with its REG_EQUAL note, and that is not likely successful.


Segher

Reply via email to