public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/109822] New: Converting std::experimental::simd masks yields an error
@ 2023-05-12  7:36 jens.maurer at gmx dot net
  2023-05-12  8:06 ` [Bug libstdc++/109822] " mkretz at gcc dot gnu.org
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: jens.maurer at gmx dot net @ 2023-05-12  7:36 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 109822
           Summary: Converting std::experimental::simd masks yields an
                    error
           Product: gcc
           Version: 12.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jens.maurer at gmx dot net
  Target Milestone: ---

Reproducer:

#include <experimental/simd>
auto x =
to_native(to_fixed_size(std::experimental::native_simd<int>::mask_type()));

This converts a native SIMD mask type to fixed-size and back.  I believe this
should work, but gcc disagrees:

/usr/include/c++/12/experimental/bits/simd.h:3224:3: note:   template argument
deduction/substitution failed:
x.cc:4:19: note:   mismatched types ‘long unsigned int’ and ‘int’

(Also reproducible with gcc 13.1.)

The issue is that the SIMD implementation of libstdc++ uses a mixture of "int"
and "size_t" for the type of non-type template parameters for "number of
elements in this SIMD vector", causing deduction failures when gcc tries to
match template arguments with template parameters.

It seems the Technical Specification uses "int" throughout.

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

* [Bug libstdc++/109822] Converting std::experimental::simd masks yields an error
  2023-05-12  7:36 [Bug libstdc++/109822] New: Converting std::experimental::simd masks yields an error jens.maurer at gmx dot net
@ 2023-05-12  8:06 ` mkretz at gcc dot gnu.org
  2023-05-29 10:08 ` jakub at gcc dot gnu.org
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: mkretz at gcc dot gnu.org @ 2023-05-12  8:06 UTC (permalink / raw)
  To: gcc-bugs

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

Matthias Kretz (Vir) <mkretz at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |mkretz at gcc dot gnu.org
             Status|UNCONFIRMED                 |ASSIGNED
   Target Milestone|---                         |11.4
   Last reconfirmed|                            |2023-05-12
     Ever confirmed|0                           |1

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

* [Bug libstdc++/109822] Converting std::experimental::simd masks yields an error
  2023-05-12  7:36 [Bug libstdc++/109822] New: Converting std::experimental::simd masks yields an error jens.maurer at gmx dot net
  2023-05-12  8:06 ` [Bug libstdc++/109822] " mkretz at gcc dot gnu.org
@ 2023-05-29 10:08 ` jakub at gcc dot gnu.org
  2023-05-30 14:21 ` cvs-commit at gcc dot gnu.org
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-05-29 10:08 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|11.4                        |11.5

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 11.4 is being released, retargeting bugs to GCC 11.5.

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

* [Bug libstdc++/109822] Converting std::experimental::simd masks yields an error
  2023-05-12  7:36 [Bug libstdc++/109822] New: Converting std::experimental::simd masks yields an error jens.maurer at gmx dot net
  2023-05-12  8:06 ` [Bug libstdc++/109822] " mkretz at gcc dot gnu.org
  2023-05-29 10:08 ` jakub at gcc dot gnu.org
@ 2023-05-30 14:21 ` cvs-commit at gcc dot gnu.org
  2023-05-30 15:09 ` cvs-commit at gcc dot gnu.org
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-05-30 14:21 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Matthias Kretz <mkretz@gcc.gnu.org>:

https://gcc.gnu.org/g:668d43502f465d48adbc1fe2956b979f36657e5f

commit r14-1409-g668d43502f465d48adbc1fe2956b979f36657e5f
Author: Matthias Kretz <m.kretz@gsi.de>
Date:   Fri May 26 12:23:44 2023 +0200

    libstdc++: Correct NTTP and simd_mask ctor call

    Signed-off-by: Matthias Kretz <m.kretz@gsi.de>

    libstdc++-v3/ChangeLog:

            PR libstdc++/109822
            * include/experimental/bits/simd.h (to_native): Use int NTTP
            as specified in PTS2.
            (to_compatible): Likewise. Add missing tag to call mask
            generator ctor.
            * testsuite/experimental/simd/pr109822_cast_functions.cc: New
            test.

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

* [Bug libstdc++/109822] Converting std::experimental::simd masks yields an error
  2023-05-12  7:36 [Bug libstdc++/109822] New: Converting std::experimental::simd masks yields an error jens.maurer at gmx dot net
                   ` (2 preceding siblings ...)
  2023-05-30 14:21 ` cvs-commit at gcc dot gnu.org
@ 2023-05-30 15:09 ` cvs-commit at gcc dot gnu.org
  2023-05-30 20:05 ` cvs-commit at gcc dot gnu.org
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-05-30 15:09 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-13 branch has been updated by Matthias Kretz
<mkretz@gcc.gnu.org>:

https://gcc.gnu.org/g:717a14e727bce409ac7e7f10c413530e704f4ca7

commit r13-7393-g717a14e727bce409ac7e7f10c413530e704f4ca7
Author: Matthias Kretz <m.kretz@gsi.de>
Date:   Fri May 26 12:23:44 2023 +0200

    libstdc++: Correct NTTP and simd_mask ctor call

    Signed-off-by: Matthias Kretz <m.kretz@gsi.de>

    libstdc++-v3/ChangeLog:

            PR libstdc++/109822
            * include/experimental/bits/simd.h (to_native): Use int NTTP
            as specified in PTS2.
            (to_compatible): Likewise. Add missing tag to call mask
            generator ctor.
            * testsuite/experimental/simd/pr109822_cast_functions.cc: New
            test.

    (cherry picked from commit 668d43502f465d48adbc1fe2956b979f36657e5f)

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

* [Bug libstdc++/109822] Converting std::experimental::simd masks yields an error
  2023-05-12  7:36 [Bug libstdc++/109822] New: Converting std::experimental::simd masks yields an error jens.maurer at gmx dot net
                   ` (3 preceding siblings ...)
  2023-05-30 15:09 ` cvs-commit at gcc dot gnu.org
@ 2023-05-30 20:05 ` cvs-commit at gcc dot gnu.org
  2023-05-30 20:06 ` cvs-commit at gcc dot gnu.org
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-05-30 20:05 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Matthias Kretz
<mkretz@gcc.gnu.org>:

https://gcc.gnu.org/g:467887d5750d03d438ab704437b2c5e5da78497e

commit r12-9666-g467887d5750d03d438ab704437b2c5e5da78497e
Author: Matthias Kretz <m.kretz@gsi.de>
Date:   Fri May 26 12:23:44 2023 +0200

    libstdc++: Correct NTTP and simd_mask ctor call

    Signed-off-by: Matthias Kretz <m.kretz@gsi.de>

    libstdc++-v3/ChangeLog:

            PR libstdc++/109822
            * include/experimental/bits/simd.h (to_native): Use int NTTP
            as specified in PTS2.
            (to_compatible): Likewise. Add missing tag to call mask
            generator ctor.
            * testsuite/experimental/simd/pr109822_cast_functions.cc: New
            test.

    (cherry picked from commit 668d43502f465d48adbc1fe2956b979f36657e5f)

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

* [Bug libstdc++/109822] Converting std::experimental::simd masks yields an error
  2023-05-12  7:36 [Bug libstdc++/109822] New: Converting std::experimental::simd masks yields an error jens.maurer at gmx dot net
                   ` (4 preceding siblings ...)
  2023-05-30 20:05 ` cvs-commit at gcc dot gnu.org
@ 2023-05-30 20:06 ` cvs-commit at gcc dot gnu.org
  2023-05-30 20:08 ` mkretz at gcc dot gnu.org
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-05-30 20:06 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Matthias Kretz
<mkretz@gcc.gnu.org>:

https://gcc.gnu.org/g:39a60f2d5f7bf6806a4c4d7d1f52f139e157e01a

commit r11-10835-g39a60f2d5f7bf6806a4c4d7d1f52f139e157e01a
Author: Matthias Kretz <m.kretz@gsi.de>
Date:   Fri May 26 12:23:44 2023 +0200

    libstdc++: Correct NTTP and simd_mask ctor call

    Signed-off-by: Matthias Kretz <m.kretz@gsi.de>

    libstdc++-v3/ChangeLog:

            PR libstdc++/109822
            * include/experimental/bits/simd.h (to_native): Use int NTTP
            as specified in PTS2.
            (to_compatible): Likewise. Add missing tag to call mask
            generator ctor.
            * testsuite/experimental/simd/pr109822_cast_functions.cc: New
            test.

    (cherry picked from commit 668d43502f465d48adbc1fe2956b979f36657e5f)

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

* [Bug libstdc++/109822] Converting std::experimental::simd masks yields an error
  2023-05-12  7:36 [Bug libstdc++/109822] New: Converting std::experimental::simd masks yields an error jens.maurer at gmx dot net
                   ` (5 preceding siblings ...)
  2023-05-30 20:06 ` cvs-commit at gcc dot gnu.org
@ 2023-05-30 20:08 ` mkretz at gcc dot gnu.org
  2023-06-02  6:40 ` aoliva at gcc dot gnu.org
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: mkretz at gcc dot gnu.org @ 2023-05-30 20:08 UTC (permalink / raw)
  To: gcc-bugs

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

Matthias Kretz (Vir) <mkretz at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #6 from Matthias Kretz (Vir) <mkretz at gcc dot gnu.org> ---
Resolved on all branches.

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

* [Bug libstdc++/109822] Converting std::experimental::simd masks yields an error
  2023-05-12  7:36 [Bug libstdc++/109822] New: Converting std::experimental::simd masks yields an error jens.maurer at gmx dot net
                   ` (6 preceding siblings ...)
  2023-05-30 20:08 ` mkretz at gcc dot gnu.org
@ 2023-06-02  6:40 ` aoliva at gcc dot gnu.org
  2023-06-06 13:45 ` cvs-commit at gcc dot gnu.org
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: aoliva at gcc dot gnu.org @ 2023-06-02  6:40 UTC (permalink / raw)
  To: gcc-bugs

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

Alexandre Oliva <aoliva at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aoliva at gcc dot gnu.org

--- Comment #7 from Alexandre Oliva <aoliva at gcc dot gnu.org> ---
This test fails on powerpc targets when VSX support is unavailable.

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

* [Bug libstdc++/109822] Converting std::experimental::simd masks yields an error
  2023-05-12  7:36 [Bug libstdc++/109822] New: Converting std::experimental::simd masks yields an error jens.maurer at gmx dot net
                   ` (7 preceding siblings ...)
  2023-06-02  6:40 ` aoliva at gcc dot gnu.org
@ 2023-06-06 13:45 ` cvs-commit at gcc dot gnu.org
  2024-05-07 16:19 ` cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-06-06 13:45 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Matthias Kretz <mkretz@gcc.gnu.org>:

https://gcc.gnu.org/g:9165ede56ababd6471e7a2ce4eab30f3d5129e14

commit r14-1578-g9165ede56ababd6471e7a2ce4eab30f3d5129e14
Author: Matthias Kretz <m.kretz@gsi.de>
Date:   Fri Jun 2 21:33:04 2023 +0200

    libstdc++: Avoid vector casts while still avoiding PR90424

    Signed-off-by: Matthias Kretz <m.kretz@gsi.de>

    libstdc++-v3/ChangeLog:

            PR libstdc++/109822
            * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
            to avoid casts to other vector types. Implement store as
            succession of power-of-2 sized memcpy to avoid PR90424.

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

* [Bug libstdc++/109822] Converting std::experimental::simd masks yields an error
  2023-05-12  7:36 [Bug libstdc++/109822] New: Converting std::experimental::simd masks yields an error jens.maurer at gmx dot net
                   ` (8 preceding siblings ...)
  2023-06-06 13:45 ` cvs-commit at gcc dot gnu.org
@ 2024-05-07 16:19 ` cvs-commit at gcc dot gnu.org
  2024-05-08 16:14 ` cvs-commit at gcc dot gnu.org
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2024-05-07 16:19 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #9 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-13 branch has been updated by Matthias Kretz
<mkretz@gcc.gnu.org>:

https://gcc.gnu.org/g:4d7a770f2d1dc9d7e7b79788c201ba22bd52cf06

commit r13-8706-g4d7a770f2d1dc9d7e7b79788c201ba22bd52cf06
Author: Matthias Kretz <m.kretz@gsi.de>
Date:   Fri Jun 2 21:33:04 2023 +0200

    libstdc++: Avoid vector casts while still avoiding PR90424

    Signed-off-by: Matthias Kretz <m.kretz@gsi.de>

    libstdc++-v3/ChangeLog:

            PR libstdc++/109822
            * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
            to avoid casts to other vector types. Implement store as
            succession of power-of-2 sized memcpy to avoid PR90424.

    (cherry picked from commit 9165ede56ababd6471e7a2ce4eab30f3d5129e14)

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

* [Bug libstdc++/109822] Converting std::experimental::simd masks yields an error
  2023-05-12  7:36 [Bug libstdc++/109822] New: Converting std::experimental::simd masks yields an error jens.maurer at gmx dot net
                   ` (9 preceding siblings ...)
  2024-05-07 16:19 ` cvs-commit at gcc dot gnu.org
@ 2024-05-08 16:14 ` cvs-commit at gcc dot gnu.org
  2024-05-10 14:07 ` cvs-commit at gcc dot gnu.org
  2024-05-10 14:27 ` mkretz at gcc dot gnu.org
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2024-05-08 16:14 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #10 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Matthias Kretz
<mkretz@gcc.gnu.org>:

https://gcc.gnu.org/g:44df51e5826747d089a08fa1a1378454a8d2d0de

commit r12-10423-g44df51e5826747d089a08fa1a1378454a8d2d0de
Author: Matthias Kretz <m.kretz@gsi.de>
Date:   Fri Jun 2 21:33:04 2023 +0200

    libstdc++: Avoid vector casts while still avoiding PR90424

    Signed-off-by: Matthias Kretz <m.kretz@gsi.de>

    libstdc++-v3/ChangeLog:

            PR libstdc++/109822
            * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
            to avoid casts to other vector types. Implement store as
            succession of power-of-2 sized memcpy to avoid PR90424.

    (cherry picked from commit 9165ede56ababd6471e7a2ce4eab30f3d5129e14)

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

* [Bug libstdc++/109822] Converting std::experimental::simd masks yields an error
  2023-05-12  7:36 [Bug libstdc++/109822] New: Converting std::experimental::simd masks yields an error jens.maurer at gmx dot net
                   ` (10 preceding siblings ...)
  2024-05-08 16:14 ` cvs-commit at gcc dot gnu.org
@ 2024-05-10 14:07 ` cvs-commit at gcc dot gnu.org
  2024-05-10 14:27 ` mkretz at gcc dot gnu.org
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2024-05-10 14:07 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #11 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Matthias Kretz
<mkretz@gcc.gnu.org>:

https://gcc.gnu.org/g:4190a95cb837c5d221d9c5677f49f3c7d4d5576f

commit r11-11428-g4190a95cb837c5d221d9c5677f49f3c7d4d5576f
Author: Matthias Kretz <m.kretz@gsi.de>
Date:   Fri Jun 2 21:33:04 2023 +0200

    libstdc++: Avoid vector casts while still avoiding PR90424

    Signed-off-by: Matthias Kretz <m.kretz@gsi.de>

    libstdc++-v3/ChangeLog:

            PR libstdc++/109822
            * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
            to avoid casts to other vector types. Implement store as
            succession of power-of-2 sized memcpy to avoid PR90424.

    (cherry picked from commit 9165ede56ababd6471e7a2ce4eab30f3d5129e14)

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

* [Bug libstdc++/109822] Converting std::experimental::simd masks yields an error
  2023-05-12  7:36 [Bug libstdc++/109822] New: Converting std::experimental::simd masks yields an error jens.maurer at gmx dot net
                   ` (11 preceding siblings ...)
  2024-05-10 14:07 ` cvs-commit at gcc dot gnu.org
@ 2024-05-10 14:27 ` mkretz at gcc dot gnu.org
  12 siblings, 0 replies; 14+ messages in thread
From: mkretz at gcc dot gnu.org @ 2024-05-10 14:27 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #12 from Matthias Kretz (Vir) <mkretz at gcc dot gnu.org> ---
Fixed powerpc test failure on all branches.

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

end of thread, other threads:[~2024-05-10 14:27 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-12  7:36 [Bug libstdc++/109822] New: Converting std::experimental::simd masks yields an error jens.maurer at gmx dot net
2023-05-12  8:06 ` [Bug libstdc++/109822] " mkretz at gcc dot gnu.org
2023-05-29 10:08 ` jakub at gcc dot gnu.org
2023-05-30 14:21 ` cvs-commit at gcc dot gnu.org
2023-05-30 15:09 ` cvs-commit at gcc dot gnu.org
2023-05-30 20:05 ` cvs-commit at gcc dot gnu.org
2023-05-30 20:06 ` cvs-commit at gcc dot gnu.org
2023-05-30 20:08 ` mkretz at gcc dot gnu.org
2023-06-02  6:40 ` aoliva at gcc dot gnu.org
2023-06-06 13:45 ` cvs-commit at gcc dot gnu.org
2024-05-07 16:19 ` cvs-commit at gcc dot gnu.org
2024-05-08 16:14 ` cvs-commit at gcc dot gnu.org
2024-05-10 14:07 ` cvs-commit at gcc dot gnu.org
2024-05-10 14:27 ` mkretz at gcc dot gnu.org

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