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

            Bug ID: 110796
           Summary: builtin_iseqsig fails some tests in
                    armv8l-linux-gnueabihf
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: thiago.bauermann at linaro dot org
                CC: fxcoudert at gcc dot gnu.org
  Target Milestone: ---
            Target: armv8l-unknown-linux-gnueabihf

Commit 34cf27a64e7a "Add __builtin_iseqsig()" introduced the mentioned builtin
along with some new tests. Unfortunately they have some failures in
armv8l-linux-gnueabihf:

Running gcc:gcc.dg/torture/dg-torture.exp ...
FAIL: gcc.dg/torture/builtin-iseqsig-1.c -Os  execution test
FAIL: gcc.dg/torture/builtin-iseqsig-2.c -Os  execution test
FAIL: gcc.dg/torture/builtin-iseqsig-3.c -Os  execution test

gcc.log doesn't have any hint on what actually went wrong. E.g.:

Executing on host:
/home/thiago.bauermann/.cache/builds/gcc-native-aarch32/gcc/xgcc
-B/home/thiago.bauermann/.cache/builds/gcc-native-aarch32/gcc/
/home/thiago.bauermann/src/gcc/gcc/testsuite/gcc.dg/torture/builtin-iseqsig-1.c
   -fdiagnostics-plain-output    -Os  -fsignaling-nans  -lm  -o
./builtin-iseqsig-1.exe    (timeout = 300)
spawn -ignore SIGHUP
/home/thiago.bauermann/.cache/builds/gcc-native-aarch32/gcc/xgcc
-B/home/thiago.bauermann/.cache/builds/gcc-native-aarch32/gcc/
/home/thiago.bauermann/src/gcc/gcc/testsuite/gcc.dg/torture/builtin-iseqsig-1.c
-fdiagnostics-plain-output -Os -fsignaling-nans -lm -o ./builtin-iseqsig-1.exe
PASS: gcc.dg/torture/builtin-iseqsig-1.c   -Os  (test for excess errors)
Setting LD_LIBRARY_PATH to
:/home/thiago.bauermann/.cache/builds/gcc-native-aarch32/gcc::/home/thiago.bauermann/.cache/builds/gcc-native-aarch32/gcc
Execution timeout is: 300
spawn [open ...]
FAIL: gcc.dg/torture/builtin-iseqsig-1.c   -Os  execution test

The problem is still present in trunk as of commit 2a3556376c69 "match.pd:
Implement missed optimization (~X | Y) ^ X -> ~(X & Y) [PR109986]" from today.

Reproduced on Ubuntu 22.04 with:

$ ~/src/gcc/configure \
      --disable-bootstrap \
      --disable-multilib \
      --with-mode=thumb \
      --with-arch=armv8-a \
      --with-float=hard \
      --with-fpu=neon-fp-armv8 \
  && make -j 60 \
  && make -C gcc check-c RUNTESTFLAGS=gcc.dg/torture/dg-torture.exp

Reply via email to