[Bug libstdc++/115308] std::experimental::simd is not convertible to NEON intrinsic type with Clang
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115308 --- Comment #7 from GCC Commits --- The releases/gcc-12 branch has been updated by Matthias Kretz : https://gcc.gnu.org/g:b9569e7a829d054336d2704ccff61eece5437baf commit r12-10572-gb9569e7a829d054336d2704ccff61eece5437baf Author: Matthias Kretz Date: Mon Jun 3 12:02:07 2024 +0200 libstdc++: Fix simd conversion for -fno-signed-char for Clang The special case for Clang in the trait producing a signed integer type lead to the trait returning 'char' where it should have been 'signed char'. This workaround was introduced because on Clang the return type of vector compares was not convertible to '_SimdWrapper< __int_for_sizeof_t<...' unless '__int_for_sizeof_t' was an alias for 'char'. In order to not rewrite the complete mask type code (there is code scattered around the implementation assuming signed integers), this needs to be 'signed char'; so the special case for Clang needs to be removed. The conversion issue is now solved in _SimdWrapper, which now additionally allows conversion from vector types with compatible integral type. Signed-off-by: Matthias Kretz libstdc++-v3/ChangeLog: PR libstdc++/115308 * include/experimental/bits/simd.h (__int_for_sizeof): Remove special cases for __clang__. (_SimdWrapper): Change constructor overload set to allow conversion from vector types with integral conversions via bit reinterpretation. (cherry picked from commit 8e36cf4c5c9140915d001db132a900b48037)
[Bug libstdc++/115308] std::experimental::simd is not convertible to NEON intrinsic type with Clang
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115308 Matthias Kretz (Vir) changed: What|Removed |Added Target Milestone|--- |12.5 --- Comment #6 from Matthias Kretz (Vir) --- Yes, this was simply bad timing. The patch hit the GCC 12.4 freeze. I already regtested it. Only waiting for 12.4 to be done. I have not yet checked whether the patch makes sense on GCC 11.
[Bug libstdc++/115308] std::experimental::simd is not convertible to NEON intrinsic type with Clang
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115308 Ramana Radhakrishnan changed: What|Removed |Added CC||ramana at gcc dot gnu.org --- Comment #5 from Ramana Radhakrishnan --- Matthias - are you looking to go further back than GCC 13 for this ?
[Bug libstdc++/115308] std::experimental::simd is not convertible to NEON intrinsic type with Clang
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115308 --- Comment #4 from GCC Commits --- The releases/gcc-13 branch has been updated by Matthias Kretz : https://gcc.gnu.org/g:ef2169090d0868e4718c2ebf25365aaa52c22139 commit r13-8841-gef2169090d0868e4718c2ebf25365aaa52c22139 Author: Matthias Kretz Date: Mon Jun 3 12:02:07 2024 +0200 libstdc++: Fix simd conversion for -fno-signed-char for Clang The special case for Clang in the trait producing a signed integer type lead to the trait returning 'char' where it should have been 'signed char'. This workaround was introduced because on Clang the return type of vector compares was not convertible to '_SimdWrapper< __int_for_sizeof_t<...' unless '__int_for_sizeof_t' was an alias for 'char'. In order to not rewrite the complete mask type code (there is code scattered around the implementation assuming signed integers), this needs to be 'signed char'; so the special case for Clang needs to be removed. The conversion issue is now solved in _SimdWrapper, which now additionally allows conversion from vector types with compatible integral type. Signed-off-by: Matthias Kretz libstdc++-v3/ChangeLog: PR libstdc++/115308 * include/experimental/bits/simd.h (__int_for_sizeof): Remove special cases for __clang__. (_SimdWrapper): Change constructor overload set to allow conversion from vector types with integral conversions via bit reinterpretation. (cherry picked from commit 8e36cf4c5c9140915d001db132a900b48037)
[Bug libstdc++/115308] std::experimental::simd is not convertible to NEON intrinsic type with Clang
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115308 --- Comment #3 from GCC Commits --- The releases/gcc-14 branch has been updated by Matthias Kretz : https://gcc.gnu.org/g:489b58b79782fa361c0d7e852e0e684d743c8399 commit r14-10296-g489b58b79782fa361c0d7e852e0e684d743c8399 Author: Matthias Kretz Date: Mon Jun 3 12:02:07 2024 +0200 libstdc++: Fix simd conversion for -fno-signed-char for Clang The special case for Clang in the trait producing a signed integer type lead to the trait returning 'char' where it should have been 'signed char'. This workaround was introduced because on Clang the return type of vector compares was not convertible to '_SimdWrapper< __int_for_sizeof_t<...' unless '__int_for_sizeof_t' was an alias for 'char'. In order to not rewrite the complete mask type code (there is code scattered around the implementation assuming signed integers), this needs to be 'signed char'; so the special case for Clang needs to be removed. The conversion issue is now solved in _SimdWrapper, which now additionally allows conversion from vector types with compatible integral type. Signed-off-by: Matthias Kretz libstdc++-v3/ChangeLog: PR libstdc++/115308 * include/experimental/bits/simd.h (__int_for_sizeof): Remove special cases for __clang__. (_SimdWrapper): Change constructor overload set to allow conversion from vector types with integral conversions via bit reinterpretation. (cherry picked from commit 8e36cf4c5c9140915d001db132a900b48037)
[Bug libstdc++/115308] std::experimental::simd is not convertible to NEON intrinsic type with Clang
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115308 --- Comment #2 from Matthias Kretz (Vir) --- Resolved on trunk, will backport later
[Bug libstdc++/115308] std::experimental::simd is not convertible to NEON intrinsic type with Clang
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115308 --- Comment #1 from GCC Commits --- The master branch has been updated by Matthias Kretz : https://gcc.gnu.org/g:8e36cf4c5c9140915d001db132a900b48037 commit r15-1007-g8e36cf4c5c9140915d001db132a900b48037 Author: Matthias Kretz Date: Mon Jun 3 12:02:07 2024 +0200 libstdc++: Fix simd conversion for -fno-signed-char for Clang The special case for Clang in the trait producing a signed integer type lead to the trait returning 'char' where it should have been 'signed char'. This workaround was introduced because on Clang the return type of vector compares was not convertible to '_SimdWrapper< __int_for_sizeof_t<...' unless '__int_for_sizeof_t' was an alias for 'char'. In order to not rewrite the complete mask type code (there is code scattered around the implementation assuming signed integers), this needs to be 'signed char'; so the special case for Clang needs to be removed. The conversion issue is now solved in _SimdWrapper, which now additionally allows conversion from vector types with compatible integral type. Signed-off-by: Matthias Kretz libstdc++-v3/ChangeLog: PR libstdc++/115308 * include/experimental/bits/simd.h (__int_for_sizeof): Remove special cases for __clang__. (_SimdWrapper): Change constructor overload set to allow conversion from vector types with integral conversions via bit reinterpretation.
[Bug libstdc++/115308] std::experimental::simd is not convertible to NEON intrinsic type with Clang
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115308 Matthias Kretz (Vir) changed: What|Removed |Added Ever confirmed|0 |1 Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2024-05-31