2 /* { dg-options "-O2 -m8bit-idiv" } */
4 extern void abort (void);
7 __attribute__((noinline
))
8 test (unsigned long long x
, unsigned long long y
,
9 unsigned long long q
, unsigned long long r
)
11 if ((x
/ y
) != q
|| (x
% y
) != r
)
19 test (255, 254, 1, 1);
20 test (256, 254, 1, 2);
21 test (256, 256, 1, 0);
22 test (254, 256, 0, 254);
23 test (254, 255, 0, 254);
24 test (254, 1, 254, 0);
25 test (255, 2, 127, 1);
27 test (0x80000000, 0x7fffffff, 1, 1);
28 test (0x7fffffff, 0x80000000, 0, 0x7fffffff);
29 test (0x80000000, 0x80000003, 0, 0x80000000);
30 test (0xfffffffd, 0xfffffffe, 0, 0xfffffffd);