rs6000.md (f32_vsx): New mode attributes to refine the constraints used on 32/64...
authorMichael Meissner <meissner@linux.vnet.ibm.com>
Tue, 23 Sep 2014 17:11:07 +0000 (17:11 +0000)
committerMichael Meissner <meissner@gcc.gnu.org>
Tue, 23 Sep 2014 17:11:07 +0000 (17:11 +0000)
commite8ee40544aef309d4225852dda191bf0f986f761
treeccabde2df6de7d1184bd037e76d38e61d0cadd9f
parent10b8fa2ed23366f5a9224a050db24b5f9d1236ab
rs6000.md (f32_vsx): New mode attributes to refine the constraints used on 32/64-bit floating point...

2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.md (f32_vsx): New mode attributes to
refine the constraints used on 32/64-bit floating point moves.
(f32_av): Likewise.
(f64_vsx): Likewise.
(f64_dm): Likewise.
(f64_av): Likewise.
(BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
(BOOL_REGS_OP1): Likewise.
(BOOL_REGS_OP2): Likewise.
(BOOL_REGS_UNARY): Likewise.
(mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
32/64-bit floating point moves.  Do not use wa, instead use ww/ws
for moves involving VSX registers.  Do not use constraints that
target VSX registers for decimal types.
(mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
(mov<mode>_hardfloat64, DFmode/DDmode): Likewise.

From-SVN: r215521
gcc/ChangeLog
gcc/config/rs6000/rs6000.md