1 //===-- lshrdi3_test.c - Test __lshrdi3 -----------------------------------===//
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 __lshrdi3 for the compiler_rt library.
12 //===----------------------------------------------------------------------===//
17 // Returns: logical a >> b
19 // Precondition: 0 <= b < bits_in_dword
21 di_int
__lshrdi3(di_int a
, si_int b
);
23 int test__lshrdi3(di_int a
, si_int b
, di_int expected
)
25 di_int x
= __lshrdi3(a
, b
);
27 printf("error in __lshrdi3: %llX >> %d = %llX, expected %llX\n",
28 a
, b
, __lshrdi3(a
, b
), expected
);
32 char assumption_1
[sizeof(di_int
) == 2*sizeof(si_int
)] = {0};
36 if (test__lshrdi3(0x0123456789ABCDEFLL
, 0, 0x123456789ABCDEFLL
))
38 if (test__lshrdi3(0x0123456789ABCDEFLL
, 1, 0x91A2B3C4D5E6F7LL
))
40 if (test__lshrdi3(0x0123456789ABCDEFLL
, 2, 0x48D159E26AF37BLL
))
42 if (test__lshrdi3(0x0123456789ABCDEFLL
, 3, 0x2468ACF13579BDLL
))
44 if (test__lshrdi3(0x0123456789ABCDEFLL
, 4, 0x123456789ABCDELL
))
47 if (test__lshrdi3(0x0123456789ABCDEFLL
, 28, 0x12345678LL
))
49 if (test__lshrdi3(0x0123456789ABCDEFLL
, 29, 0x91A2B3CLL
))
51 if (test__lshrdi3(0x0123456789ABCDEFLL
, 30, 0x48D159ELL
))
53 if (test__lshrdi3(0x0123456789ABCDEFLL
, 31, 0x2468ACFLL
))
56 if (test__lshrdi3(0x0123456789ABCDEFLL
, 32, 0x1234567LL
))
59 if (test__lshrdi3(0x0123456789ABCDEFLL
, 33, 0x91A2B3LL
))
61 if (test__lshrdi3(0x0123456789ABCDEFLL
, 34, 0x48D159LL
))
63 if (test__lshrdi3(0x0123456789ABCDEFLL
, 35, 0x2468ACLL
))
65 if (test__lshrdi3(0x0123456789ABCDEFLL
, 36, 0x123456LL
))
68 if (test__lshrdi3(0x0123456789ABCDEFLL
, 60, 0))
70 if (test__lshrdi3(0x0123456789ABCDEFLL
, 61, 0))
72 if (test__lshrdi3(0x0123456789ABCDEFLL
, 62, 0))
74 if (test__lshrdi3(0x0123456789ABCDEFLL
, 63, 0))
77 if (test__lshrdi3(0xFEDCBA9876543210LL
, 0, 0xFEDCBA9876543210LL
))
79 if (test__lshrdi3(0xFEDCBA9876543210LL
, 1, 0x7F6E5D4C3B2A1908LL
))
81 if (test__lshrdi3(0xFEDCBA9876543210LL
, 2, 0x3FB72EA61D950C84LL
))
83 if (test__lshrdi3(0xFEDCBA9876543210LL
, 3, 0x1FDB97530ECA8642LL
))
85 if (test__lshrdi3(0xFEDCBA9876543210LL
, 4, 0xFEDCBA987654321LL
))
88 if (test__lshrdi3(0xFEDCBA9876543210LL
, 28, 0xFEDCBA987LL
))
90 if (test__lshrdi3(0xFEDCBA9876543210LL
, 29, 0x7F6E5D4C3LL
))
92 if (test__lshrdi3(0xFEDCBA9876543210LL
, 30, 0x3FB72EA61LL
))
94 if (test__lshrdi3(0xFEDCBA9876543210LL
, 31, 0x1FDB97530LL
))
97 if (test__lshrdi3(0xFEDCBA9876543210LL
, 32, 0xFEDCBA98LL
))
100 if (test__lshrdi3(0xFEDCBA9876543210LL
, 33, 0x7F6E5D4CLL
))
102 if (test__lshrdi3(0xFEDCBA9876543210LL
, 34, 0x3FB72EA6LL
))
104 if (test__lshrdi3(0xFEDCBA9876543210LL
, 35, 0x1FDB9753LL
))
106 if (test__lshrdi3(0xFEDCBA9876543210LL
, 36, 0xFEDCBA9LL
))
109 if (test__lshrdi3(0xAEDCBA9876543210LL
, 60, 0xALL
))
111 if (test__lshrdi3(0xAEDCBA9876543210LL
, 61, 0x5LL
))
113 if (test__lshrdi3(0xAEDCBA9876543210LL
, 62, 0x2LL
))
115 if (test__lshrdi3(0xAEDCBA9876543210LL
, 63, 0x1LL
))