On Mon, Jan 29, 2024 at 01:05:51PM +0100, Richard Biener wrote:
>       * gcc.target/i386/pr113622-2.c: New testcase.
>       * gcc.target/i386/pr113622-3.c: Likewise.

The 2 new tests FAIL for me on i686-linux:
.../gcc/testsuite/gcc.target/i386/pr113622-2.c:5:14: error: data type of 'a' 
isn't suitable for a register
.../gcc/testsuite/gcc.target/i386/pr113622-2.c:5:29: error: data type of 'b' 
isn't suitable for a register
.../gcc/testsuite/gcc.target/i386/pr113622-2.c:5:44: error: data type of 'c' 
isn't suitable for a register
The problem is that the tests use vectors of double, something added
only in SSE2, while the testcases ask for just -msse which only provides
vectors of floats.

So, either it should be using floats instead of doubles, or we need
to add -msse2 to dg-options.

I've done the latter.

Tested on x86_64-linux with
RUNTESTFLAGS='--target_board=unix\{-m32/-march=i686,-m64\} i386.exp=pr113622*.c'
and committed to trunk as obvious.

2024-01-30  Jakub Jelinek  <ja...@redhat.com>

        PR middle-end/113622
        * gcc.target/i386/pr113622-2.c: Use -msse2 instead of -msse in
        dg-options.
        * gcc.target/i386/pr113622-3.c: Likewise.

--- gcc/testsuite/gcc.target/i386/pr113622-2.c.jj       2024-01-29 
23:54:36.330418899 +0100
+++ gcc/testsuite/gcc.target/i386/pr113622-2.c  2024-01-30 08:54:27.227934561 
+0100
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-msse -w" } */
+/* { dg-options "-msse2 -w" } */
 
 typedef double __attribute__ ((vector_size (16))) vec;
 register vec a asm("xmm5"), b asm("xmm6"), c asm("xmm7");
--- gcc/testsuite/gcc.target/i386/pr113622-3.c.jj       2024-01-29 
23:54:36.330418899 +0100
+++ gcc/testsuite/gcc.target/i386/pr113622-3.c  2024-01-30 08:54:32.867854967 
+0100
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-msse" } */
+/* { dg-options "-msse2" } */
 
 typedef double __attribute__ ((vector_size (16))) vec;
 


        Jakub

Reply via email to