/* { dg-do compile } */ | |
/* { dg-require-effective-target arm32 } */ | |
/* { dg-options "-O2" } */ | |
signed long long negdi_zero_extendsidi (unsigned int x) | |
{ | |
return -((signed long long) x); | |
} | |
/* | |
Expected output: | |
rsbs r0, r0, #0 (arm) | negs r0, r0 (thumb2) | |
sbc r1, r1, r1 | |
*/ | |
/* { dg-final { scan-assembler-times "rsbs|negs" 1 } } */ | |
/* { dg-final { scan-assembler-times "sbc" 1 } } */ | |
/* { dg-final { scan-assembler-times "mov" 0 } } */ | |
/* { dg-final { scan-assembler-times "rsc" 0 } } */ |