On Wed, Sep 2, 2026 at 12:09 AM Iain Sandoe <[email protected]> wrote: > > gentle ping, > > > On 19 Aug 2026, at 14:27, Iain Sandoe <[email protected]> wrote: > > > > Tested on x86_64-linux, darwin, OK for trunk? > > thanks > > Iain > > > > --- 8< --- > > > > These tests now pass the function body scans on Darwin, but fail the > > scanasms for 16byte literals. This because these scan separately for > > .long 0 appearing 3 times, with no constraint on sequence. A bare > > .long 0 can also match other code (e.g. eh_frame literals) which leads > > to a fail everywhere on Darwin. > > > > Match these multi-word literals explicitly - which actually is better > > even on cfi-asm targets since it checks the literal and its memory > > order rather than the two parts independently. > > > > gcc/testsuite/ChangeLog: > > > > * gcc.target/i386/builtin-copysign-2.c: Check 16 byte literal > > explicitly. > > * gcc.target/i386/builtin-copysign-3.c: Likewise. > > * gcc.target/i386/builtin-copysign-5.c: Likewise. > > * gcc.target/i386/builtin-fabs-1.c: Likewise.
OK. Thanks, Uros. > > > > Signed-off-by: Iain Sandoe <[email protected]> > > --- > > gcc/testsuite/gcc.target/i386/builtin-copysign-2.c | 3 +-- > > gcc/testsuite/gcc.target/i386/builtin-copysign-3.c | 3 +-- > > gcc/testsuite/gcc.target/i386/builtin-copysign-5.c | 3 +-- > > gcc/testsuite/gcc.target/i386/builtin-fabs-1.c | 3 +-- > > 4 files changed, 4 insertions(+), 8 deletions(-) > > > > diff --git a/gcc/testsuite/gcc.target/i386/builtin-copysign-2.c > > b/gcc/testsuite/gcc.target/i386/builtin-copysign-2.c > > index d90c5a49a3a..54d6863254b 100644 > > --- a/gcc/testsuite/gcc.target/i386/builtin-copysign-2.c > > +++ b/gcc/testsuite/gcc.target/i386/builtin-copysign-2.c > > @@ -18,5 +18,4 @@ foo (float x) > > return __builtin_copysignf (x, 0.0); > > } > > > > -/* { dg-final { scan-assembler-times ".long 0" 3 { target { ! ia32 } } } } > > */ > > -/* { dg-final { scan-assembler-times ".long 2147483647" 1 { target { ! > > ia32 } } } } */ > > +/* { dg-final { scan-assembler-times > > {.long\s2147483647[\n\r]+\s.long\s0[\n\r]+\s.long\s0[\n\r]+\s.long\s0} 1 { > > target { ! ia32 } } } } */ > > diff --git a/gcc/testsuite/gcc.target/i386/builtin-copysign-3.c > > b/gcc/testsuite/gcc.target/i386/builtin-copysign-3.c > > index d3b4dd5a4af..c7de3935cae 100644 > > --- a/gcc/testsuite/gcc.target/i386/builtin-copysign-3.c > > +++ b/gcc/testsuite/gcc.target/i386/builtin-copysign-3.c > > @@ -18,5 +18,4 @@ foo (float x) > > return __builtin_copysignf (x, -3.0); > > } > > > > -/* { dg-final { scan-assembler-times ".long 0" 3 { target { ! ia32 } } } } > > */ > > -/* { dg-final { scan-assembler-times ".long -2147483648" 1 { target { ! > > ia32 } } } } */ > > +/* { dg-final { scan-assembler-times > > {.long\s-2147483648[\n\r]+\s.long\s0[\n\r]+\s.long\s0[\n\r]+\s.long\s0} 1 { > > target { ! ia32 } } } } */ > > diff --git a/gcc/testsuite/gcc.target/i386/builtin-copysign-5.c > > b/gcc/testsuite/gcc.target/i386/builtin-copysign-5.c > > index 3f4df5f779b..8b81b29828d 100644 > > --- a/gcc/testsuite/gcc.target/i386/builtin-copysign-5.c > > +++ b/gcc/testsuite/gcc.target/i386/builtin-copysign-5.c > > @@ -18,5 +18,4 @@ foo (__float128 x) > > return __builtin_copysignq (0.0, x); > > } > > > > -/* { dg-final { scan-assembler-times ".long 0" 3 { target { ! ia32 } } } } > > */ > > -/* { dg-final { scan-assembler-times ".long -2147483648" 1 { target { ! > > ia32 } } } } */ > > +/* { dg-final { scan-assembler-times > > {.long\s0[\n\r]+\s.long\s0[\n\r]+\s.long\s0[\n\r]+\s.long\s-2147483648} 1 { > > target { ! ia32 } } } } */ > > diff --git a/gcc/testsuite/gcc.target/i386/builtin-fabs-1.c > > b/gcc/testsuite/gcc.target/i386/builtin-fabs-1.c > > index a9a25f6bd4b..c53628a4ed0 100644 > > --- a/gcc/testsuite/gcc.target/i386/builtin-fabs-1.c > > +++ b/gcc/testsuite/gcc.target/i386/builtin-fabs-1.c > > @@ -19,5 +19,4 @@ foo (float x) > > return -__builtin_fabsf (x); > > } > > > > -/* { dg-final { scan-assembler-times ".long 0" 3 { target { ! ia32 } } } } > > */ > > -/* { dg-final { scan-assembler-times ".long -2147483648" 1 { target { ! > > ia32 } } } } */ > > +/* { dg-final { scan-assembler-times > > {.long\s-2147483648[\n\r]+\s.long\s0[\n\r]+\s.long\s0[\n\r]+\s.long\s0} 1 { > > target { ! ia32 } } } } */ > > -- > > 2.50.1 (Apple Git-155) > > >
