https://gcc.gnu.org/g:3454e596b557e717695d181c6e58d07bc822b68e
commit r17-1737-g3454e596b557e717695d181c6e58d07bc822b68e Author: Avinash Jayakar <[email protected]> Date: Mon Jun 22 10:50:41 2026 +0530 testsuite: Split spaceship_mixed_variants tests containing long long as input arg 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. 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. Diff: --- gcc/testsuite/gcc.dg/spaceship_mixed_variants.c | 142 +------------------- gcc/testsuite/gcc.dg/spaceship_mixed_variants_ll.c | 145 +++++++++++++++++++++ 2 files changed, 146 insertions(+), 141 deletions(-) diff --git a/gcc/testsuite/gcc.dg/spaceship_mixed_variants.c b/gcc/testsuite/gcc.dg/spaceship_mixed_variants.c index a6d7c96363aa..2a1bf6e350bd 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 000000000000..00f97b812e89 --- /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; +}
