Ping.
Thanks,
Kyrill
On 13/11/15 11:50, Kyrill Tkachov wrote:
Ping.
https://gcc.gnu.org/ml/gcc-patches/2015-11/msg00686.html
Thanks,
Kyrill
On 06/11/15 17:05, Kyrill Tkachov wrote:
Hi all,
This patch introduces support for the smmul, smmla and smmls instructions that
appear in armv6 architecture levels
and higher. To quote the SMMUL description from the ARMARM:
"Signed Most Significant Word Multiply multiplies two signed 32-bit values,
extracts the most significant 32 bits of
the result, and writes those bits to the destination register."
The smmla and smmls are the multiply-accumulate and multiply-subtract
extensions of that multiply.
There also exists an smmulr variant that rounds the result rather than
truncating it.
However, when I tried adding patterns for those forms I got an LRA ICE that I
was not able to figure out.
I'll try to find a testcase for that, but in the meantime there's no reason to
not have patterns for the
non-rounding variants.
Bootstrapped and tested on arm-none-linux-gnueabihf.
I've seen this trigger in quite a few places in SPEC2006 where it always made
the code better.
Ok for trunk?
Thanks,
Kyrill
2015-11-06 Kyrylo Tkachov <kyrylo.tkac...@arm.com>
PR target/49526
* config/arm/arm.md (*mulsidi3si_v6): New pattern.
(*mulsidi3siaddsi_v6): Likewise.
(*mulsidi3sisubsi_v6): Likewise.
* config/arm/predicates.md (subreg_highpart_operator):
New predicate.
2015-11-06 Kyrylo Tkachov <kyrylo.tkac...@arm.com>
PR target/49526
* gcc.target/arm/pr49526_1.c: New test.
* gcc.target/arm/pr49526_2.c: Likewise.
* gcc.target/arm/pr49526_3.c: Likewise.