This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Patch: x86 sse performance



On Sep 8, 2005, at 9:33 PM, Richard Henderson wrote:


On Thu, Sep 08, 2005 at 05:46:40PM -0700, Dale Johannesen wrote:
-  return _mm_set_epi8 (__A, __A, __A, __A, __A, __A, __A, __A,
-		       __A, __A, __A, __A, __A, __A, __A, __A);
...
+    __m128i temp, temp2, temp3, temp4;
+    temp = _mm_cvtsi32_si128 ((int)__A);
+    temp2 = _mm_unpacklo_epi8 (temp, temp);
+    temp3 = _mm_unpacklo_epi8 (temp2, temp2);
+    temp4 = _mm_shuffle_epi32 (temp3, 0);

Not ok.


If you don't like the code generated by ix86_expand_vector_init_duplicate,
you should fix it rather than avoiding it.

Something like this? I did not test this but I get the same code gen as what the above would get. Also I cannot really test this fully.

Dale could you have a look?

Thanks,
Andrew Pinski

Attachment: t.diff.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]