[RS6000] Change maddld match_operand from DI to GPR
authorLi Jia He <helijia@linux.ibm.com>
Wed, 26 Jun 2019 08:23:06 +0000 (08:23 +0000)
committerLi Jia He <helijia@gcc.gnu.org>
Wed, 26 Jun 2019 08:23:06 +0000 (08:23 +0000)
commitfdfbed383e48f9a6fce6ef1e0e0defea0363ac3f
tree5ade5236ca921e53c9aa2e0b78b6a0f188de6f96
parentde80936dbf2ae4a6304a8cbe70e05b483bcc7ee9
[RS6000] Change maddld match_operand from DI to GPR

From PowerPC ISA3.0, the description of `maddld RT, RA.RB, RC` is as follows:
64-bit RA and RB are multiplied and then the RC is signed extend to 128 bits,
and add them together.

We only apply it to 64-bit mode (DI) when implementing maddld.  However, if we
can guarantee that the result of the maddld operation will be limited to 32-bit
mode (SI), we can still apply it to 32-bit mode (SI).

gcc/ChangeLog
2019-06-26  Li Jia He  <helijia@linux.ibm.com>

* config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of
TARGET_POWERPC64.
* config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI
to GPR.

gcc/testsuite/ChangeLog
2019-06-26  Li Jia He  <helijia@linux.ibm.com>

* gcc.target/powerpc/maddld-1.c: New testcase.

From-SVN: r272673
gcc/ChangeLog
gcc/config/rs6000/rs6000.h
gcc/config/rs6000/rs6000.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/maddld-1.c [new file with mode: 0644]