public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [0/9] Direct support for loads and stores of interleaved vectors
@ 2011-04-12 13:21 Richard Sandiford
  2011-04-12 13:25 ` [1/9] Generalise vect_create_data_ref_ptr Richard Sandiford
                   ` (9 more replies)
  0 siblings, 10 replies; 27+ messages in thread
From: Richard Sandiford @ 2011-04-12 13:21 UTC (permalink / raw)
  To: gcc-patches

The vectoriser can handle interleaved loads such as:

    for (int i = 0; i < N; i++)
      res[i] = a[2 * i] + a[2 * i + 1];

The vectorised code loads two consecutive vectors from A, then permutes
the elements.  It can handle stores in a similar way.

This patch series adds support for load and store instructions that have
the interleaving "built in", such as NEON's vldN and vstN.  The series
is based on the outline here:

    http://gcc.gnu.org/ml/gcc/2011-03/msg00322.html

except that I'm now using "internal" functions rather than built-ins.

I'll update my internal function patch:

    http://gcc.gnu.org/ml/gcc-patches/2011-04/msg00609.html

after Richard's recent changes and retest, but the patches in this
series are unaffected.

Richard

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2011-04-18 12:59 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-12 13:21 [0/9] Direct support for loads and stores of interleaved vectors Richard Sandiford
2011-04-12 13:25 ` [1/9] Generalise vect_create_data_ref_ptr Richard Sandiford
2011-04-12 13:30   ` Richard Guenther
2011-04-12 13:28 ` [2/9] Reindent parts of vectorizable_load and vectorizable_store Richard Sandiford
2011-04-12 13:33   ` Richard Guenther
2011-04-12 14:39     ` Richard Sandiford
2011-04-12 13:40 ` [3/9] STMT_VINFO_RELATED_STMT handling in vectorizable_store Richard Sandiford
2011-04-17 10:25   ` Ira Rosen
2011-04-12 13:44 ` [4/9] Move power-of-two checks for interleaving Richard Sandiford
2011-04-12 13:57   ` Richard Guenther
2011-04-12 13:59 ` [5/9] Main target-independent support for direct interleaving Richard Sandiford
2011-04-17 14:26   ` Ira Rosen
2011-04-18 11:54   ` Richard Guenther
2011-04-18 11:57     ` Richard Sandiford
2011-04-18 12:54       ` Richard Guenther
2011-04-18 12:58         ` Richard Sandiford
2011-04-18 13:22           ` Richard Guenther
2011-04-12 14:01 ` [6/9] NEON vec_load_lanes and vec_store_lanes patterns Richard Sandiford
2011-04-15 13:20   ` Richard Earnshaw
2011-04-12 14:14 ` [7/9] Testsuite: remove vect_{extract_even_odd,strided}_wide Richard Sandiford
2011-04-15 12:43   ` Richard Guenther
2011-04-12 14:19 ` [8/9] Testsuite: split tests for strided accesses Richard Sandiford
2011-04-15 12:44   ` Richard Guenther
2011-04-12 14:29 ` [9/9] Testsuite: Replace vect_strided with vect_stridedN Richard Sandiford
2011-04-15 12:44   ` Richard Guenther
2011-04-12 14:34 ` [10/9] Add tests for stride-3 accesses Richard Sandiford
2011-04-15 12:45   ` Richard Guenther

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).