On Mon, 22 Jun 2026, Avinash Jayakar wrote:

> The test spaceship_mixed_variants.c failed on ilp32 targets since the
> targets will not have a DI mode spaceship optab, and thus the spaceship
> optimization would not happen.
> Separated out the tests that contain long long as input argument to the
> spaceship optab to a different test file with appropriate target checks
> done for the test.
> 
> Bootstrapped and regtested on x86_64-linux with
> --target_board=unix{-m32.-m64} with no regressions. Ok for trunk?

LGTM.

> 2026-06-22  Avinash Jayakar  <[email protected]>
> 
> gcc/testsuite/ChangeLog:
>       * gcc.dg/spaceship_mixed_variants.c: Split long long arg tests
>       in a different file.
>       * gcc.dg/spaceship_mixed_variants_ll.c: New test.
> ---
>  .../gcc.dg/spaceship_mixed_variants.c         | 142 +----------------
>  .../gcc.dg/spaceship_mixed_variants_ll.c      | 145 ++++++++++++++++++
>  2 files changed, 146 insertions(+), 141 deletions(-)
>  create mode 100644 gcc/testsuite/gcc.dg/spaceship_mixed_variants_ll.c
> 
> diff --git a/gcc/testsuite/gcc.dg/spaceship_mixed_variants.c 
> b/gcc/testsuite/gcc.dg/spaceship_mixed_variants.c
> index a6d7c96363a..2a1bf6e350b 100644
> --- a/gcc/testsuite/gcc.dg/spaceship_mixed_variants.c
> +++ b/gcc/testsuite/gcc.dg/spaceship_mixed_variants.c
> @@ -1,7 +1,7 @@
>  /* { dg-do compile } */
>  /* { dg-require-effective-target spaceship } */
>  /* { dg-options "-O2 -fdump-tree-optimized" } */
> -/* { dg-final { scan-tree-dump-times {\.SPACESHIP \([^,]+, [^,]+, -1\)} 64 
> optimized } } */
> +/* { dg-final { scan-tree-dump-times {\.SPACESHIP \([^,]+, [^,]+, -1\)} 36 
> optimized } } */
>  
>  signed char sp1_1 (signed char a, signed char b)
>  {
> @@ -18,11 +18,6 @@ signed char sp1_3 (signed char a, int b)
>      return a < b ? -1 : a <= b ? 0 : 1;
>  }
>  
> -signed char sp1_4 (signed char a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
>  signed char sp1_5 (short a, signed char b)
>  {
>      return a < b ? -1 : a <= b ? 0 : 1;
> @@ -38,11 +33,6 @@ signed char sp1_7 (short a, int b)
>      return a < b ? -1 : a <= b ? 0 : 1;
>  }
>  
> -signed char sp1_8 (short a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
>  signed char sp1_9 (int a, signed char b)
>  {
>      return a < b ? -1 : a <= b ? 0 : 1;
> @@ -58,31 +48,6 @@ signed char sp1_11 (int a, int b)
>      return a < b ? -1 : a <= b ? 0 : 1;
>  }
>  
> -signed char sp1_12 (int a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -signed char sp1_13 (long long a, signed char b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -signed char sp1_14 (long long a, short b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -signed char sp1_15 (long long a, int b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -signed char sp1_16 (long long a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
>  short sp2_1 (signed char a, signed char b)
>  {
>      return a < b ? -1 : a <= b ? 0 : 1;
> @@ -98,11 +63,6 @@ short sp2_3 (signed char a, int b)
>      return a < b ? -1 : a <= b ? 0 : 1;
>  }
>  
> -short sp2_4 (signed char a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
>  short sp2_5 (short a, signed char b)
>  {
>      return a < b ? -1 : a <= b ? 0 : 1;
> @@ -118,11 +78,6 @@ short sp2_7 (short a, int b)
>      return a < b ? -1 : a <= b ? 0 : 1;
>  }
>  
> -short sp2_8 (short a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
>  short sp2_9 (int a, signed char b)
>  {
>      return a < b ? -1 : a <= b ? 0 : 1;
> @@ -138,31 +93,6 @@ short sp2_11 (int a, int b)
>      return a < b ? -1 : a <= b ? 0 : 1;
>  }
>  
> -short sp2_12 (int a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -short sp2_13 (long long a, signed char b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -short sp2_14 (long long a, short b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -short sp2_15 (long long a, int b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -short sp2_16 (long long a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
>  int sp3_1 (signed char a, signed char b)
>  {
>      return a < b ? -1 : a <= b ? 0 : 1;
> @@ -178,11 +108,6 @@ int sp3_3 (signed char a, int b)
>      return a < b ? -1 : a <= b ? 0 : 1;
>  }
>  
> -int sp3_4 (signed char a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
>  int sp3_5 (short a, signed char b)
>  {
>      return a < b ? -1 : a <= b ? 0 : 1;
> @@ -198,11 +123,6 @@ int sp3_7 (short a, int b)
>      return a < b ? -1 : a <= b ? 0 : 1;
>  }
>  
> -int sp3_8 (short a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
>  int sp3_9 (int a, signed char b)
>  {
>      return a < b ? -1 : a <= b ? 0 : 1;
> @@ -218,31 +138,6 @@ int sp3_11 (int a, int b)
>      return a < b ? -1 : a <= b ? 0 : 1;
>  }
>  
> -int sp3_12 (int a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -int sp3_13 (long long a, signed char b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -int sp3_14 (long long a, short b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -int sp3_15 (long long a, int b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -int sp3_16 (long long a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
>  long long sp4_1 (signed char a, signed char b)
>  {
>      return a < b ? -1 : a <= b ? 0 : 1;
> @@ -258,11 +153,6 @@ long long sp4_3 (signed char a, int b)
>      return a < b ? -1 : a <= b ? 0 : 1;
>  }
>  
> -long long sp4_4 (signed char a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
>  long long sp4_5 (short a, signed char b)
>  {
>      return a < b ? -1 : a <= b ? 0 : 1;
> @@ -278,11 +168,6 @@ long long sp4_7 (short a, int b)
>      return a < b ? -1 : a <= b ? 0 : 1;
>  }
>  
> -long long sp4_8 (short a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
>  long long sp4_9 (int a, signed char b)
>  {
>      return a < b ? -1 : a <= b ? 0 : 1;
> @@ -297,28 +182,3 @@ long long sp4_11 (int a, int b)
>  {
>      return a < b ? -1 : a <= b ? 0 : 1;
>  }
> -
> -long long sp4_12 (int a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -long long sp4_13 (long long a, signed char b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -long long sp4_14 (long long a, short b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -long long sp4_15 (long long a, int b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> -
> -long long sp4_16 (long long a, long long b)
> -{
> -    return a < b ? -1 : a <= b ? 0 : 1;
> -}
> diff --git a/gcc/testsuite/gcc.dg/spaceship_mixed_variants_ll.c 
> b/gcc/testsuite/gcc.dg/spaceship_mixed_variants_ll.c
> new file mode 100644
> index 00000000000..00f97b812e8
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/spaceship_mixed_variants_ll.c
> @@ -0,0 +1,145 @@
> +/* { dg-do compile } */
> +/* { dg-skip-if "DI mode spaceship optab not available" {  { ilp32 } || { 
> int16 } } } */
> +/* { dg-require-effective-target spaceship } */
> +/* { dg-options "-O2 -fdump-tree-optimized" } */
> +/* { dg-final { scan-tree-dump-times {\.SPACESHIP \([^,]+, [^,]+, -1\)} 28 
> optimized } } */
> +
> +signed char sp1_4 (signed char a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +signed char sp1_8 (short a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +signed char sp1_12 (int a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +signed char sp1_13 (long long a, signed char b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +signed char sp1_14 (long long a, short b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +signed char sp1_15 (long long a, int b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +signed char sp1_16 (long long a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +short sp2_4 (signed char a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +short sp2_8 (short a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +short sp2_12 (int a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +short sp2_13 (long long a, signed char b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +short sp2_14 (long long a, short b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +short sp2_15 (long long a, int b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +short sp2_16 (long long a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +int sp3_4 (signed char a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +int sp3_8 (short a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +int sp3_12 (int a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +int sp3_13 (long long a, signed char b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +int sp3_14 (long long a, short b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +int sp3_15 (long long a, int b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +int sp3_16 (long long a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +long long sp4_4 (signed char a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +long long sp4_8 (short a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +long long sp4_12 (int a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +long long sp4_13 (long long a, signed char b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +long long sp4_14 (long long a, short b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +long long sp4_15 (long long a, int b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> +
> +long long sp4_16 (long long a, long long b)
> +{
> +    return a < b ? -1 : a <= b ? 0 : 1;
> +}
> 

-- 
Richard Biener <[email protected]>
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)

Reply via email to