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.
2024-11-15 Rainer Orth <ro@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.
/* { 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
/* { 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>