Hi Matthias,
Looking at [1], we are seeing this error only for bare-metal 32-bit ARM target, which, I believe, is not a configuration that compiler explorer supports. The specific configurations are either soft-float, or target ARM cores without NEON (aka no SIMD FPU).
Maybe the test should be guarded on the target supporting vectorization? I.e., maybe add // { dg-require-effective-target vect_int } ?
[1] https://linaro.atlassian.net/browse/GNU-1265
-- Maxim Kuvyrkov https://www.linaro.org
On Jun 21, 2024, at 19:03, Matthias Kretz via Gcc-regression gcc-regression@gcc.gnu.org wrote:
Hi,
I looked into this and still don't understand how to reproduce it.
The issue as logged in libstdc++.log is a call from find_last_set(simd_mask<int, _VecBuiltin<16>>) to _MaskImplNeonMixin::_S_to_bits, which calls vpadd_s32 with two [[gnu::vector_size(8)]] int arguments. The CI compiler complains "error: cannot convert '__vector(2) int' to 'int32x2_t'".
Why is that an error on your side and not on any compiler I have at hand?
https://compiler-explorer.com/z/88WhcM7Kb not an error here.
In any case, the new test only exposes an existing issue in the <experimental/ simd> implementation (or its interaction with some variants of GCC?). The change did not introduce a new bug to libstdc++.
Best, Matthias
On Friday, 21 June 2024 17:00:23 GMT+2 ci_notify@linaro.org wrote:
Dear contributor, our automatic CI has detected problems related to your patch(es). Please find some details below. If you have any questions, please follow up on linaro-toolchain@lists.linaro.org mailing list, Libera's #linaro-tcwg channel, or ping your favourite Linaro toolchain developer on the usual project channel.
We appreciate that it might be difficult to find the necessary logs or reproduce the issue locally. If you can't get what you need from our CI within minutes, let us know and we will be happy to help.
We track this report status in https://linaro.atlassian.net/browse/GNU-1265 , please let us know if you are looking at the problem and/or when you have a fix. In arm-eabi v7-a softfp after: | commit gcc-15-1500-g1340ddea015 | Author: Matthias Kretz m.kretz@gsi.de | Date: Fri Jun 14 15:11:25 2024 +0200 | | libstdc++: Fix find_last_set(simd_mask) to ignore padding bits | | With the change to the AVX512 find_last_set implementation, the | change | to AVX512 operator!= is unnecessary. However, the latter was not | producing optimal code and unnecessarily set the padding bits. In | theory, the compiler could determine that with the new != | implementation, the bit operation for clearing the padding bits is a | | ... 13 lines of the commit log omitted.
FAIL: 2 regressions
regressions.sum: === libstdc++ tests ===
Running libstdc++:libstdc++-dg/conformance.exp ... FAIL: experimental/simd/pr115454_find_last_set.cc -mfpu=neon -ffast-math -O2 -Wno-psabi (test for excess errors) UNRESOLVED: experimental/simd/pr115454_find_last_set.cc -mfpu=neon -ffast-math -O2 -Wno-psabi compilation failed to produce executable
You can find the failure logs in *.log.1.xz files in
https://ci.linaro.org/job/tcwg_gnu_embed_check_gcc--master-arm_v7a_softfp_e abi-build/512/artifact/artifacts/00-sumfiles/ The full lists of regressions and progressions as well as configure and make commands are in - https://ci.linaro.org/job/tcwg_gnu_embed_check_gcc--master-arm_v7a_softfp_e abi-build/512/artifact/artifacts/notify/ The list of [ignored] baseline and flaky failures are in
https://ci.linaro.org/job/tcwg_gnu_embed_check_gcc--master-arm_v7a_softfp_e abi-build/512/artifact/artifacts/sumfiles/xfails.xfail
The configuration of this build is: CI config tcwg_gnu_embed_check_gcc arm-eabi -marm -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp
-----------------8<--------------------------8<--------------------------8<- ------------------------- The information below can be used to reproduce a debug environment:
Current build : https://ci.linaro.org/job/tcwg_gnu_embed_check_gcc--master-arm_v7a_softfp_e abi-build/512/artifact/artifacts Reference build : https://ci.linaro.org/job/tcwg_gnu_embed_check_gcc--master-arm_v7a_softfp_e abi-build/511/artifact/artifacts
Reproduce last good and first bad builds: https://git-us.linaro.org/toolchain/ci/interesting-commits.git/plain/gcc/sh a1/1340ddea0158de3f49aeb75b4013e5fc313ff6f4/tcwg_gnu_embed_check_gcc/master- arm_v7a_softfp_eabi/reproduction_instructions.txt
Full commit : https://github.com/gcc-mirror/gcc/commit/1340ddea0158de3f49aeb75b4013e5fc31 3ff6f4
List of configurations that regressed due to this commit :
- tcwg_gnu_embed_check_gcc
** master-arm_v7a_softfp_eabi *** FAIL: 2 regressions
https://git-us.linaro.org/toolchain/ci/interesting-commits.git/plain/gcc/sh a1/1340ddea0158de3f49aeb75b4013e5fc313ff6f4/tcwg_gnu_embed_check_gcc/master- arm_v7a_softfp_eabi/details.txt *** https://ci.linaro.org/job/tcwg_gnu_embed_check_gcc--master-arm_v7a_softfp_e abi-build/512/artifact/artifacts
-- ────────────────────────────────────────────────────────────────────────── Dr. Matthias Kretz https://mattkretz.github.io GSI Helmholtz Center for Heavy Ion Research https://gsi.de std::simd ──────────────────────────────────────────────────────────────────────────