blob: a15b280cc107b632e4cb23a7cfbf98085447e530 [file] [log] [blame]
/* Verify that hardware multiply is preferred on XScale. */
/* { dg-do compile } */
/* { dg-options "-mcpu=xscale -O2" } */
/* { dg-require-effective-target arm32 } */
/* Brett Gaines' test case. */
unsigned BCPL(unsigned) __attribute__ ((naked));
unsigned BCPL(unsigned seed)
{
/* Best code would be:
ldr r1, =2147001325
ldr r2, =715136305
mla r0, r1, r0, r2
mov pc, lr */
return seed * 2147001325U + 715136305U;
}
/* { dg-final { scan-assembler "mla\[ ].*" } } */