]> git.ipfire.org Git - thirdparty/gcc.git/commit
PR target/96558: Only call ix86_expand_clear with GENERAL_REGS.
authorRoger Sayle <roger@nextmovesoftware.com>
Wed, 12 Aug 2020 21:34:29 +0000 (22:34 +0100)
committerGiuliano Belinassi <giuliano.belinassi@usp.br>
Mon, 17 Aug 2020 18:08:07 +0000 (15:08 -0300)
commitc539c74c7eeea1c9a05230e7aac887fd3b2c374a
tree46620ff2dab1c5fabdb47b3044ce54121cbc60f3
parent020f4589fa9996a65ffb785f52d27398293043ce
PR target/96558: Only call ix86_expand_clear with GENERAL_REGS.

The following patch tightens the predicates of the peephole2 from my recent
"Integer min/max improvements patch" to only hoist clearing a register when
that register is a general register.  Calling ix86_expand_clear with regs
other than GENERAL_REGS is not supported.

2020-08-12  Roger Sayle  <roger@nextmovesoftware.com>
    Uroš Bizjak  <ubizjak@gmail.com>

gcc/ChangeLog
PR target/96558
* config/i386/i386.md (peephole2): Only reorder register clearing
instructions to allow use of xor for general registers.

gcc/testsuite/ChangeLog
PR target/96558
* gcc.dg/pr96558.c: New test.
gcc/config/i386/i386.md
gcc/testsuite/gcc.dg/pr96558.c [new file with mode: 0644]