public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "jakub at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2} Date: Tue, 20 Mar 2012 09:26:00 -0000 [thread overview] Message-ID: <bug-52607-4-YdLJkBp7tk@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-52607-4@http.gcc.gnu.org/bugzilla/> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2012-03-20 Ever Confirmed|0 |1 --- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-03-20 09:17:41 UTC --- Testing the 3 patches now (AVX2 improvements, expand_vselect and #c8 with further comments). For 3/4 insn sequences, I agree with the proposal to attempt to handle d->op0 == d->op1 cross-lane shuffles as two operand in-lane shuffles after vperm2f128 swapping the lanes. Two insn expanders could be groupped into expand_vec_perm_2 and three insn expanders into expand_vec_perm_3. We need to write some further 2 and 3 insn in-lane expanders though, as shown by: typedef double V4DF __attribute__((vector_size (4 * sizeof (double)))); typedef long V4DI __attribute__((vector_size (4 * sizeof (long)))); #define A(a, b, c, d) \ __attribute__((noinline, noclone)) V4DF \ f##a##b##c##d (V4DF x, V4DF y) \ {\ V4DI m = { a, b, c, d }; \ return __builtin_shuffle (x, y, m); \ } #define B(b, c, d) A(0, b, c, d) A(1, b, c, d) A(4, b, c, d) A(5, b, c, d) #define C(c, d) B(0, c, d) B(1, c, d) B(4, c, d) B(5, c, d) #define D(d) C(2, d) C(3, d) C(6, d) C(7, d) #define E D(2) D(3) D(6) D(7) E int main () { V4DF x = { 0.5, 1.5, 2.5, 3.5 }, y = { 4.5, 5.5, 6.5, 7.5 }, z; #undef A #define A(a, b, c, d) \ z = f##a##b##c##d (x, y); \ if (z[0] != a + .5 || z[1] != b + .5 || z[2] != c + .5 || z[3] != d + .5) \ __builtin_abort (); E return 0; }
next prev parent reply other threads:[~2012-03-20 9:18 UTC|newest] Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-03-17 1:06 [Bug target/52607] New: " marc.glisse at normalesup dot org 2012-03-17 4:58 ` [Bug target/52607] " marc.glisse at normalesup dot org 2012-03-17 19:55 ` marc.glisse at normalesup dot org 2012-03-17 20:11 ` marc.glisse at normalesup dot org 2012-03-17 22:17 ` marc.glisse at normalesup dot org 2012-03-18 14:51 ` marc.glisse at normalesup dot org 2012-03-18 20:13 ` marc.glisse at normalesup dot org 2012-03-19 11:16 ` jakub at gcc dot gnu.org 2012-03-19 17:19 ` jakub at gcc dot gnu.org 2012-03-19 19:00 ` marc.glisse at normalesup dot org 2012-03-19 19:29 ` jakub at gcc dot gnu.org 2012-03-19 20:09 ` rth at gcc dot gnu.org 2012-03-20 9:26 ` jakub at gcc dot gnu.org [this message] 2012-03-20 16:27 ` jakub at gcc dot gnu.org 2012-03-20 16:56 ` jakub at gcc dot gnu.org 2012-03-20 19:05 ` marc.glisse at normalesup dot org 2012-03-20 19:09 ` marc.glisse at normalesup dot org 2012-03-20 22:03 ` marc.glisse at normalesup dot org 2012-03-25 14:09 ` marc.glisse at normalesup dot org 2012-03-27 16:59 ` jakub at gcc dot gnu.org 2012-03-27 17:25 ` jakub at gcc dot gnu.org 2012-03-27 18:23 ` marc.glisse at normalesup dot org 2012-03-27 21:21 ` marc.glisse at normalesup dot org 2012-03-29 13:41 ` rth at gcc dot gnu.org 2012-03-29 14:20 ` marc.glisse at normalesup dot org 2012-03-31 9:49 ` marc.glisse at normalesup dot org 2012-03-31 14:12 ` marc.glisse at normalesup dot org 2012-04-09 16:51 ` marc.glisse at normalesup dot org 2012-04-11 16:49 ` marc.glisse at normalesup dot org 2012-04-11 20:35 ` marc.glisse at normalesup dot org 2012-05-14 21:29 ` glisse at gcc dot gnu.org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-52607-4-YdLJkBp7tk@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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).