Two tests FAIL on Solaris/x86 with the native assembler: FAIL: gcc.target/i386/pr117232-1.c scan-assembler-times (?n)cmovn?c 7 FAIL: gcc.target/i386/pr117232-apx-1.c scan-assembler-times (?n)cmovn?c 7
The problem is that as expects a slightly different insn syntax, e.g. cmovl.nc %esi, %eax instead of cmovnc %esi, %eax This patch allows for both forms. Tested on i386-pc-solaris2.11 (as and gas) and x86_64-pc-linux-gnu. Ok for trunk? Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University 2024-11-15 Rainer Orth <r...@cebitec.uni-bielefeld.de> gcc/testsuite: * gcc.target/i386/pr117232-1.c (scan-assembler-times): Allow for cmovl.nc etc. * gcc.target/i386/pr117232-apx-1.c: Likewise.
# HG changeset patch # Parent 1224ef84cc8de0bdc3083f6a47ed7979908a4afb testsuite: i386: Fix gcc.target/i386/pr117232-1.c etc. with Solaris as diff --git a/gcc/testsuite/gcc.target/i386/pr117232-1.c b/gcc/testsuite/gcc.target/i386/pr117232-1.c --- a/gcc/testsuite/gcc.target/i386/pr117232-1.c +++ b/gcc/testsuite/gcc.target/i386/pr117232-1.c @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-options "-mavx512bw -mavx512vl -mavx512dq -O2" } */ /* { dg-final { scan-assembler-times {(?n)kortest[bwqd]} 7 { target { ! ia32 } } } } */ -/* { dg-final { scan-assembler-times {(?n)cmovn?c} 7 { target { ! ia32 } } } } */ +/* { dg-final { scan-assembler-times {(?n)cmov([lq]\.)?n?c} 7 { target { ! ia32 } } } } */ #include <immintrin.h> int diff --git a/gcc/testsuite/gcc.target/i386/pr117232-apx-1.c b/gcc/testsuite/gcc.target/i386/pr117232-apx-1.c --- a/gcc/testsuite/gcc.target/i386/pr117232-apx-1.c +++ b/gcc/testsuite/gcc.target/i386/pr117232-apx-1.c @@ -1,7 +1,7 @@ /* { dg-do compile { target { ! ia32 } } } */ /* { dg-options "-mavx512bw -mavx512vl -mavx512dq -mapxf -O2" } */ /* { dg-final { scan-assembler-times {(?n)kortest[bwqd]} 7 } } */ -/* { dg-final { scan-assembler-times {(?n)cmovn?c} 7 } } */ +/* { dg-final { scan-assembler-times {(?n)cmov([lq]\.)?n?c} 7 } } */ #include <immintrin.h>