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