[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-05-14 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #30 from Marc Glisse glisse at gcc dot gnu.org 2012-05-14 20:19:39 UTC --- Author: glisse Date: Mon May 14 20:19:30 2012 New Revision: 187479 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187479 Log: 2012-05-14 Marc Glisse

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-04-11 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #28 from Marc Glisse marc.glisse at normalesup dot org 2012-04-11 16:48:47 UTC --- A difficulty I hadn't foreseen is that the code that canonicalizes permutations (and in particular checks if one of the operands is unused) is in

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-04-11 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #29 from Marc Glisse marc.glisse at normalesup dot org 2012-04-11 20:35:00 UTC --- Created attachment 27136 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27136 V4DF generic shuffle A patch (independent from the others)

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-04-09 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #27 from Marc Glisse marc.glisse at normalesup dot org 2012-04-09 16:50:47 UTC --- Notes to self (or other): - Intel's SDE makes it possible to test without appropriate hardware; - for V4DF shuffles, there seems to be a very simple

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-31 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #25 from Marc Glisse marc.glisse at normalesup dot org 2012-03-31 09:37:51 UTC --- The test for AVX2 in expand_vec_perm_interleave2 might be too strict. For the V4DF shuffle 4,0,2,6, removing that check lets the compiler generate a

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-31 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 Marc Glisse marc.glisse at normalesup dot org changed: What|Removed |Added Attachment #26979|0 |1

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-29 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 Richard Henderson rth at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-29 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #24 from Marc Glisse marc.glisse at normalesup dot org 2012-03-29 14:19:11 UTC --- (In reply to comment #23) (In reply to comment #18) + if (!d-testing_p) +dsecond.target = gen_reg_rtx (dsecond.vmode); + dfirst.op1 =

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-27 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Status|NEW |UNCONFIRMED

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-27 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #20 from Jakub Jelinek jakub at gcc dot gnu.org 2012-03-27 17:10:00 UTC --- Thanks for working on this. I don't like much the calls to ix86_expand_vec_perm_const_1, if you are looking for exactly two insn permutations, then really

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-27 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #21 from Marc Glisse marc.glisse at normalesup dot org 2012-03-27 18:21:39 UTC --- (In reply to comment #20) I don't like much the calls to ix86_expand_vec_perm_const_1, if you are looking for exactly two insn permutations,

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-27 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #22 from Marc Glisse marc.glisse at normalesup dot org 2012-03-27 20:57:16 UTC --- (In reply to comment #20) Lastly for each routine it is desirable to think whether it might be useful for other vector modes (likely 32-byte only)

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-25 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 Marc Glisse marc.glisse at normalesup dot org changed: What|Removed |Added Attachment #26938|0 |1

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-20 Thread jakub at gcc dot gnu.org
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

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #13 from Jakub Jelinek jakub at gcc dot gnu.org 2012-03-20 16:26:08 UTC --- Author: jakub Date: Tue Mar 20 16:25:54 2012 New Revision: 185577 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=185577 Log: PR target/52607 *

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #14 from Jakub Jelinek jakub at gcc dot gnu.org 2012-03-20 16:51:50 UTC --- Author: jakub Date: Tue Mar 20 16:51:41 2012 New Revision: 185579 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=185579 Log: PR target/52607 *

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-20 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #15 from Marc Glisse marc.glisse at normalesup dot org 2012-03-20 19:00:32 UTC --- If I am not mistaken, the V8SF shuffle 22022246 is doable by a vperm2f128 that takes 01234567 to 01230123, followed by a vshufps (mask 138 maybe). Was

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-20 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #16 from Marc Glisse marc.glisse at normalesup dot org 2012-03-20 19:05:22 UTC --- (In reply to comment #15) If I am not mistaken, the V8SF shuffle 22022246 is doable by a vperm2f128 that takes 01234567 to 01230123, followed by a

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-20 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 Marc Glisse marc.glisse at normalesup dot org changed: What|Removed |Added Attachment #26912|0 |1

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2012-03-19 11:13:52 UTC --- Created attachment 26915 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=26915 gcc48-pr52607.patch AVX2 changes. This improves: 1) for {x, x, x, x}

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added CC||jakub at gcc dot

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-19 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #9 from Marc Glisse marc.glisse at normalesup dot org 2012-03-19 18:29:50 UTC --- (In reply to comment #8) I'm not very keen on having too many different routines, the more generic they are, the better. Agreed, that was one of my

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org 2012-03-19 19:18:33 UTC --- Created attachment 26925 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=26925 gcc48-vselect.patch Patch to decrease memory cost of

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-19 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #11 from Richard Henderson rth at gcc dot gnu.org 2012-03-19 19:36:03 UTC --- The vselect patch looks pretty good. + if (icode = 0 !testing_p) +x = copy_rtx (PATTERN (vselect_insn)); ... + if (!testing_p) +emit_insn (x);

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-18 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 Marc Glisse marc.glisse at normalesup dot org changed: What|Removed |Added Attachment #26909|0 |1

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-18 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #6 from Marc Glisse marc.glisse at normalesup dot org 2012-03-18 18:58:44 UTC --- Created attachment 26912 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=26912 generic shuffle of a single v8sf An additional function (I should

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-17 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #2 from Marc Glisse marc.glisse at normalesup dot org 2012-03-17 19:20:36 UTC --- Created attachment 26908 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=26908 copy-paste patch for 0213 and 1302 This seems to handle 0213 and 1302

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-17 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #3 from Marc Glisse marc.glisse at normalesup dot org 2012-03-17 19:55:18 UTC --- Uh. I feel silly, but it looks like vshufpd could replace vpermilpd+vblendpd in many cases, including the original 1230 from PR52568...

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-17 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 Marc Glisse marc.glisse at normalesup dot org changed: What|Removed |Added Attachment #26908|0 |1

[Bug target/52607] v4df __builtin_shuffle with {0,2,1,3} or {1,3,0,2}

2012-03-16 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52607 --- Comment #1 from Marc Glisse marc.glisse at normalesup dot org 2012-03-17 01:05:57 UTC --- Note that {1,2,0,3} seems harder, I need one extra vpermilpd. Actually, it looks like every v4df shuffle can be realized as a vblendpd of a vpermilpd