[ARM] Use vector wide add for mixed-mode adds

Michael Collison michael.collison@linaro.org
Wed Sep 23 02:40:00 GMT 2015


This is a modified version of the previous patch that removes the 
documentation and read-md.c fixes. These patches have been submitted 
separately and approved.

This patch is designed to address code that was not being vectorized due 
to missing widening patterns in the ARM backend. Code such as:

int t6(int len, void * dummy, short * __restrict x)
{
   len = len & ~31;
   int result = 0;
   __asm volatile ("");
   for (int i = 0; i < len; i++)
     result += x[i];
   return result;
}

Validated on arm-none-eabi, arm-none-linux-gnueabi, 
arm-none-linux-gnueabihf, and armeb-none-linux-gnueabihf.

2015-09-22  Michael Collison  <michael.collison@linaro.org>

     * config/arm/neon.md (widen_<us>sum<mode>): New patterns
     where mode is VQI to improve mixed mode add vectorization.

-- 
Michael Collison
Linaro Toolchain Working Group
michael.collison@linaro.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: tcwg-833-aarch32-v8.patch
Type: text/x-patch
Size: 7719 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20150923/9989c98d/attachment.bin>


More information about the Gcc-patches mailing list