master
  1const neg = @import("negXi2.zig");
  2const testing = @import("std").testing;
  3
  4fn test__negdi2(a: i64, expected: i64) !void {
  5    const result = neg.__negdi2(a);
  6    try testing.expectEqual(expected, result);
  7}
  8
  9test "negdi2" {
 10    // TODO ensuring that math.minInt(i64); returns error
 11
 12    try test__negdi2(-3, 3);
 13    try test__negdi2(-2, 2);
 14    try test__negdi2(-1, 1);
 15    try test__negdi2(0, 0); // special case for 2s complement
 16    try test__negdi2(1, -1);
 17    try test__negdi2(2, -2);
 18    try test__negdi2(3, -3);
 19
 20    // max_usable == MAX(i32) == -MIN(i32)
 21    // == 9223372036854775807 == 7fffffffffffffff
 22    // divTrunc: max_usable / i, i=1,2,3,5,100
 23    // 7fffffffffffffff / i
 24    try test__negdi2(-3074457345618258602, 3074457345618258602);
 25    try test__negdi2(3074457345618258602, -3074457345618258602);
 26    try test__negdi2(-1844674407370955161, 1844674407370955161);
 27    try test__negdi2(1844674407370955161, -1844674407370955161);
 28    try test__negdi2(-922337203685477580, 922337203685477580);
 29    try test__negdi2(922337203685477580, -922337203685477580);
 30    // shifting: max_usable >> i, i=0..bitsize-4
 31    // 7fffffffffffffff >> i
 32    // 7fffffffffffffff >> i + 1
 33    // 7fffffffffffffff >> i + 3
 34    // 7fffffffffffffff >> i + 7
 35    try test__negdi2(-9223372036854775807, 9223372036854775807);
 36    try test__negdi2(9223372036854775807, -9223372036854775807);
 37    try test__negdi2(-9223372036854775806, 9223372036854775806);
 38    try test__negdi2(9223372036854775806, -9223372036854775806);
 39    try test__negdi2(-9223372036854775804, 9223372036854775804);
 40    try test__negdi2(9223372036854775804, -9223372036854775804);
 41    try test__negdi2(-9223372036854775800, 9223372036854775800);
 42    try test__negdi2(9223372036854775800, -9223372036854775800);
 43    try test__negdi2(-4611686018427387903, 4611686018427387903);
 44    try test__negdi2(4611686018427387903, -4611686018427387903);
 45    try test__negdi2(-4611686018427387902, 4611686018427387902);
 46    try test__negdi2(4611686018427387902, -4611686018427387902);
 47    try test__negdi2(-4611686018427387900, 4611686018427387900);
 48    try test__negdi2(4611686018427387900, -4611686018427387900);
 49    try test__negdi2(-4611686018427387896, 4611686018427387896);
 50    try test__negdi2(4611686018427387896, -4611686018427387896);
 51    try test__negdi2(-2305843009213693951, 2305843009213693951);
 52    try test__negdi2(2305843009213693951, -2305843009213693951);
 53    try test__negdi2(-2305843009213693950, 2305843009213693950);
 54    try test__negdi2(2305843009213693950, -2305843009213693950);
 55    try test__negdi2(-2305843009213693948, 2305843009213693948);
 56    try test__negdi2(2305843009213693948, -2305843009213693948);
 57    try test__negdi2(-2305843009213693944, 2305843009213693944);
 58    try test__negdi2(2305843009213693944, -2305843009213693944);
 59    try test__negdi2(-1152921504606846975, 1152921504606846975);
 60    try test__negdi2(1152921504606846975, -1152921504606846975);
 61    try test__negdi2(-1152921504606846974, 1152921504606846974);
 62    try test__negdi2(1152921504606846974, -1152921504606846974);
 63    try test__negdi2(-1152921504606846972, 1152921504606846972);
 64    try test__negdi2(1152921504606846972, -1152921504606846972);
 65    try test__negdi2(-1152921504606846968, 1152921504606846968);
 66    try test__negdi2(1152921504606846968, -1152921504606846968);
 67    try test__negdi2(-576460752303423487, 576460752303423487);
 68    try test__negdi2(576460752303423487, -576460752303423487);
 69    try test__negdi2(-576460752303423486, 576460752303423486);
 70    try test__negdi2(576460752303423486, -576460752303423486);
 71    try test__negdi2(-576460752303423484, 576460752303423484);
 72    try test__negdi2(576460752303423484, -576460752303423484);
 73    try test__negdi2(-576460752303423480, 576460752303423480);
 74    try test__negdi2(576460752303423480, -576460752303423480);
 75    try test__negdi2(-288230376151711743, 288230376151711743);
 76    try test__negdi2(288230376151711743, -288230376151711743);
 77    try test__negdi2(-288230376151711742, 288230376151711742);
 78    try test__negdi2(288230376151711742, -288230376151711742);
 79    try test__negdi2(-288230376151711740, 288230376151711740);
 80    try test__negdi2(288230376151711740, -288230376151711740);
 81    try test__negdi2(-288230376151711736, 288230376151711736);
 82    try test__negdi2(288230376151711736, -288230376151711736);
 83    try test__negdi2(-144115188075855871, 144115188075855871);
 84    try test__negdi2(144115188075855871, -144115188075855871);
 85    try test__negdi2(-144115188075855870, 144115188075855870);
 86    try test__negdi2(144115188075855870, -144115188075855870);
 87    try test__negdi2(-144115188075855868, 144115188075855868);
 88    try test__negdi2(144115188075855868, -144115188075855868);
 89    try test__negdi2(-144115188075855864, 144115188075855864);
 90    try test__negdi2(144115188075855864, -144115188075855864);
 91    try test__negdi2(-72057594037927935, 72057594037927935);
 92    try test__negdi2(72057594037927935, -72057594037927935);
 93    try test__negdi2(-72057594037927934, 72057594037927934);
 94    try test__negdi2(72057594037927934, -72057594037927934);
 95    try test__negdi2(-72057594037927932, 72057594037927932);
 96    try test__negdi2(72057594037927932, -72057594037927932);
 97    try test__negdi2(-72057594037927928, 72057594037927928);
 98    try test__negdi2(72057594037927928, -72057594037927928);
 99    try test__negdi2(-36028797018963967, 36028797018963967);
100    try test__negdi2(36028797018963967, -36028797018963967);
101    try test__negdi2(-36028797018963966, 36028797018963966);
102    try test__negdi2(36028797018963966, -36028797018963966);
103    try test__negdi2(-36028797018963964, 36028797018963964);
104    try test__negdi2(36028797018963964, -36028797018963964);
105    try test__negdi2(-36028797018963960, 36028797018963960);
106    try test__negdi2(36028797018963960, -36028797018963960);
107    try test__negdi2(-18014398509481983, 18014398509481983);
108    try test__negdi2(18014398509481983, -18014398509481983);
109    try test__negdi2(-18014398509481982, 18014398509481982);
110    try test__negdi2(18014398509481982, -18014398509481982);
111    try test__negdi2(-18014398509481980, 18014398509481980);
112    try test__negdi2(18014398509481980, -18014398509481980);
113    try test__negdi2(-18014398509481976, 18014398509481976);
114    try test__negdi2(18014398509481976, -18014398509481976);
115    try test__negdi2(-9007199254740991, 9007199254740991);
116    try test__negdi2(9007199254740991, -9007199254740991);
117    try test__negdi2(-9007199254740990, 9007199254740990);
118    try test__negdi2(9007199254740990, -9007199254740990);
119    try test__negdi2(-9007199254740988, 9007199254740988);
120    try test__negdi2(9007199254740988, -9007199254740988);
121    try test__negdi2(-9007199254740984, 9007199254740984);
122    try test__negdi2(9007199254740984, -9007199254740984);
123    try test__negdi2(-4503599627370495, 4503599627370495);
124    try test__negdi2(4503599627370495, -4503599627370495);
125    try test__negdi2(-4503599627370494, 4503599627370494);
126    try test__negdi2(4503599627370494, -4503599627370494);
127    try test__negdi2(-4503599627370492, 4503599627370492);
128    try test__negdi2(4503599627370492, -4503599627370492);
129    try test__negdi2(-4503599627370488, 4503599627370488);
130    try test__negdi2(4503599627370488, -4503599627370488);
131    try test__negdi2(-2251799813685247, 2251799813685247);
132    try test__negdi2(2251799813685247, -2251799813685247);
133    try test__negdi2(-2251799813685246, 2251799813685246);
134    try test__negdi2(2251799813685246, -2251799813685246);
135    try test__negdi2(-2251799813685244, 2251799813685244);
136    try test__negdi2(2251799813685244, -2251799813685244);
137    try test__negdi2(-2251799813685240, 2251799813685240);
138    try test__negdi2(2251799813685240, -2251799813685240);
139    try test__negdi2(-1125899906842623, 1125899906842623);
140    try test__negdi2(1125899906842623, -1125899906842623);
141    try test__negdi2(-1125899906842622, 1125899906842622);
142    try test__negdi2(1125899906842622, -1125899906842622);
143    try test__negdi2(-1125899906842620, 1125899906842620);
144    try test__negdi2(1125899906842620, -1125899906842620);
145    try test__negdi2(-1125899906842616, 1125899906842616);
146    try test__negdi2(1125899906842616, -1125899906842616);
147    try test__negdi2(-562949953421311, 562949953421311);
148    try test__negdi2(562949953421311, -562949953421311);
149    try test__negdi2(-562949953421310, 562949953421310);
150    try test__negdi2(562949953421310, -562949953421310);
151    try test__negdi2(-562949953421308, 562949953421308);
152    try test__negdi2(562949953421308, -562949953421308);
153    try test__negdi2(-562949953421304, 562949953421304);
154    try test__negdi2(562949953421304, -562949953421304);
155    try test__negdi2(-281474976710655, 281474976710655);
156    try test__negdi2(281474976710655, -281474976710655);
157    try test__negdi2(-281474976710654, 281474976710654);
158    try test__negdi2(281474976710654, -281474976710654);
159    try test__negdi2(-281474976710652, 281474976710652);
160    try test__negdi2(281474976710652, -281474976710652);
161    try test__negdi2(-281474976710648, 281474976710648);
162    try test__negdi2(281474976710648, -281474976710648);
163    try test__negdi2(-140737488355327, 140737488355327);
164    try test__negdi2(140737488355327, -140737488355327);
165    try test__negdi2(-140737488355326, 140737488355326);
166    try test__negdi2(140737488355326, -140737488355326);
167    try test__negdi2(-140737488355324, 140737488355324);
168    try test__negdi2(140737488355324, -140737488355324);
169    try test__negdi2(-140737488355320, 140737488355320);
170    try test__negdi2(140737488355320, -140737488355320);
171    try test__negdi2(-70368744177663, 70368744177663);
172    try test__negdi2(70368744177663, -70368744177663);
173    try test__negdi2(-70368744177662, 70368744177662);
174    try test__negdi2(70368744177662, -70368744177662);
175    try test__negdi2(-70368744177660, 70368744177660);
176    try test__negdi2(70368744177660, -70368744177660);
177    try test__negdi2(-70368744177656, 70368744177656);
178    try test__negdi2(70368744177656, -70368744177656);
179    try test__negdi2(-35184372088831, 35184372088831);
180    try test__negdi2(35184372088831, -35184372088831);
181    try test__negdi2(-35184372088830, 35184372088830);
182    try test__negdi2(35184372088830, -35184372088830);
183    try test__negdi2(-35184372088828, 35184372088828);
184    try test__negdi2(35184372088828, -35184372088828);
185    try test__negdi2(-35184372088824, 35184372088824);
186    try test__negdi2(35184372088824, -35184372088824);
187    try test__negdi2(-17592186044415, 17592186044415);
188    try test__negdi2(17592186044415, -17592186044415);
189    try test__negdi2(-17592186044414, 17592186044414);
190    try test__negdi2(17592186044414, -17592186044414);
191    try test__negdi2(-17592186044412, 17592186044412);
192    try test__negdi2(17592186044412, -17592186044412);
193    try test__negdi2(-17592186044408, 17592186044408);
194    try test__negdi2(17592186044408, -17592186044408);
195    try test__negdi2(-8796093022207, 8796093022207);
196    try test__negdi2(8796093022207, -8796093022207);
197    try test__negdi2(-8796093022206, 8796093022206);
198    try test__negdi2(8796093022206, -8796093022206);
199    try test__negdi2(-8796093022204, 8796093022204);
200    try test__negdi2(8796093022204, -8796093022204);
201    try test__negdi2(-8796093022200, 8796093022200);
202    try test__negdi2(8796093022200, -8796093022200);
203    try test__negdi2(-4398046511103, 4398046511103);
204    try test__negdi2(4398046511103, -4398046511103);
205    try test__negdi2(-4398046511102, 4398046511102);
206    try test__negdi2(4398046511102, -4398046511102);
207    try test__negdi2(-4398046511100, 4398046511100);
208    try test__negdi2(4398046511100, -4398046511100);
209    try test__negdi2(-4398046511096, 4398046511096);
210    try test__negdi2(4398046511096, -4398046511096);
211    try test__negdi2(-2199023255551, 2199023255551);
212    try test__negdi2(2199023255551, -2199023255551);
213    try test__negdi2(-2199023255550, 2199023255550);
214    try test__negdi2(2199023255550, -2199023255550);
215    try test__negdi2(-2199023255548, 2199023255548);
216    try test__negdi2(2199023255548, -2199023255548);
217    try test__negdi2(-2199023255544, 2199023255544);
218    try test__negdi2(2199023255544, -2199023255544);
219    try test__negdi2(-1099511627775, 1099511627775);
220    try test__negdi2(1099511627775, -1099511627775);
221    try test__negdi2(-1099511627774, 1099511627774);
222    try test__negdi2(1099511627774, -1099511627774);
223    try test__negdi2(-1099511627772, 1099511627772);
224    try test__negdi2(1099511627772, -1099511627772);
225    try test__negdi2(-1099511627768, 1099511627768);
226    try test__negdi2(1099511627768, -1099511627768);
227    try test__negdi2(-549755813887, 549755813887);
228    try test__negdi2(549755813887, -549755813887);
229    try test__negdi2(-549755813886, 549755813886);
230    try test__negdi2(549755813886, -549755813886);
231    try test__negdi2(-549755813884, 549755813884);
232    try test__negdi2(549755813884, -549755813884);
233    try test__negdi2(-549755813880, 549755813880);
234    try test__negdi2(549755813880, -549755813880);
235    try test__negdi2(-274877906943, 274877906943);
236    try test__negdi2(274877906943, -274877906943);
237    try test__negdi2(-274877906942, 274877906942);
238    try test__negdi2(274877906942, -274877906942);
239    try test__negdi2(-274877906940, 274877906940);
240    try test__negdi2(274877906940, -274877906940);
241    try test__negdi2(-274877906936, 274877906936);
242    try test__negdi2(274877906936, -274877906936);
243    try test__negdi2(-137438953471, 137438953471);
244    try test__negdi2(137438953471, -137438953471);
245    try test__negdi2(-137438953470, 137438953470);
246    try test__negdi2(137438953470, -137438953470);
247    try test__negdi2(-137438953468, 137438953468);
248    try test__negdi2(137438953468, -137438953468);
249    try test__negdi2(-137438953464, 137438953464);
250    try test__negdi2(137438953464, -137438953464);
251    try test__negdi2(-68719476735, 68719476735);
252    try test__negdi2(68719476735, -68719476735);
253    try test__negdi2(-68719476734, 68719476734);
254    try test__negdi2(68719476734, -68719476734);
255    try test__negdi2(-68719476732, 68719476732);
256    try test__negdi2(68719476732, -68719476732);
257    try test__negdi2(-68719476728, 68719476728);
258    try test__negdi2(68719476728, -68719476728);
259    try test__negdi2(-34359738367, 34359738367);
260    try test__negdi2(34359738367, -34359738367);
261    try test__negdi2(-34359738366, 34359738366);
262    try test__negdi2(34359738366, -34359738366);
263    try test__negdi2(-34359738364, 34359738364);
264    try test__negdi2(34359738364, -34359738364);
265    try test__negdi2(-34359738360, 34359738360);
266    try test__negdi2(34359738360, -34359738360);
267    try test__negdi2(-17179869183, 17179869183);
268    try test__negdi2(17179869183, -17179869183);
269    try test__negdi2(-17179869182, 17179869182);
270    try test__negdi2(17179869182, -17179869182);
271    try test__negdi2(-17179869180, 17179869180);
272    try test__negdi2(17179869180, -17179869180);
273    try test__negdi2(-17179869176, 17179869176);
274    try test__negdi2(17179869176, -17179869176);
275    try test__negdi2(-8589934591, 8589934591);
276    try test__negdi2(8589934591, -8589934591);
277    try test__negdi2(-8589934590, 8589934590);
278    try test__negdi2(8589934590, -8589934590);
279    try test__negdi2(-8589934588, 8589934588);
280    try test__negdi2(8589934588, -8589934588);
281    try test__negdi2(-8589934584, 8589934584);
282    try test__negdi2(8589934584, -8589934584);
283    try test__negdi2(-4294967295, 4294967295);
284    try test__negdi2(4294967295, -4294967295);
285    try test__negdi2(-4294967294, 4294967294);
286    try test__negdi2(4294967294, -4294967294);
287    try test__negdi2(-4294967292, 4294967292);
288    try test__negdi2(4294967292, -4294967292);
289    try test__negdi2(-4294967288, 4294967288);
290    try test__negdi2(4294967288, -4294967288);
291    try test__negdi2(-2147483647, 2147483647);
292    try test__negdi2(2147483647, -2147483647);
293    try test__negdi2(-2147483646, 2147483646);
294    try test__negdi2(2147483646, -2147483646);
295    try test__negdi2(-2147483644, 2147483644);
296    try test__negdi2(2147483644, -2147483644);
297    try test__negdi2(-2147483640, 2147483640);
298    try test__negdi2(2147483640, -2147483640);
299    try test__negdi2(-1073741823, 1073741823);
300    try test__negdi2(1073741823, -1073741823);
301    try test__negdi2(-1073741822, 1073741822);
302    try test__negdi2(1073741822, -1073741822);
303    try test__negdi2(-1073741820, 1073741820);
304    try test__negdi2(1073741820, -1073741820);
305    try test__negdi2(-1073741816, 1073741816);
306    try test__negdi2(1073741816, -1073741816);
307    try test__negdi2(-536870911, 536870911);
308    try test__negdi2(536870911, -536870911);
309    try test__negdi2(-536870910, 536870910);
310    try test__negdi2(536870910, -536870910);
311    try test__negdi2(-536870908, 536870908);
312    try test__negdi2(536870908, -536870908);
313    try test__negdi2(-536870904, 536870904);
314    try test__negdi2(536870904, -536870904);
315    try test__negdi2(-268435455, 268435455);
316    try test__negdi2(268435455, -268435455);
317    try test__negdi2(-268435454, 268435454);
318    try test__negdi2(268435454, -268435454);
319    try test__negdi2(-268435452, 268435452);
320    try test__negdi2(268435452, -268435452);
321    try test__negdi2(-268435448, 268435448);
322    try test__negdi2(268435448, -268435448);
323    try test__negdi2(-134217727, 134217727);
324    try test__negdi2(134217727, -134217727);
325    try test__negdi2(-134217726, 134217726);
326    try test__negdi2(134217726, -134217726);
327    try test__negdi2(-134217724, 134217724);
328    try test__negdi2(134217724, -134217724);
329    try test__negdi2(-134217720, 134217720);
330    try test__negdi2(134217720, -134217720);
331    try test__negdi2(-67108863, 67108863);
332    try test__negdi2(67108863, -67108863);
333    try test__negdi2(-67108862, 67108862);
334    try test__negdi2(67108862, -67108862);
335    try test__negdi2(-67108860, 67108860);
336    try test__negdi2(67108860, -67108860);
337    try test__negdi2(-67108856, 67108856);
338    try test__negdi2(67108856, -67108856);
339    try test__negdi2(-33554431, 33554431);
340    try test__negdi2(33554431, -33554431);
341    try test__negdi2(-33554430, 33554430);
342    try test__negdi2(33554430, -33554430);
343    try test__negdi2(-33554428, 33554428);
344    try test__negdi2(33554428, -33554428);
345    try test__negdi2(-33554424, 33554424);
346    try test__negdi2(33554424, -33554424);
347    try test__negdi2(-16777215, 16777215);
348    try test__negdi2(16777215, -16777215);
349    try test__negdi2(-16777214, 16777214);
350    try test__negdi2(16777214, -16777214);
351    try test__negdi2(-16777212, 16777212);
352    try test__negdi2(16777212, -16777212);
353    try test__negdi2(-16777208, 16777208);
354    try test__negdi2(16777208, -16777208);
355    try test__negdi2(-8388607, 8388607);
356    try test__negdi2(8388607, -8388607);
357    try test__negdi2(-8388606, 8388606);
358    try test__negdi2(8388606, -8388606);
359    try test__negdi2(-8388604, 8388604);
360    try test__negdi2(8388604, -8388604);
361    try test__negdi2(-8388600, 8388600);
362    try test__negdi2(8388600, -8388600);
363    try test__negdi2(-4194303, 4194303);
364    try test__negdi2(4194303, -4194303);
365    try test__negdi2(-4194302, 4194302);
366    try test__negdi2(4194302, -4194302);
367    try test__negdi2(-4194300, 4194300);
368    try test__negdi2(4194300, -4194300);
369    try test__negdi2(-4194296, 4194296);
370    try test__negdi2(4194296, -4194296);
371    try test__negdi2(-2097151, 2097151);
372    try test__negdi2(2097151, -2097151);
373    try test__negdi2(-2097150, 2097150);
374    try test__negdi2(2097150, -2097150);
375    try test__negdi2(-2097148, 2097148);
376    try test__negdi2(2097148, -2097148);
377    try test__negdi2(-2097144, 2097144);
378    try test__negdi2(2097144, -2097144);
379    try test__negdi2(-1048575, 1048575);
380    try test__negdi2(1048575, -1048575);
381    try test__negdi2(-1048574, 1048574);
382    try test__negdi2(1048574, -1048574);
383    try test__negdi2(-1048572, 1048572);
384    try test__negdi2(1048572, -1048572);
385    try test__negdi2(-1048568, 1048568);
386    try test__negdi2(1048568, -1048568);
387    try test__negdi2(-524287, 524287);
388    try test__negdi2(524287, -524287);
389    try test__negdi2(-524286, 524286);
390    try test__negdi2(524286, -524286);
391    try test__negdi2(-524284, 524284);
392    try test__negdi2(524284, -524284);
393    try test__negdi2(-524280, 524280);
394    try test__negdi2(524280, -524280);
395    try test__negdi2(-262143, 262143);
396    try test__negdi2(262143, -262143);
397    try test__negdi2(-262142, 262142);
398    try test__negdi2(262142, -262142);
399    try test__negdi2(-262140, 262140);
400    try test__negdi2(262140, -262140);
401    try test__negdi2(-262136, 262136);
402    try test__negdi2(262136, -262136);
403    try test__negdi2(-131071, 131071);
404    try test__negdi2(131071, -131071);
405    try test__negdi2(-131070, 131070);
406    try test__negdi2(131070, -131070);
407    try test__negdi2(-131068, 131068);
408    try test__negdi2(131068, -131068);
409    try test__negdi2(-131064, 131064);
410    try test__negdi2(131064, -131064);
411    try test__negdi2(-65535, 65535);
412    try test__negdi2(65535, -65535);
413    try test__negdi2(-65534, 65534);
414    try test__negdi2(65534, -65534);
415    try test__negdi2(-65532, 65532);
416    try test__negdi2(65532, -65532);
417    try test__negdi2(-65528, 65528);
418    try test__negdi2(65528, -65528);
419    try test__negdi2(-32767, 32767);
420    try test__negdi2(32767, -32767);
421    try test__negdi2(-32766, 32766);
422    try test__negdi2(32766, -32766);
423    try test__negdi2(-32764, 32764);
424    try test__negdi2(32764, -32764);
425    try test__negdi2(-32760, 32760);
426    try test__negdi2(32760, -32760);
427    try test__negdi2(-16383, 16383);
428    try test__negdi2(16383, -16383);
429    try test__negdi2(-16382, 16382);
430    try test__negdi2(16382, -16382);
431    try test__negdi2(-16380, 16380);
432    try test__negdi2(16380, -16380);
433    try test__negdi2(-16376, 16376);
434    try test__negdi2(16376, -16376);
435    try test__negdi2(-8191, 8191);
436    try test__negdi2(8191, -8191);
437    try test__negdi2(-8190, 8190);
438    try test__negdi2(8190, -8190);
439    try test__negdi2(-8188, 8188);
440    try test__negdi2(8188, -8188);
441    try test__negdi2(-8184, 8184);
442    try test__negdi2(8184, -8184);
443    try test__negdi2(-4095, 4095);
444    try test__negdi2(4095, -4095);
445    try test__negdi2(-4094, 4094);
446    try test__negdi2(4094, -4094);
447    try test__negdi2(-4092, 4092);
448    try test__negdi2(4092, -4092);
449    try test__negdi2(-4088, 4088);
450    try test__negdi2(4088, -4088);
451    try test__negdi2(-2047, 2047);
452    try test__negdi2(2047, -2047);
453    try test__negdi2(-2046, 2046);
454    try test__negdi2(2046, -2046);
455    try test__negdi2(-2044, 2044);
456    try test__negdi2(2044, -2044);
457    try test__negdi2(-2040, 2040);
458    try test__negdi2(2040, -2040);
459    try test__negdi2(-1023, 1023);
460    try test__negdi2(1023, -1023);
461    try test__negdi2(-1022, 1022);
462    try test__negdi2(1022, -1022);
463    try test__negdi2(-1020, 1020);
464    try test__negdi2(1020, -1020);
465    try test__negdi2(-1016, 1016);
466    try test__negdi2(1016, -1016);
467    try test__negdi2(-511, 511);
468    try test__negdi2(511, -511);
469    try test__negdi2(-510, 510);
470    try test__negdi2(510, -510);
471    try test__negdi2(-508, 508);
472    try test__negdi2(508, -508);
473    try test__negdi2(-504, 504);
474    try test__negdi2(504, -504);
475    try test__negdi2(-255, 255);
476    try test__negdi2(255, -255);
477    try test__negdi2(-254, 254);
478    try test__negdi2(254, -254);
479    try test__negdi2(-252, 252);
480    try test__negdi2(252, -252);
481    try test__negdi2(-248, 248);
482    try test__negdi2(248, -248);
483    try test__negdi2(-127, 127);
484    try test__negdi2(127, -127);
485    try test__negdi2(-126, 126);
486    try test__negdi2(126, -126);
487    try test__negdi2(-124, 124);
488    try test__negdi2(124, -124);
489    try test__negdi2(-120, 120);
490    try test__negdi2(120, -120);
491    try test__negdi2(-63, 63);
492    try test__negdi2(63, -63);
493    try test__negdi2(-62, 62);
494    try test__negdi2(62, -62);
495    try test__negdi2(-60, 60);
496    try test__negdi2(60, -60);
497    try test__negdi2(-56, 56);
498    try test__negdi2(56, -56);
499    try test__negdi2(-31, 31);
500    try test__negdi2(31, -31);
501    try test__negdi2(-30, 30);
502    try test__negdi2(30, -30);
503    try test__negdi2(-28, 28);
504    try test__negdi2(28, -28);
505    try test__negdi2(-24, 24);
506    try test__negdi2(24, -24);
507    try test__negdi2(-15, 15);
508    try test__negdi2(15, -15);
509    try test__negdi2(-14, 14);
510    try test__negdi2(14, -14);
511    try test__negdi2(-12, 12);
512    try test__negdi2(12, -12);
513    try test__negdi2(-8, 8);
514    try test__negdi2(8, -8);
515}