1 //===-- ashrdi3_test.c - Test __ashrdi3 -----------------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file tests __ashrdi3 for the compiler_rt library.
12 //===----------------------------------------------------------------------===//
17 // Returns: arithmetic a >> b
19 // Precondition: 0 <= b < bits_in_dword
21 di_int
__ashrdi3(di_int a
, si_int b
);
23 int test__ashrdi3(di_int a
, si_int b
, di_int expected
)
25 di_int x
= __ashrdi3(a
, b
);
27 printf("error in __ashrdi3: %llX >> %d = %llX, expected %llX\n",
28 a
, b
, __ashrdi3(a
, b
), expected
);
32 char assumption_1
[sizeof(di_int
) == 2*sizeof(si_int
)] = {0};
36 if (test__ashrdi3(0x0123456789ABCDEFLL
, 0, 0x123456789ABCDEFLL
))
38 if (test__ashrdi3(0x0123456789ABCDEFLL
, 1, 0x91A2B3C4D5E6F7LL
))
40 if (test__ashrdi3(0x0123456789ABCDEFLL
, 2, 0x48D159E26AF37BLL
))
42 if (test__ashrdi3(0x0123456789ABCDEFLL
, 3, 0x2468ACF13579BDLL
))
44 if (test__ashrdi3(0x0123456789ABCDEFLL
, 4, 0x123456789ABCDELL
))
47 if (test__ashrdi3(0x0123456789ABCDEFLL
, 28, 0x12345678LL
))
49 if (test__ashrdi3(0x0123456789ABCDEFLL
, 29, 0x91A2B3CLL
))
51 if (test__ashrdi3(0x0123456789ABCDEFLL
, 30, 0x48D159ELL
))
53 if (test__ashrdi3(0x0123456789ABCDEFLL
, 31, 0x2468ACFLL
))
56 if (test__ashrdi3(0x0123456789ABCDEFLL
, 32, 0x1234567LL
))
59 if (test__ashrdi3(0x0123456789ABCDEFLL
, 33, 0x91A2B3LL
))
61 if (test__ashrdi3(0x0123456789ABCDEFLL
, 34, 0x48D159LL
))
63 if (test__ashrdi3(0x0123456789ABCDEFLL
, 35, 0x2468ACLL
))
65 if (test__ashrdi3(0x0123456789ABCDEFLL
, 36, 0x123456LL
))
68 if (test__ashrdi3(0x0123456789ABCDEFLL
, 60, 0))
70 if (test__ashrdi3(0x0123456789ABCDEFLL
, 61, 0))
72 if (test__ashrdi3(0x0123456789ABCDEFLL
, 62, 0))
74 if (test__ashrdi3(0x0123456789ABCDEFLL
, 63, 0))
77 if (test__ashrdi3(0xFEDCBA9876543210LL
, 0, 0xFEDCBA9876543210LL
))
79 if (test__ashrdi3(0xFEDCBA9876543210LL
, 1, 0xFF6E5D4C3B2A1908LL
))
81 if (test__ashrdi3(0xFEDCBA9876543210LL
, 2, 0xFFB72EA61D950C84LL
))
83 if (test__ashrdi3(0xFEDCBA9876543210LL
, 3, 0xFFDB97530ECA8642LL
))
85 if (test__ashrdi3(0xFEDCBA9876543210LL
, 4, 0xFFEDCBA987654321LL
))
88 if (test__ashrdi3(0xFEDCBA9876543210LL
, 28, 0xFFFFFFFFEDCBA987LL
))
90 if (test__ashrdi3(0xFEDCBA9876543210LL
, 29, 0xFFFFFFFFF6E5D4C3LL
))
92 if (test__ashrdi3(0xFEDCBA9876543210LL
, 30, 0xFFFFFFFFFB72EA61LL
))
94 if (test__ashrdi3(0xFEDCBA9876543210LL
, 31, 0xFFFFFFFFFDB97530LL
))
97 if (test__ashrdi3(0xFEDCBA9876543210LL
, 32, 0xFFFFFFFFFEDCBA98LL
))
100 if (test__ashrdi3(0xFEDCBA9876543210LL
, 33, 0xFFFFFFFFFF6E5D4CLL
))
102 if (test__ashrdi3(0xFEDCBA9876543210LL
, 34, 0xFFFFFFFFFFB72EA6LL
))
104 if (test__ashrdi3(0xFEDCBA9876543210LL
, 35, 0xFFFFFFFFFFDB9753LL
))
106 if (test__ashrdi3(0xFEDCBA9876543210LL
, 36, 0xFFFFFFFFFFEDCBA9LL
))
109 if (test__ashrdi3(0xAEDCBA9876543210LL
, 60, 0xFFFFFFFFFFFFFFFALL
))
111 if (test__ashrdi3(0xAEDCBA9876543210LL
, 61, 0xFFFFFFFFFFFFFFFDLL
))
113 if (test__ashrdi3(0xAEDCBA9876543210LL
, 62, 0xFFFFFFFFFFFFFFFELL
))
115 if (test__ashrdi3(0xAEDCBA9876543210LL
, 63, 0xFFFFFFFFFFFFFFFFLL
))