1 // RUN: %clang_builtins %s %librt -o %t && %run %t
2 // REQUIRES: librt_has_divsi3
9 COMPILER_RT_ABI si_int
__divsi3(si_int a
, si_int b
);
11 int test__divsi3(si_int a
, si_int b
, si_int expected
)
13 si_int x
= __divsi3(a
, b
);
15 printf("error in __divsi3: %d / %d = %d, expected %d\n",
22 if (test__divsi3(0, 1, 0))
24 if (test__divsi3(0, -1, 0))
27 if (test__divsi3(2, 1, 2))
29 if (test__divsi3(2, -1, -2))
31 if (test__divsi3(-2, 1, -2))
33 if (test__divsi3(-2, -1, 2))
36 if (test__divsi3(0x80000000, 1, 0x80000000))
38 if (test__divsi3(0x80000000, -1, 0x80000000))
40 if (test__divsi3(0x80000000, -2, 0x40000000))
42 if (test__divsi3(0x80000000, 2, 0xC0000000))