/* { 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 } } */
