On Thu, Jan 15, 2026 at 4:55 PM Pengxuan Zheng <[email protected]> wrote: > > Split gcc.dg/pr123109.c into scalar and vector parts as suggested by Jakub. > > gcc/testsuite/ChangeLog: > > * gcc.dg/pr123109.c: Move to... > * gcc.dg/pr123109-vector.c: ...here. > * gcc.dg/pr123109-scalar.c: New test.
Ok. > > Signed-off-by: Pengxuan Zheng <[email protected]> > --- > .../gcc.dg/{pr123109.c => pr123109-scalar.c} | 12 ++--------- > gcc/testsuite/gcc.dg/pr123109-vector.c | 21 +++++++++++++++++++ > 2 files changed, 23 insertions(+), 10 deletions(-) > rename gcc/testsuite/gcc.dg/{pr123109.c => pr123109-scalar.c} (54%) > create mode 100644 gcc/testsuite/gcc.dg/pr123109-vector.c > > diff --git a/gcc/testsuite/gcc.dg/pr123109.c > b/gcc/testsuite/gcc.dg/pr123109-scalar.c > similarity index 54% > rename from gcc/testsuite/gcc.dg/pr123109.c > rename to gcc/testsuite/gcc.dg/pr123109-scalar.c > index 0d51863ca40..dda903a2cee 100644 > --- a/gcc/testsuite/gcc.dg/pr123109.c > +++ b/gcc/testsuite/gcc.dg/pr123109-scalar.c > @@ -1,9 +1,6 @@ > -/* { dg-do compile { target { x86_64-*-* aarch64-*-* } } } */ > +/* { dg-do compile } */ > /* { dg-options "-O2 -fdump-tree-optimized" } */ > > -typedef int v4si __attribute__((vector_size(4 * sizeof(int)))); > -typedef unsigned int v4usi __attribute__((vector_size(4 * sizeof(unsigned > int)))); > - > #define TEST_NE(type) \ > type test_ne_##type (type a) { return (a >> 31) != 0; } > > @@ -12,14 +9,9 @@ typedef unsigned int v4usi __attribute__((vector_size(4 * > sizeof(unsigned int))) > > TEST_NE(int) > TEST_NE(unsigned) > -TEST_NE(v4si) > -TEST_NE(v4usi) > TEST_EQ(int) > TEST_EQ(unsigned) > -TEST_EQ(v4si) > -TEST_EQ(v4usi) > > /* { dg-final { scan-tree-dump-times ">= 0" 2 optimized } } */ > /* { dg-final { scan-tree-dump-times "< 0" 2 optimized } } */ > -/* { dg-final { scan-tree-dump-times ">= { 0, 0, 0, 0 }" 2 optimized } } */ > -/* { dg-final { scan-tree-dump-times ">> 31" 2 optimized } } */ > + > diff --git a/gcc/testsuite/gcc.dg/pr123109-vector.c > b/gcc/testsuite/gcc.dg/pr123109-vector.c > new file mode 100644 > index 00000000000..35a0f2eff62 > --- /dev/null > +++ b/gcc/testsuite/gcc.dg/pr123109-vector.c > @@ -0,0 +1,21 @@ > +/* { dg-do compile } */ > +/* { dg-options "-Wno-psabi -O2 -fdump-tree-forwprop2" } */ > +/* { dg-additional-options "-msse2" { target { i?86-*-* x86_64-*-* } } } */ > + > +typedef int v4si __attribute__((vector_size(4 * sizeof(int)))); > +typedef unsigned int v4usi __attribute__((vector_size(4 * sizeof(unsigned > int)))); > + > +#define TEST_NE(type) \ > + type test_ne_##type (type a) { return (a >> 31) != 0; } > + > +#define TEST_EQ(type) \ > + type test_eq_##type (type a) { return (a >> 31) == 0; } > + > +TEST_NE(v4si) > +TEST_NE(v4usi) > +TEST_EQ(v4si) > +TEST_EQ(v4usi) > + > +/* { dg-final { scan-tree-dump-times ">= { 0, 0, 0, 0 }" 2 forwprop2 } } */ > +/* "a < 0 ? -1 : 0" will be optimized to "a >> 31" only if there's an optab. > */ > +/* { dg-final { scan-tree-dump-times ">> 31" 2 forwprop2 { target { i?86-*-* > x86_64-*-* aarch64-*-* } } } } */ > -- > 2.34.1 >
