[testsuite] [arm] adjust wmul expectations [PR113560]

Since the machine-independent widening multiply logic was improved
PR113560, ARM's wmul-[567].c fail.  AFAICT the logic takes advantage
of the fact that, after zero-extending a narrow integral type to a
wider type, further zero- or sign-extending is equivalent, which
enables different instructions to be used for equivalent effect.

Adjust the tests to accept all the equivalent instructions that can be
used.


for  gcc/testsuite/ChangeLog

	PR target/113560
	* gcc.target/arm/wmul-5.c: Accept other mla instructions.
	* gcc.target/arm/wmul-6.c: Likewise.
	* gcc.target/arm/wmul-7.c: Likewise.
This commit is contained in:
Alexandre Oliva 2025-01-16 20:19:50 -03:00 committed by Alexandre Oliva
parent bc6e3a03b9
commit fed57c8ec9
3 changed files with 9 additions and 3 deletions

View file

@ -8,4 +8,6 @@ foo (long long a, char *b, char *c)
return a + *b * *c;
}
/* { dg-final { scan-assembler "umlal" } } */
/* smlalbb after zero-extending the chars to HImode, or either signed- or
unsigned-widening multiply after extending them to SImode. */
/* { dg-final { scan-assembler {(?:smlalbb|[us]mlal)} } } */

View file

@ -8,4 +8,6 @@ foo (long long a, unsigned char *b, signed char *c)
return a + (long long)*b * (long long)*c;
}
/* { dg-final { scan-assembler "smlalbb" } } */
/* After zero-extending B and sign-extending C to [HS]imode, either
signed-widening multiply will do. */
/* { dg-final { scan-assembler {smlal(?:bb)?} } } */

View file

@ -8,4 +8,6 @@ foo (unsigned long long a, unsigned char *b, unsigned short *c)
return a + *b * *c;
}
/* { dg-final { scan-assembler "umlal" } } */
/* After zero-extending both to SImode, either signed- or unsigned-widening
multiply will do. */
/* { dg-final { scan-assembler {[us]mlal} } } */