combine: Don't mess with subregs of floating point (PR78590)
authorSegher Boessenkool <segher@kernel.crashing.org>
Wed, 30 Nov 2016 08:24:59 +0000 (09:24 +0100)
committerSegher Boessenkool <segher@gcc.gnu.org>
Wed, 30 Nov 2016 08:24:59 +0000 (09:24 +0100)
commit4a954e068579e326c53bd845a13fbd58ae5a1f80
treef67d78544fb3965b14900a2498c6c72d2a3180b7
parent053d5e0cdd2f9d08b1a7a4275b40d2930936d9f6
combine: Don't mess with subregs of floating point (PR78590)

PR78590 shows a problem in change_zero_ext, where we change a zero_extend
of a subreg to a logical and.  We should only do this if the thing we are
taking the subreg of is a scalar integer, otherwise we will take a subreg
of (e.g.) a float in a different size, which is nonsensical and hits an
assert.

PR rtl-optimization/78590
* combine.c (change_zero_ext): Transform zero_extend of subregs only
if the subreg_reg is a scalar integer mode.

From-SVN: r242999
gcc/ChangeLog
gcc/combine.c