NEON vectorization improvements - preliminary notes

Julian Brown julian at codesourcery.com
Wed Sep 15 10:37:21 BST 2010


Hi,

In case this is useful in its current (unfinished!) form: here are some
notes I made whilst looking at a couple of the items listed for CS308
here:

  https://wiki.linaro.org/Internal/Contractors/CodeSourcery

Namely:

  * automatic vector size selection (it's currently selected by command
    line switch)

    * also consider ARMv6 SIMD vectors (see CS309)

  * mixed size vectors (using to most appropriate size in each case)

  * ensure that all gcc vectorizer pattern names are implemented in the
    machine description (those that can be).

I've not even started on looking at:

  * loops with more than two basic blocks (caused by if statements
    (anything else?))

  * use of specialized load instructions

  * Conversly, perhaps identify NEON capabilities not covered by GCC
    patterns, and add them to gcc (e.g. vld2/vld3/vld4 insns)

  * any other missed opportunities (identify common idioms and teach the
    compiler to deal with them)

I'm not likely to have time to restart work on the vectorization study
for at least a couple of days, because of other CodeSourcery work. But
perhaps the attached will still be useful in the meantime.

Do you (Ira) have access to the ARM ISA docs detailing the NEON
instructions?

Cheers,

Julian
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: CS308-vectorization-improvements.txt
Url: http://lists.linaro.org/pipermail/linaro-toolchain/attachments/20100915/5e5dfd7e/attachment.txt 


More information about the linaro-toolchain mailing list