On Sun, Dec 1, 2019 at 6:55 PM Jakub Jelinek <ja...@redhat.com> wrote:
>
> On Sun, Dec 01, 2019 at  03:43:37PM +0100, Jan Hubicka wrote:
> > >     PR target/92549
> > >     * config/i386/i386.md (peephole2 for *swap<mode>): New peephole2.
> > >
> > >     * gcc.target/i386/pr92549.c: New test.
> >
> > It is very hard to get a testcase, unforutnately, but I got the
> > following (locally non-reproducible) failure while building firefox with
> > LTO+FDO:
> >
> > [task 2019-12-01T14:38:04.166Z] 14:38:04     INFO -   1080 | }
> > [task 2019-12-01T14:38:04.166Z] 14:38:04     INFO -        |
> > [task 2019-12-01T14:38:04.166Z] 14:38:04     INFO -  (insn 5555 1389 1390 
> > 41 (parallel [
> > [task 2019-12-01T14:38:04.166Z] 14:38:04     INFO -              (set 
> > (reg:SI 24 xmm4 [orig:187 SR.3778 ] [187])
> > [task 2019-12-01T14:38:04.166Z] 14:38:04     INFO - (reg:SI 23 xmm3 
> > [orig:104 SR.3780 ] [104]))
> > [task 2019-12-01T14:38:04.166Z] 14:38:04     INFO -              (set 
> > (reg:SI 23 xmm3 [orig:104 SR.3780 ] [104])
> > [task 2019-12-01T14:38:04.166Z] 14:38:04     INFO - (reg:SI 24 xmm4 
> > [orig:187 SR.3778 ] [187]))
> > [task 2019-12-01T14:38:04.166Z] 14:38:04     INFO -          ])
> > "/builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/WritingModes.h":1117:0
> > 78 {*swapsi}
> > [task 2019-12-01T14:38:04.167Z] 14:38:04     INFO -       (nil))
> > [task 2019-12-01T14:38:04.167Z] 14:38:04     INFO -  during RTL pass: rnreg
> >
> > I guess the problem is that there is no xchange in SSE instruction set,
> > so peephle needs to be more restrictive?
>
> I'll have a look tomorrow.

general_reg_operand should be used in the pattern.

Uros.

Reply via email to