This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, rs6000] (3/3) Fix mulv4si3 and mulv8hi3 patterns for little endian
- From: David Edelsohn <dje dot gcc at gmail dot com>
- To: Bill Schmidt <wschmidt at linux dot vnet dot ibm dot com>
- Cc: Richard Sandiford <rsandifo at linux dot vnet dot ibm dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 5 Nov 2013 21:43:42 -0500
- Subject: Re: [PATCH, rs6000] (3/3) Fix mulv4si3 and mulv8hi3 patterns for little endian
- Authentication-results: sourceware.org; auth=none
- References: <1383543684 dot 6275 dot 312 dot camel at gnopaine> <874n7sjhh5 dot fsf at sandifor-thinkpad dot stglab dot manchester dot uk dot ibm dot com> <1383582573 dot 6275 dot 322 dot camel at gnopaine> <1383611631 dot 6275 dot 335 dot camel at gnopaine>
On Mon, Nov 4, 2013 at 7:33 PM, Bill Schmidt
<wschmidt@linux.vnet.ibm.com> wrote:
> Hi,
>
> Here's a revised version of this patch according to Richard's
> suggestions. It differs from the previous version only in the method
> used to ensure vmulouh is generated; we now call the new
> gen_altivec_vmulouh to accomplish this.
>
> Bootstrapped and tested on powerpc64{,le}-unknown-linux-gnu with no
> regressions. Is this ok for trunk?
>
> Thanks,
> Bill
>
>
> 2013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
>
> * config/rs6000/altivec.md (mulv4si3): Ensure we generate vmulouh
> for both big and little endian.
> (mulv8hi3): Swap input operands for merge high and merge low
> instructions for little endian.
Okay.
It's so annoying that sometimes vec mult odd for LE uses vmuleuh and
sometimes uses vmulouh depending on the context and the algorithm.
This unfortunately produces assembly code that is impossible to
follow.
Thanks, David