> On Wed, Nov 29, 2023 at 07:51:15AM +0100, Jose E. Marchesi wrote: >> > FAIL: gcc.c-torture/compile/libcall-2.c -O1 (test for excess errors) >> > FAIL: gcc.c-torture/compile/libcall-2.c -O2 -flto >> > -fno-use-linker-plugin -flto-partition=none (test for excess errors) >> > FAIL: gcc.c-torture/compile/libcall-2.c -O2 -flto -fuse-linker-plugin >> > -fno-fat-lto-objects (test for excess errors) >> > FAIL: gcc.c-torture/compile/libcall-2.c -O2 (test for excess errors) >> > FAIL: gcc.c-torture/compile/libcall-2.c -O3 -g (test for excess errors) >> > FAIL: gcc.c-torture/compile/libcall-2.c -Os (test for excess errors) >> >> Sorry about the regression. >> >> I installed the patch below to skip the test if the target is not x86_64 >> in lp64, as obvious. This should fix the issue. >> >> >From 4ed0740c6e807460ce79a351094329fdeb551545 Mon Sep 17 00:00:00 2001 >> From: "Jose E. Marchesi" <jose.march...@oracle.com> >> Date: Wed, 29 Nov 2023 07:44:59 +0100 >> Subject: [PATCH] testsuite: fix gcc.c-torture/compile/libcall-2.c in -m32 >> >> This test relies on having __int128 in x86_64 targets, which is only >> available in -m64. >> >> gcc/testsuite/ChangeLog >> >> * gcc.c-torture/compile/libcall-2.c: Skip test in -m32. >> --- >> gcc/testsuite/gcc.c-torture/compile/libcall-2.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/gcc/testsuite/gcc.c-torture/compile/libcall-2.c >> b/gcc/testsuite/gcc.c-torture/compile/libcall-2.c >> index b33944c83ff..9b889172025 100644 >> --- a/gcc/testsuite/gcc.c-torture/compile/libcall-2.c >> +++ b/gcc/testsuite/gcc.c-torture/compile/libcall-2.c >> @@ -2,6 +2,8 @@ >> indirect calls. */ >> >> /* { dg-do compile } */ >> +/* __int128 is not supported in x86 -m32. */ >> +/* { dg-skip-if "" { ! { x86_64-*-* && { ! ilp32 } } } } */ >> /* { dg-options "-O2 -mcmodel=large" { target x86_64-*-* } } */ >> /* { dg-final { scan-assembler "globl\t__divti3" } } */ > > This is not correct. > When a test uses __int128, it should be guarded with int128 effective > target. > But, as the test doesn't really test anything on non-x86 nor ia32, > it doesn't belong to gcc.c-torture/compile/ at all, it is x86 specific > test which should be moved to gcc.target/i386/libcall-1.c > And, should have > /* { dg-do compile { target int128 } } */ > /* { dg-options "-O2 -mcmodel=large" } */ > /* { dg-final { scan-assembler "globl\t__divti3" } } */ > I guess no need to bother with the extra guard for -mcmodel=large, > because -m32/-mx32 don't have __int128 support, and x86_64-*-* > is incorrect anyway (because with that target one can have all > of -m32/-m64/-mx32).
OK to the patch below? >From a697f9e9442d96d3eda228b825dd8e8e06206c03 Mon Sep 17 00:00:00 2001 From: "Jose E. Marchesi" <jose.march...@oracle.com> Date: Wed, 29 Nov 2023 09:16:48 +0100 Subject: [PATCH] testsuite: move gcc.c-torture/compile/libcall-2.c to gcc.target/i386/libcall-1.c This patch relocates a test that is really x86 specific, and changes it to use check_effective_target_int128. gcc/testsuite/ChangeLog * gcc.c-torture/compile/libcall-2.c: Remove. * gcc.target/i386/libcall-1.c: Moved from gcc.c-torture/compile/libcall-2.c and adapted to use effective-target for int128_t. --- .../compile/libcall-2.c => gcc.target/i386/libcall-1.c} | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) rename gcc/testsuite/{gcc.c-torture/compile/libcall-2.c => gcc.target/i386/libcall-1.c} (50%) diff --git a/gcc/testsuite/gcc.c-torture/compile/libcall-2.c b/gcc/testsuite/gcc.target/i386/libcall-1.c similarity index 50% rename from gcc/testsuite/gcc.c-torture/compile/libcall-2.c rename to gcc/testsuite/gcc.target/i386/libcall-1.c index 9b889172025..8bd6684a925 100644 --- a/gcc/testsuite/gcc.c-torture/compile/libcall-2.c +++ b/gcc/testsuite/gcc.target/i386/libcall-1.c @@ -1,10 +1,8 @@ /* Make sure that external refences for libcalls are generated even for indirect calls. */ -/* { dg-do compile } */ -/* __int128 is not supported in x86 -m32. */ -/* { dg-skip-if "" { ! { x86_64-*-* && { ! ilp32 } } } } */ -/* { dg-options "-O2 -mcmodel=large" { target x86_64-*-* } } */ +/* { dg-do compile { target int128 } } */ +/* { dg-options "-O2 -mcmodel=large" } */ /* { dg-final { scan-assembler "globl\t__divti3" } } */ __int128 a, b; void foo () { a = a / b; } -- 2.30.2