gcc.target/i386/apx-ndd-cmov.c FAILs on 64-bit Solaris/x86 with the native assembler:
FAIL: gcc.target/i386/apx-ndd-cmov.c scan-assembler-times cmove[^\\n\\r]*, %eax 1 FAIL: gcc.target/i386/apx-ndd-cmov.c scan-assembler-times cmovge[^\\n\\r]*, %eax 1 The gas vs. as difference is - cmove c+4(%rip), %esi, %eax + cmovl.e c+4(%rip), %esi, %eax - cmovge %ecx, %edx, %eax + cmovl.ge %ecx, %edx, %eax This patch accounts for both forms. Tested on i386-pc-solaris2.11 (as and gas) and i686-pc-linux-gnu. Committed to trunk. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University 2024-02-01 Rainer Orth <r...@cebitec.uni-bielefeld.de> gcc/testsuite: * gcc.target/i386/apx-ndd-cmov.c (scan-assembler-times): Allow for cmovl.e, cmovl.ge.
# HG changeset patch # Parent b7b9c1365b7c54f5c0e618608af26512175c3333 testsuite: i386: Fix gcc.target/i386/apx-ndd-cmov.c on Solaris/x86 diff --git a/gcc/testsuite/gcc.target/i386/apx-ndd-cmov.c b/gcc/testsuite/gcc.target/i386/apx-ndd-cmov.c --- a/gcc/testsuite/gcc.target/i386/apx-ndd-cmov.c +++ b/gcc/testsuite/gcc.target/i386/apx-ndd-cmov.c @@ -1,7 +1,7 @@ /* { dg-do compile { target { ! ia32 } } } */ /* { dg-options "-O2 -m64 -mapxf" } */ -/* { dg-final { scan-assembler-times "cmove\[^\n\r]*, %eax" 1 } } */ -/* { dg-final { scan-assembler-times "cmovge\[^\n\r]*, %eax" 1 } } */ +/* { dg-final { scan-assembler-times "cmov(l\.)?e\[^\n\r]*, %eax" 1 } } */ +/* { dg-final { scan-assembler-times "cmov(l\.)?ge\[^\n\r]*, %eax" 1 } } */ unsigned int c[4];