The new gcc.target/i386/cmov12.c test FAILs on Solaris/x86 with the
native as:
FAIL: gcc.target/i386/cmov12.c scan-assembler-times cmovg 3
This happens because as uses a different syntax for cmov:
--- cmov12.s.bu243 2025-01-21 16:55:27.
038829605 +0100
+++ cmov12.s.bu24390 2025-01-21 16:55:44.
565051230 +0100
@@ -41,9 +41,9 @@
leal 1(%rdx), %ebp
movl (%r11), %esi
cmpl %eax, %esi
- cmovg %ebp, %edx
- cmovg %r11, %rcx
- cmovg %esi, %eax
+ cmovl.g %ebp, %edx
+ cmovq.g %r11, %rcx
+ cmovl.g %esi, %eax
The problem is even more prominent with the upcoming gas 2.44 which
added support for the Sun as syntax on Solaris, which gcc/configure
picks up.
This patch allows for both forms.
Tested on i386-pc-solaris2.11 and x86_64-pc-linux-gnu.
2025-01-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
gcc/testsuite:
* gcc.target/i386/cmov12.c (scan-assembler-times): Allow for
cmovl.g etc.
/* { dg-do compile { target { ! ia32 } } } */
/* { dg-options "-O2 -mavx2 -mtune=sapphirerapids" } */
-/* { dg-final { scan-assembler-times "cmovg" 3 } } */
+/* { dg-final { scan-assembler-times "cmov(\[lq\]\.)?g" 3 } } */
void foo(int *a, int n, int k)
{