2 * Header file for pattern and random test inputs
4 * Copyright (C) 2019 Wave Computing, Inc.
5 * Copyright (C) 2019 Aleksandar Markovic <amarkovic@wavecomp.com>
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22 #ifndef TEST_INPUTS_128_H
23 #define TEST_INPUTS_128_H
28 #define PATTERN_INPUTS_COUNT 64
29 #define PATTERN_INPUTS_SHORT_COUNT 8
31 static const uint64_t b128_pattern
[PATTERN_INPUTS_COUNT
][2] = {
32 { 0xFFFFFFFFFFFFFFFFULL
, 0xFFFFFFFFFFFFFFFFULL
, }, /* 0 */
33 { 0x0000000000000000ULL
, 0x0000000000000000ULL
, },
34 { 0xAAAAAAAAAAAAAAAAULL
, 0xAAAAAAAAAAAAAAAAULL
, },
35 { 0x5555555555555555ULL
, 0x5555555555555555ULL
, },
36 { 0xCCCCCCCCCCCCCCCCULL
, 0xCCCCCCCCCCCCCCCCULL
, },
37 { 0x3333333333333333ULL
, 0x3333333333333333ULL
, },
38 { 0xE38E38E38E38E38EULL
, 0x38E38E38E38E38E3ULL
, },
39 { 0x1C71C71C71C71C71ULL
, 0xC71C71C71C71C71CULL
, },
40 { 0xF0F0F0F0F0F0F0F0ULL
, 0xF0F0F0F0F0F0F0F0ULL
, }, /* 8 */
41 { 0x0F0F0F0F0F0F0F0FULL
, 0x0F0F0F0F0F0F0F0FULL
, },
42 { 0xF83E0F83E0F83E0FULL
, 0x83E0F83E0F83E0F8ULL
, },
43 { 0x07C1F07C1F07C1F0ULL
, 0x7C1F07C1F07C1F07ULL
, },
44 { 0xFC0FC0FC0FC0FC0FULL
, 0xC0FC0FC0FC0FC0FCULL
, },
45 { 0x03F03F03F03F03F0ULL
, 0x3F03F03F03F03F03ULL
, },
46 { 0xFE03F80FE03F80FEULL
, 0x03F80FE03F80FE03ULL
, },
47 { 0x01FC07F01FC07F01ULL
, 0xFC07F01FC07F01FCULL
, },
48 { 0xFF00FF00FF00FF00ULL
, 0xFF00FF00FF00FF00ULL
, }, /* 16 */
49 { 0x00FF00FF00FF00FFULL
, 0x00FF00FF00FF00FFULL
, },
50 { 0xFF803FE00FF803FEULL
, 0x00FF803FE00FF803ULL
, },
51 { 0x007FC01FF007FC01ULL
, 0xFF007FC01FF007FCULL
, },
52 { 0xFFC00FFC00FFC00FULL
, 0xFC00FFC00FFC00FFULL
, },
53 { 0x003FF003FF003FF0ULL
, 0x03FF003FF003FF00ULL
, },
54 { 0xFFE003FF800FFE00ULL
, 0x3FF800FFE003FF80ULL
, },
55 { 0x001FFC007FF001FFULL
, 0xC007FF001FFC007FULL
, },
56 { 0xFFF000FFF000FFF0ULL
, 0x00FFF000FFF000FFULL
, }, /* 24 */
57 { 0x000FFF000FFF000FULL
, 0xFF000FFF000FFF00ULL
, },
58 { 0xFFF8003FFE000FFFULL
, 0x8003FFE000FFF800ULL
, },
59 { 0x0007FFC001FFF000ULL
, 0x7FFC001FFF0007FFULL
, },
60 { 0xFFFC000FFFC000FFULL
, 0xFC000FFFC000FFFCULL
, },
61 { 0x0003FFF0003FFF00ULL
, 0x03FFF0003FFF0003ULL
, },
62 { 0xFFFE0003FFF8000FULL
, 0xFFE0003FFF8000FFULL
, },
63 { 0x0001FFFC0007FFF0ULL
, 0x001FFFC0007FFF00ULL
, },
64 { 0xFFFF0000FFFF0000ULL
, 0xFFFF0000FFFF0000ULL
, }, /* 32 */
65 { 0x0000FFFF0000FFFFULL
, 0x0000FFFF0000FFFFULL
, },
66 { 0xFFFF80003FFFE000ULL
, 0x0FFFF80003FFFE00ULL
, },
67 { 0x00007FFFC0001FFFULL
, 0xF00007FFFC0001FFULL
, },
68 { 0xFFFFC0000FFFFC00ULL
, 0x00FFFFC0000FFFFCULL
, },
69 { 0x00003FFFF00003FFULL
, 0xFF00003FFFF00003ULL
, },
70 { 0xFFFFE00003FFFF80ULL
, 0x000FFFFE00003FFFULL
, },
71 { 0x00001FFFFC00007FULL
, 0xFFF00001FFFFC000ULL
, },
72 { 0xFFFFF00000FFFFF0ULL
, 0x0000FFFFF00000FFULL
, }, /* 40 */
73 { 0x00000FFFFF00000FULL
, 0xFFFF00000FFFFF00ULL
, },
74 { 0xFFFFF800003FFFFEULL
, 0x00000FFFFF800003ULL
, },
75 { 0x000007FFFFC00001ULL
, 0xFFFFF000007FFFFCULL
, },
76 { 0xFFFFFC00000FFFFFULL
, 0xC00000FFFFFC0000ULL
, },
77 { 0x000003FFFFF00000ULL
, 0x3FFFFF000003FFFFULL
, },
78 { 0xFFFFFE000003FFFFULL
, 0xF800000FFFFFE000ULL
, },
79 { 0x000001FFFFFC0000ULL
, 0x07FFFFF000001FFFULL
, },
80 { 0xFFFFFF000000FFFFULL
, 0xFF000000FFFFFF00ULL
, }, /* 48 */
81 { 0x000000FFFFFF0000ULL
, 0x00FFFFFF000000FFULL
, },
82 { 0xFFFFFF8000003FFFULL
, 0xFFE000000FFFFFF8ULL
, },
83 { 0x0000007FFFFFC000ULL
, 0x001FFFFFF0000007ULL
, },
84 { 0xFFFFFFC000000FFFULL
, 0xFFFC000000FFFFFFULL
, },
85 { 0x0000003FFFFFF000ULL
, 0x0003FFFFFF000000ULL
, },
86 { 0xFFFFFFE0000003FFULL
, 0xFFFF8000000FFFFFULL
, },
87 { 0x0000001FFFFFFC00ULL
, 0x00007FFFFFF00000ULL
, },
88 { 0xFFFFFFF0000000FFULL
, 0xFFFFF0000000FFFFULL
, }, /* 56 */
89 { 0x0000000FFFFFFF00ULL
, 0x00000FFFFFFF0000ULL
, },
90 { 0xFFFFFFF80000003FULL
, 0xFFFFFE0000000FFFULL
, },
91 { 0x00000007FFFFFFC0ULL
, 0x000001FFFFFFF000ULL
, },
92 { 0xFFFFFFFC0000000FULL
, 0xFFFFFFC0000000FFULL
, },
93 { 0x00000003FFFFFFF0ULL
, 0x0000003FFFFFFF00ULL
, },
94 { 0xFFFFFFFE00000003ULL
, 0xFFFFFFF80000000FULL
, },
95 { 0x00000001FFFFFFFCULL
, 0x00000007FFFFFFF0ULL
, },
99 #define RANDOM_INPUTS_COUNT 16
100 #define RANDOM_INPUTS_SHORT_COUNT 4
102 static const uint64_t b128_random
[RANDOM_INPUTS_COUNT
][2] = {
103 { 0x886AE6CC28625540ULL
, 0x4B670B5EFE7BB00CULL
, }, /* 0 */
104 { 0xFBBE00634D93C708ULL
, 0x12F7BB1A153F52FCULL
, },
105 { 0xAC5AAEAAB9CF8B80ULL
, 0x27D8C6FFAB2B2514ULL
, },
106 { 0x704F164D5E31E24EULL
, 0x8DF188D8A942E2A0ULL
, },
107 { 0xB9926B7C7DAF4258ULL
, 0xA1227CADDCCE65B6ULL
, },
108 { 0xD027BE89FF0A2EF9ULL
, 0x170B5050FEA53078ULL
, },
109 { 0xB83B580665CABC4AULL
, 0x91230822BFF0BA62ULL
, },
110 { 0xFC8F23F09AA6B782ULL
, 0x93FD6637124275AEULL
, },
111 { 0x201E09CD56AEE649ULL
, 0xEF5DE039A6A52758ULL
, }, /* 8 */
112 { 0xA57CD91365D9E5D7ULL
, 0x9321BC9881ECBA5CULL
, },
113 { 0xA2E8F6F5C9CBC61BULL
, 0xB2C471545E0D7A12ULL
, },
114 { 0xA89CF2F131A864AEULL
, 0xD2A3E87A5DB986E7ULL
, },
115 { 0xE61438E9A652EA0AULL
, 0xA85483D97879D41CULL
, },
116 { 0x944A35FD192361A8ULL
, 0xF3912DA36A0B2D6BULL
, },
117 { 0x4630426322BEF79CULL
, 0xEB5686F7CB19304EULL
, },
118 { 0x8B5AA7A2F259DEADULL
, 0xD278CBCD696417E3ULL
, },