The new gcc.target/i386/bt-cmov-1.c FAILs on Solaris:
FAIL: gcc.target/i386/bt-cmov-1.c scan-assembler-times cmov[n]*c 4
The Solaris assembler uses a slightly different syntax:
cmovl.c %edx, %eax
cmovl.nc %edx, %eax
instead of
cmovc %edx, %eax
cmovnc %edx, %eax
This patch allows for both forms. At the same time, it avoids escaping
by using brace quoting. The character sets with a single character
aren't necessary. 'l' in "btl" isn't optional or does 'c' in "cmov"
occur more than one.
Tested on i386-pc-solaris2.11 (as and gas, 32 and 64-bit), and
x86_64-pc-linux-gnu (32 and 64-bit).
Ok for trunk?
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
2026-06-30 Rainer Orth <[email protected]>
gcc/testsuite:
* gcc.target/i386/bt-cmov-1.c (scan-assembler-times): Simplify
patterns. Allow for Solaris as syntax.
# HG changeset patch
# Parent e4940ee46770933e3ce6647ab10872e4baf5523b
testsuite: i386: Adjust gcc.target/i386/bt-cmov-1.c scans
diff --git a/gcc/testsuite/gcc.target/i386/bt-cmov-1.c b/gcc/testsuite/gcc.target/i386/bt-cmov-1.c
--- a/gcc/testsuite/gcc.target/i386/bt-cmov-1.c
+++ b/gcc/testsuite/gcc.target/i386/bt-cmov-1.c
@@ -27,7 +27,7 @@ unsigned f3 (unsigned a, unsigned b, uns
return ((a >> b) & 1) ? 2 : c;
}
-/* { dg-final { scan-assembler-times "bt\[l\]?\[ \\t\]+" 4 } } */
-/* { dg-final { scan-assembler-times "cmov\[n\]*c" 4 } } */
+/* { dg-final { scan-assembler-times {btl[ \t]+} 4 } } */
+/* { dg-final { scan-assembler-times {cmov(l\.)?n?c} 4 } } */
/* { dg-final { scan-assembler-not "sal" } } */
/* { dg-final { scan-assembler-not "shr" } } */