public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/104413] New: _mm_set1_epi8 isn't optimized for SSE2
@ 2022-02-07  5:18 hjl.tools at gmail dot com
  2022-02-07  5:56 ` [Bug target/104413] " crazylht at gmail dot com
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: hjl.tools at gmail dot com @ 2022-02-07  5:18 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104413

            Bug ID: 104413
           Summary: _mm_set1_epi8 isn't optimized for SSE2
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
                CC: crazylht at gmail dot com
  Target Milestone: ---
            Target: x86-64

[hjl@gnu-tgl-3 tmp]$ cat foo.c
#include <x86intrin.h>

__m128i
foo (char c)
{
  return _mm_set1_epi8 (c);
}
[hjl@gnu-tgl-3 tmp]$ cat foo.s
        .file   "foo.c"
        .text
        .p2align 4
        .globl  foo
        .type   foo, @function
foo:
.LFB5670:
        .cfi_startproc
        movd    %edi, %xmm0
        punpcklbw       %xmm0, %xmm0
        punpcklwd       %xmm0, %xmm0
        pshufd  $0, %xmm0, %xmm0
        ret
        .cfi_endproc
.LFE5670:
        .size   foo, .-foo
        .ident  "GCC: (GNU) 11.2.1 20220127 (Red Hat 11.2.1-9)"
        .section        .note.GNU-stack,"",@progbits
[hjl@gnu-tgl-3 tmp]$ 

GCC should generate

        movd    %edi, %xmm0
        pxor %xmm1, %xmm1;
        pshufb %xmm1, %xmm0
        ret

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

* [Bug target/104413] _mm_set1_epi8 isn't optimized for SSE2
  2022-02-07  5:18 [Bug target/104413] New: _mm_set1_epi8 isn't optimized for SSE2 hjl.tools at gmail dot com
@ 2022-02-07  5:56 ` crazylht at gmail dot com
  2022-02-07  7:59 ` crazylht at gmail dot com
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: crazylht at gmail dot com @ 2022-02-07  5:56 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104413

--- Comment #1 from Hongtao.liu <crazylht at gmail dot com> ---
Just note pshufb needs SSE3, and it seems reasonable to define a SSE3 broadcast
pattern which generates pxor + pshufb.

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

* [Bug target/104413] _mm_set1_epi8 isn't optimized for SSE2
  2022-02-07  5:18 [Bug target/104413] New: _mm_set1_epi8 isn't optimized for SSE2 hjl.tools at gmail dot com
  2022-02-07  5:56 ` [Bug target/104413] " crazylht at gmail dot com
@ 2022-02-07  7:59 ` crazylht at gmail dot com
  2022-02-07  8:49 ` crazylht at gmail dot com
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: crazylht at gmail dot com @ 2022-02-07  7:59 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104413

--- Comment #2 from Hongtao.liu <crazylht at gmail dot com> ---
(In reply to Hongtao.liu from comment #1)
> Just note pshufb needs SSE3, and it seems reasonable to define a SSE3
> broadcast pattern which generates pxor + pshufb.

w/ -msse4 gcc generates ideal instructions sequence

       movd    %edi, %xmm0
        pxor    %xmm1, %xmm1
        pshufb  %xmm1, %xmm0

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

* [Bug target/104413] _mm_set1_epi8 isn't optimized for SSE2
  2022-02-07  5:18 [Bug target/104413] New: _mm_set1_epi8 isn't optimized for SSE2 hjl.tools at gmail dot com
  2022-02-07  5:56 ` [Bug target/104413] " crazylht at gmail dot com
  2022-02-07  7:59 ` crazylht at gmail dot com
@ 2022-02-07  8:49 ` crazylht at gmail dot com
  2022-02-07  9:03 ` rguenth at gcc dot gnu.org
  2022-02-07 12:57 ` hjl.tools at gmail dot com
  4 siblings, 0 replies; 6+ messages in thread
From: crazylht at gmail dot com @ 2022-02-07  8:49 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104413

--- Comment #3 from Hongtao.liu <crazylht at gmail dot com> ---
(In reply to Hongtao.liu from comment #2)
> (In reply to Hongtao.liu from comment #1)
> > Just note pshufb needs SSE3, and it seems reasonable to define a SSE3
> > broadcast pattern which generates pxor + pshufb.
> 

It's SSSE3 not SSE3. :(

So it looks optimal with -mssse3

        movd    %edi, %xmm0
        pxor %xmm1, %xmm1;
        pshufb %xmm1, %xmm0

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

* [Bug target/104413] _mm_set1_epi8 isn't optimized for SSE2
  2022-02-07  5:18 [Bug target/104413] New: _mm_set1_epi8 isn't optimized for SSE2 hjl.tools at gmail dot com
                   ` (2 preceding siblings ...)
  2022-02-07  8:49 ` crazylht at gmail dot com
@ 2022-02-07  9:03 ` rguenth at gcc dot gnu.org
  2022-02-07 12:57 ` hjl.tools at gmail dot com
  4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-02-07  9:03 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104413

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|x86-64                      |x86_64-*-*
           Keywords|                            |missed-optimization

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
So it sounds like this bug is INVALID?

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

* [Bug target/104413] _mm_set1_epi8 isn't optimized for SSE2
  2022-02-07  5:18 [Bug target/104413] New: _mm_set1_epi8 isn't optimized for SSE2 hjl.tools at gmail dot com
                   ` (3 preceding siblings ...)
  2022-02-07  9:03 ` rguenth at gcc dot gnu.org
@ 2022-02-07 12:57 ` hjl.tools at gmail dot com
  4 siblings, 0 replies; 6+ messages in thread
From: hjl.tools at gmail dot com @ 2022-02-07 12:57 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104413

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> ---
pshufb is SSSE3.

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

end of thread, other threads:[~2022-02-07 12:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-07  5:18 [Bug target/104413] New: _mm_set1_epi8 isn't optimized for SSE2 hjl.tools at gmail dot com
2022-02-07  5:56 ` [Bug target/104413] " crazylht at gmail dot com
2022-02-07  7:59 ` crazylht at gmail dot com
2022-02-07  8:49 ` crazylht at gmail dot com
2022-02-07  9:03 ` rguenth at gcc dot gnu.org
2022-02-07 12:57 ` hjl.tools at gmail dot com

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).