simfony_as_rust/jet/
multi_bit_logic.rs

1/* This file has been automatically generated. */
2
3//! # Multi-bit logic
4//!
5//! This module defines jets that operate on strings of bits.
6
7#![allow(unused)]
8#![allow(clippy::complexity)]
9
10use super::*;
11
12/// Check if the value is [`u8::MAX`].
13///
14/// ## Cost
15///
16/// 76 mWU _(milli weight units)_
17pub fn all_8(a: u8) -> bool {
18    todo!()
19}
20
21/// Check if the value is [`u16::MAX`].
22///
23/// ## Cost
24///
25/// 62 mWU _(milli weight units)_
26pub fn all_16(a: u16) -> bool {
27    todo!()
28}
29
30/// Check if the value is [`u32::MAX`].
31///
32/// ## Cost
33///
34/// 65 mWU _(milli weight units)_
35pub fn all_32(a: u32) -> bool {
36    todo!()
37}
38
39/// Check if the value is [`u64::MAX`].
40///
41/// ## Cost
42///
43/// 79 mWU _(milli weight units)_
44pub fn all_64(a: u64) -> bool {
45    todo!()
46}
47
48/// Bitwise AND of two 1-bit values.
49///
50/// ## Cost
51///
52/// 79 mWU _(milli weight units)_
53pub fn and_1(a: u1, b: u1) -> u1 {
54    todo!()
55}
56
57/// Bitwise AND of two 8-bit values.
58///
59/// ## Cost
60///
61/// 91 mWU _(milli weight units)_
62pub fn and_8(a: u8, b: u8) -> u8 {
63    todo!()
64}
65
66/// Bitwise AND of two 16-bit values.
67///
68/// ## Cost
69///
70/// 88 mWU _(milli weight units)_
71pub fn and_16(a: u16, b: u16) -> u16 {
72    todo!()
73}
74
75/// Bitwise AND of two 32-bit values
76///
77/// ## Cost
78///
79/// 94 mWU _(milli weight units)_
80pub fn and_32(a: u32, b: u32) -> u32 {
81    todo!()
82}
83
84/// Bitwise AND of two 64-bit values
85///
86/// ## Cost
87///
88/// 93 mWU _(milli weight units)_
89pub fn and_64(a: u64, b: u64) -> u64 {
90    todo!()
91}
92
93/// Bitwise CHOICE of a bit and two 1-bit values.  If the bit is true, then take the first value, else take the second value.
94///
95/// ## Cost
96///
97/// 78 mWU _(milli weight units)_
98pub fn ch_1(a: u1, b: u1, c: u1) -> u1 {
99    todo!()
100}
101
102/// Bitwise CHOICE of a bit and two 8-bit values.  If the bit is true, then take the first value, else take the second value.
103///
104/// ## Cost
105///
106/// 77 mWU _(milli weight units)_
107pub fn ch_8(a: u8, b: u8, c: u8) -> u8 {
108    todo!()
109}
110
111/// Bitwise CHOICE of a bit and two 16-bit values. If the bit is true, then take the first value, else take the second value.
112///
113/// ## Cost
114///
115/// 94 mWU _(milli weight units)_
116pub fn ch_16(a: u16, b: (u16, u16)) -> u16 {
117    todo!()
118}
119
120/// Bitwise CHOICE of a bit and two 32-bit values. If the bit is true, then take the first value, else take the second value.
121///
122/// ## Cost
123///
124/// 91 mWU _(milli weight units)_
125pub fn ch_32(a: u32, b: (u32, u32)) -> u32 {
126    todo!()
127}
128
129/// Bitwise CHOICE of a bit and two 64-bit values. If the bit is true, then take the first value, else take the second value.
130///
131/// ## Cost
132///
133/// 91 mWU _(milli weight units)_
134pub fn ch_64(a: u64, b: (u64, u64)) -> u64 {
135    todo!()
136}
137
138/// Bitwise NOT of a 1-bit  value.
139///
140/// ## Cost
141///
142/// 79 mWU _(milli weight units)_
143pub fn complement_1(a: u1) -> u1 {
144    todo!()
145}
146
147/// Bitwise NOT of an 8-bit value.
148///
149/// ## Cost
150///
151/// 80 mWU _(milli weight units)_
152pub fn complement_8(a: u8) -> u8 {
153    todo!()
154}
155
156/// Bitwise NOT of a 16-bit value.
157///
158/// ## Cost
159///
160/// 75 mWU _(milli weight units)_
161pub fn complement_16(a: u16) -> u16 {
162    todo!()
163}
164
165/// Bitwise NOT of a 32-bit value.
166///
167/// ## Cost
168///
169/// 93 mWU _(milli weight units)_
170pub fn complement_32(a: u32) -> u32 {
171    todo!()
172}
173
174/// Bitwise NOT of a 64-bit value.
175///
176/// ## Cost
177///
178/// 88 mWU _(milli weight units)_
179pub fn complement_64(a: u64) -> u64 {
180    todo!()
181}
182
183/// Check if two 1-bit values are equal.
184///
185/// ## Cost
186///
187/// 74 mWU _(milli weight units)_
188pub fn eq_1(a: u1, b: u1) -> bool {
189    todo!()
190}
191
192/// Check if two 8-bit values are equal.
193///
194/// ## Cost
195///
196/// 95 mWU _(milli weight units)_
197pub fn eq_8(a: u8, b: u8) -> bool {
198    todo!()
199}
200
201/// Check if two 16-bit values are equal.
202///
203/// ## Cost
204///
205/// 84 mWU _(milli weight units)_
206pub fn eq_16(a: u16, b: u16) -> bool {
207    todo!()
208}
209
210/// Check if two 32-bit values are equal.
211///
212/// ## Cost
213///
214/// 88 mWU _(milli weight units)_
215pub fn eq_32(a: u32, b: u32) -> bool {
216    todo!()
217}
218
219/// Check if two 64-bit values are equal.
220///
221/// ## Cost
222///
223/// 100 mWU _(milli weight units)_
224pub fn eq_64(a: u64, b: u64) -> bool {
225    todo!()
226}
227
228/// Check if two 256-bit values are equal.
229///
230/// ## Cost
231///
232/// 225 mWU _(milli weight units)_
233pub fn eq_256(a: u256, b: u256) -> bool {
234    todo!()
235}
236
237/// Helper for left-shifting  bits. The bits are shifted from a 1-bit  value into a 16-bit value. Return the shifted value and the 1  bit  that was  shifted out.
238///
239/// ## Cost
240///
241/// 83 mWU _(milli weight units)_
242pub fn full_left_shift_16_1(a: u16, b: u1) -> (u1, u16) {
243    todo!()
244}
245
246/// Helper for left-shifting  bits. The bits are shifted from a 2-bit  value into a 16-bit value. Return the shifted value and the 2  bits that were shifted out.
247///
248/// ## Cost
249///
250/// 83 mWU _(milli weight units)_
251pub fn full_left_shift_16_2(a: u16, b: u2) -> (u2, u16) {
252    todo!()
253}
254
255/// Helper for left-shifting  bits. The bits are shifted from a 4-bit  value into a 16-bit value. Return the shifted value and the 4  bits that were shifted out.
256///
257/// ## Cost
258///
259/// 89 mWU _(milli weight units)_
260pub fn full_left_shift_16_4(a: u16, b: u4) -> (u4, u16) {
261    todo!()
262}
263
264/// Helper for left-shifting  bits. The bits are shifted from a 8-bit  value into a 16-bit value. Return the shifted value and the 8  bits that were shifted out.
265///
266/// ## Cost
267///
268/// 65 mWU _(milli weight units)_
269pub fn full_left_shift_16_8(a: u16, b: u8) -> (u8, u16) {
270    todo!()
271}
272
273/// Helper for left-shifting  bits. The bits are shifted from a 1-bit  value into a 32-bit value. Return the shifted value and the 1  bit  that was  shifted out.
274///
275/// ## Cost
276///
277/// 84 mWU _(milli weight units)_
278pub fn full_left_shift_32_1(a: u32, b: u1) -> (u1, u32) {
279    todo!()
280}
281
282/// Helper for left-shifting  bits. The bits are shifted from a 2-bit  value into a 32-bit value. Return the shifted value and the 2  bits that were shifted out.
283///
284/// ## Cost
285///
286/// 67 mWU _(milli weight units)_
287pub fn full_left_shift_32_2(a: u32, b: u2) -> (u2, u32) {
288    todo!()
289}
290
291/// Helper for left-shifting  bits. The bits are shifted from a 4-bit  value into a 32-bit value. Return the shifted value and the 4  bits that were shifted out.
292///
293/// ## Cost
294///
295/// 84 mWU _(milli weight units)_
296pub fn full_left_shift_32_4(a: u32, b: u4) -> (u4, u32) {
297    todo!()
298}
299
300/// Helper for left-shifting  bits. The bits are shifted from a 8-bit  value into a 32-bit value. Return the shifted value and the 8  bits that were shifted out.
301///
302/// ## Cost
303///
304/// 91 mWU _(milli weight units)_
305pub fn full_left_shift_32_8(a: u32, b: u8) -> (u8, u32) {
306    todo!()
307}
308
309/// Helper for left-shifting  bits. The bits are shifted from a 16-bit value into a 32-bit value. Return the shifted value and the 16 bits that were shifted out.
310///
311/// ## Cost
312///
313/// 81 mWU _(milli weight units)_
314pub fn full_left_shift_32_16(a: u32, b: u16) -> (u16, u32) {
315    todo!()
316}
317
318/// Helper for left-shifting  bits. The bits are shifted from a 1-bit  value into a 64-bit value. Return the shifted value and the 1  bit  that was  shifted out.
319///
320/// ## Cost
321///
322/// 99 mWU _(milli weight units)_
323pub fn full_left_shift_64_1(a: u64, b: u1) -> (u1, u64) {
324    todo!()
325}
326
327/// Helper for left-shifting  bits. The bits are shifted from a 2-bit  value into a 64-bit value. Return the shifted value and the 2  bits that were shifted out.
328///
329/// ## Cost
330///
331/// 94 mWU _(milli weight units)_
332pub fn full_left_shift_64_2(a: u64, b: u2) -> (u2, u64) {
333    todo!()
334}
335
336/// Helper for left-shifting  bits. The bits are shifted from a 4-bit  value into a 64-bit value. Return the shifted value and the 4  bits that were shifted out.
337///
338/// ## Cost
339///
340/// 94 mWU _(milli weight units)_
341pub fn full_left_shift_64_4(a: u64, b: u4) -> (u4, u64) {
342    todo!()
343}
344
345/// Helper for left-shifting  bits. The bits are shifted from a 8-bit  value into a 64-bit value. Return the shifted value and the 8  bits that were shifted out.
346///
347/// ## Cost
348///
349/// 86 mWU _(milli weight units)_
350pub fn full_left_shift_64_8(a: u64, b: u8) -> (u8, u64) {
351    todo!()
352}
353
354/// Helper for left-shifting  bits. The bits are shifted from a 16-bit value into a 64-bit value. Return the shifted value and the 16 bits that were shifted out.
355///
356/// ## Cost
357///
358/// 90 mWU _(milli weight units)_
359pub fn full_left_shift_64_16(a: u64, b: u16) -> (u16, u64) {
360    todo!()
361}
362
363/// Helper for left-shifting  bits. The bits are shifted from a 32-bit value into a 64-bit value. Return the shifted value and the 32 bits that were shifted out.
364///
365/// ## Cost
366///
367/// 86 mWU _(milli weight units)_
368pub fn full_left_shift_64_32(a: u64, b: u32) -> (u32, u64) {
369    todo!()
370}
371
372/// Helper for left-shifting  bits. The bits are shifted from a 1-bit  value into a 8-bit  value. Return the shifted value and the 1  bit  that was  shifted out.
373///
374/// ## Cost
375///
376/// 96 mWU _(milli weight units)_
377pub fn full_left_shift_8_1(a: u8, b: u1) -> (u1, u8) {
378    todo!()
379}
380
381/// Helper for left-shifting  bits. The bits are shifted from a 2-bit  value into a 8-bit  value. Return the shifted value and the 2  bits that were shifted out.
382///
383/// ## Cost
384///
385/// 96 mWU _(milli weight units)_
386pub fn full_left_shift_8_2(a: u8, b: u2) -> (u2, u8) {
387    todo!()
388}
389
390/// Helper for left-shifting  bits. The bits are shifted from a 4-bit  value into a 8-bit  value. Return the shifted value and the 4  bits that were shifted out.
391///
392/// ## Cost
393///
394/// 85 mWU _(milli weight units)_
395pub fn full_left_shift_8_4(a: u8, b: u4) -> (u4, u8) {
396    todo!()
397}
398
399/// Helper for right-shifting bits. The bits are shifted from a 1-bit  value into a 16-bit value. Return the shifted value and the 1  bit  that was  shifted out.
400///
401/// ## Cost
402///
403/// 80 mWU _(milli weight units)_
404pub fn full_right_shift_16_1(a: u1, b: u16) -> (u16, u1) {
405    todo!()
406}
407
408/// Helper for right-shifting bits. The bits are shifted from a 2-bit  value into a 16-bit value. Return the shifted value and the 2  bits that were shifted out.
409///
410/// ## Cost
411///
412/// 79 mWU _(milli weight units)_
413pub fn full_right_shift_16_2(a: u2, b: u16) -> (u16, u2) {
414    todo!()
415}
416
417/// Helper for right-shifting bits. The bits are shifted from a 4-bit  value into a 16-bit value. Return the shifted value and the 4  bits that were shifted out.
418///
419/// ## Cost
420///
421/// 88 mWU _(milli weight units)_
422pub fn full_right_shift_16_4(a: u4, b: u16) -> (u16, u4) {
423    todo!()
424}
425
426/// Helper for right-shifting bits. The bits are shifted from a 8-bit  value into a 16-bit value. Return the shifted value and the 8  bits that were shifted out.
427///
428/// ## Cost
429///
430/// 57 mWU _(milli weight units)_
431pub fn full_right_shift_16_8(a: u8, b: u16) -> (u16, u8) {
432    todo!()
433}
434
435/// Helper for right-shifting bits. The bits are shifted from a 1-bit  value into a 32-bit value. Return the shifted value and the 1  bit  that was  shifted out.
436///
437/// ## Cost
438///
439/// 74 mWU _(milli weight units)_
440pub fn full_right_shift_32_1(a: u1, b: u32) -> (u32, u1) {
441    todo!()
442}
443
444/// Helper for right-shifting bits. The bits are shifted from a 2-bit  value into a 32-bit value. Return the shifted value and the 2  bits that were shifted out.
445///
446/// ## Cost
447///
448/// 63 mWU _(milli weight units)_
449pub fn full_right_shift_32_2(a: u2, b: u32) -> (u32, u2) {
450    todo!()
451}
452
453/// Helper for right-shifting bits. The bits are shifted from a 4-bit  value into a 32-bit value. Return the shifted value and the 4  bits that were shifted out.
454///
455/// ## Cost
456///
457/// 71 mWU _(milli weight units)_
458pub fn full_right_shift_32_4(a: u4, b: u32) -> (u32, u4) {
459    todo!()
460}
461
462/// Helper for right-shifting bits. The bits are shifted from a 8-bit  value into a 32-bit value. Return the shifted value and the 8  bits that were shifted out.
463///
464/// ## Cost
465///
466/// 84 mWU _(milli weight units)_
467pub fn full_right_shift_32_8(a: u8, b: u32) -> (u32, u8) {
468    todo!()
469}
470
471/// Helper for right-shifting bits. The bits are shifted from a 16-bit value into a 32-bit value. Return the shifted value and the 16 bits that were shifted out.
472///
473/// ## Cost
474///
475/// 64 mWU _(milli weight units)_
476pub fn full_right_shift_32_16(a: u16, b: u32) -> (u32, u16) {
477    todo!()
478}
479
480/// Helper for right-shifting bits. The bits are shifted from a 1-bit  value into a 64-bit value. Return the shifted value and the 1  bit  that was  shifted out.
481///
482/// ## Cost
483///
484/// 99 mWU _(milli weight units)_
485pub fn full_right_shift_64_1(a: u1, b: u64) -> (u64, u1) {
486    todo!()
487}
488
489/// Helper for right-shifting bits. The bits are shifted from a 2-bit  value into a 64-bit value. Return the shifted value and the 2  bits that were shifted out.
490///
491/// ## Cost
492///
493/// 86 mWU _(milli weight units)_
494pub fn full_right_shift_64_2(a: u2, b: u64) -> (u64, u2) {
495    todo!()
496}
497
498/// Helper for right-shifting bits. The bits are shifted from a 4-bit  value into a 64-bit value. Return the shifted value and the 4  bits that were shifted out.
499///
500/// ## Cost
501///
502/// 93 mWU _(milli weight units)_
503pub fn full_right_shift_64_4(a: u4, b: u64) -> (u64, u4) {
504    todo!()
505}
506
507/// Helper for right-shifting bits. The bits are shifted from a 8-bit  value into a 64-bit value. Return the shifted value and the 8  bits that were shifted out.
508///
509/// ## Cost
510///
511/// 99 mWU _(milli weight units)_
512pub fn full_right_shift_64_8(a: u8, b: u64) -> (u64, u8) {
513    todo!()
514}
515
516/// Helper for right-shifting bits. The bits are shifted from a 16-bit value into a 64-bit value. Return the shifted value and the 16 bits that were shifted out.
517///
518/// ## Cost
519///
520/// 86 mWU _(milli weight units)_
521pub fn full_right_shift_64_16(a: u16, b: u64) -> (u64, u16) {
522    todo!()
523}
524
525/// Helper for right-shifting bits. The bits are shifted from a 32-bit value into a 64-bit value. Return the shifted value and the 32 bits that were shifted out.
526///
527/// ## Cost
528///
529/// 73 mWU _(milli weight units)_
530pub fn full_right_shift_64_32(a: u32, b: u64) -> (u64, u32) {
531    todo!()
532}
533
534/// Helper for right-shifting bits. The bits are shifted from a 1-bit  value into a 8-bit  value. Return the shifted value and the 1  bit  that was  shifted out.
535///
536/// ## Cost
537///
538/// 88 mWU _(milli weight units)_
539pub fn full_right_shift_8_1(a: u1, b: u8) -> (u8, u1) {
540    todo!()
541}
542
543/// Helper for right-shifting bits. The bits are shifted from a 2-bit  value into a 8-bit  value. Return the shifted value and the 2  bits that were shifted out.
544///
545/// ## Cost
546///
547/// 86 mWU _(milli weight units)_
548pub fn full_right_shift_8_2(a: u2, b: u8) -> (u8, u2) {
549    todo!()
550}
551
552/// Helper for right-shifting bits. The bits are shifted from a 4-bit  value into a 8-bit  value. Return the shifted value and the 4  bits that were shifted out.
553///
554/// ## Cost
555///
556/// 89 mWU _(milli weight units)_
557pub fn full_right_shift_8_4(a: u4, b: u8) -> (u8, u4) {
558    todo!()
559}
560
561/// Return `u1::MAX` = 1.
562///
563/// ## Cost
564///
565/// 57 mWU _(milli weight units)_
566pub fn high_1() -> u1 {
567    todo!()
568}
569
570/// Return [`u8::MAX`].
571///
572/// ## Cost
573///
574/// 59 mWU _(milli weight units)_
575pub fn high_8() -> u8 {
576    todo!()
577}
578
579/// Return [`u16::MAX`].
580///
581/// ## Cost
582///
583/// 66 mWU _(milli weight units)_
584pub fn high_16() -> u16 {
585    todo!()
586}
587
588/// Return [`u32::MAX`].
589///
590/// ## Cost
591///
592/// 58 mWU _(milli weight units)_
593pub fn high_32() -> u32 {
594    todo!()
595}
596
597/// Return [`u64::MAX`].
598///
599/// ## Cost
600///
601/// 68 mWU _(milli weight units)_
602pub fn high_64() -> u64 {
603    todo!()
604}
605
606/// Extend a 16-bit value to a 32-bit value by padding its left with the MSB.
607///
608/// ## Cost
609///
610/// 86 mWU _(milli weight units)_
611pub fn left_extend_16_32(a: u16) -> u32 {
612    todo!()
613}
614
615/// Extend a 16-bit value to a 64-bit value by padding its left with the MSB.
616///
617/// ## Cost
618///
619/// 89 mWU _(milli weight units)_
620pub fn left_extend_16_64(a: u16) -> u64 {
621    todo!()
622}
623
624/// Extend a 1-bit  value to an 8-bit value by padding its left with the MSB.
625///
626/// ## Cost
627///
628/// 65 mWU _(milli weight units)_
629pub fn left_extend_1_8(a: u1) -> u8 {
630    todo!()
631}
632
633/// Extend a 1-bit  value to a 16-bit value by padding its left with the MSB.
634///
635/// ## Cost
636///
637/// 67 mWU _(milli weight units)_
638pub fn left_extend_1_16(a: u1) -> u16 {
639    todo!()
640}
641
642/// Extend a 1-bit  value to a 32-bit value by padding its left with the MSB.
643///
644/// ## Cost
645///
646/// 60 mWU _(milli weight units)_
647pub fn left_extend_1_32(a: u1) -> u32 {
648    todo!()
649}
650
651/// Extend a 1-bit  value to a 64-bit value by padding its left with the MSB.
652///
653/// ## Cost
654///
655/// 76 mWU _(milli weight units)_
656pub fn left_extend_1_64(a: u1) -> u64 {
657    todo!()
658}
659
660/// Extend a 16-bit value to a 64-bit value by padding its left with the MSB.
661///
662/// ## Cost
663///
664/// 63 mWU _(milli weight units)_
665pub fn left_extend_32_64(a: u32) -> u64 {
666    todo!()
667}
668
669/// Extend an 8-bit value to a 16-bit value by padding its left with the MSB.
670///
671/// ## Cost
672///
673/// 88 mWU _(milli weight units)_
674pub fn left_extend_8_16(a: u8) -> u16 {
675    todo!()
676}
677
678/// Extend an 8-bit value to a 32-bit value by padding its left with the MSB.
679///
680/// ## Cost
681///
682/// 90 mWU _(milli weight units)_
683pub fn left_extend_8_32(a: u8) -> u32 {
684    todo!()
685}
686
687/// Extend an 8-bit value to a 64-bit value by padding its left with the MSB.
688///
689/// ## Cost
690///
691/// 107 mWU _(milli weight units)_
692pub fn left_extend_8_64(a: u8) -> u64 {
693    todo!()
694}
695
696/// Extend a 16-bit value to a 32-bit value by padding its left with ones.
697///
698/// ## Cost
699///
700/// 91 mWU _(milli weight units)_
701pub fn left_pad_high_16_32(a: u16) -> u32 {
702    todo!()
703}
704
705/// Extend a 16-bit value to a 64-bit value by padding its left with ones.
706///
707/// ## Cost
708///
709/// 110 mWU _(milli weight units)_
710pub fn left_pad_high_16_64(a: u16) -> u64 {
711    todo!()
712}
713
714/// Extend a 1-bit  value to an 8-bit value by padding its left with ones.
715///
716/// ## Cost
717///
718/// 99 mWU _(milli weight units)_
719pub fn left_pad_high_1_8(a: u1) -> u8 {
720    todo!()
721}
722
723/// Extend a 1-bit  value to a 16-bit value by padding its left with ones.
724///
725/// ## Cost
726///
727/// 141 mWU _(milli weight units)_
728pub fn left_pad_high_1_16(a: u1) -> u16 {
729    todo!()
730}
731
732/// Extend a 1-bit  value to a 32-bit value by padding its left with ones.
733///
734/// ## Cost
735///
736/// 263 mWU _(milli weight units)_
737pub fn left_pad_high_1_32(a: u1) -> u32 {
738    todo!()
739}
740
741/// Extend a 1-bit  value to a 64-bit value by padding its left with ones.
742///
743/// ## Cost
744///
745/// 422 mWU _(milli weight units)_
746pub fn left_pad_high_1_64(a: u1) -> u64 {
747    todo!()
748}
749
750/// Extend a 32-bit value to a 64-bit value by padding its left with ones.
751///
752/// ## Cost
753///
754/// 93 mWU _(milli weight units)_
755pub fn left_pad_high_32_64(a: u32) -> u64 {
756    todo!()
757}
758
759/// Extend an 8-bit value to a 16-bit value by padding its left with ones.
760///
761/// ## Cost
762///
763/// 88 mWU _(milli weight units)_
764pub fn left_pad_high_8_16(a: u8) -> u16 {
765    todo!()
766}
767
768/// Extend an 8-bit value to a 32-bit value by padding its left with ones.
769///
770/// ## Cost
771///
772/// 103 mWU _(milli weight units)_
773pub fn left_pad_high_8_32(a: u8) -> u32 {
774    todo!()
775}
776
777/// Extend a 1-bit  value to a 64-bit value by padding its left with ones.
778///
779/// ## Cost
780///
781/// 136 mWU _(milli weight units)_
782pub fn left_pad_high_8_64(a: u8) -> u64 {
783    todo!()
784}
785
786/// Extend a 16-bit value to a 32-bit value by padding its left with zeroes.
787///
788/// ## Cost
789///
790/// 69 mWU _(milli weight units)_
791pub fn left_pad_low_16_32(a: u16) -> u32 {
792    todo!()
793}
794
795/// Extend a 16-bit value to a 64-bit value by padding its left with zeroes.
796///
797/// ## Cost
798///
799/// 106 mWU _(milli weight units)_
800pub fn left_pad_low_16_64(a: u16) -> u64 {
801    todo!()
802}
803
804/// Extend a 1-bit  value to an 8-bit value by padding its left with zeroes.
805///
806/// ## Cost
807///
808/// 56 mWU _(milli weight units)_
809pub fn left_pad_low_1_8(a: u1) -> u8 {
810    todo!()
811}
812
813/// Extend a 1-bit  value to a 16-bit value by padding its left with zeroes.
814///
815/// ## Cost
816///
817/// 65 mWU _(milli weight units)_
818pub fn left_pad_low_1_16(a: u1) -> u16 {
819    todo!()
820}
821
822/// Extend a 1-bit  value to a 32-bit value by padding its left with zeroes.
823///
824/// ## Cost
825///
826/// 63 mWU _(milli weight units)_
827pub fn left_pad_low_1_32(a: u1) -> u32 {
828    todo!()
829}
830
831/// Extend a 1-bit  value to a 64-bit value by padding its left with zeroes.
832///
833/// ## Cost
834///
835/// 61 mWU _(milli weight units)_
836pub fn left_pad_low_1_64(a: u1) -> u64 {
837    todo!()
838}
839
840/// Extend a 32-bit value to a 64-bit value by padding its left with zeroes.
841///
842/// ## Cost
843///
844/// 91 mWU _(milli weight units)_
845pub fn left_pad_low_32_64(a: u32) -> u64 {
846    todo!()
847}
848
849/// Extend an 8-bit value to a 16-bit value by padding its left with zeroes.
850///
851/// ## Cost
852///
853/// 66 mWU _(milli weight units)_
854pub fn left_pad_low_8_16(a: u8) -> u16 {
855    todo!()
856}
857
858/// Extend an 8-bit value to a 32-bit value by padding its left with zeroes.
859///
860/// ## Cost
861///
862/// 61 mWU _(milli weight units)_
863pub fn left_pad_low_8_32(a: u8) -> u32 {
864    todo!()
865}
866
867/// Extend an 8-bit value to a 64-bit value by padding its left with zeroes.
868///
869/// ## Cost
870///
871/// 112 mWU _(milli weight units)_
872pub fn left_pad_low_8_64(a: u8) -> u64 {
873    todo!()
874}
875
876/// Left-rotate an 8-bit value by the given amount.
877///
878/// ## Cost
879///
880/// 88 mWU _(milli weight units)_
881pub fn left_rotate_8(a: u4, b: u8) -> u8 {
882    todo!()
883}
884
885/// Left-rotate a 16-bit value by the given amount.
886///
887/// ## Cost
888///
889/// 77 mWU _(milli weight units)_
890pub fn left_rotate_16(a: u4, b: u16) -> u16 {
891    todo!()
892}
893
894/// Left-rotate a 32-bit value by the given amount.
895///
896/// ## Cost
897///
898/// 106 mWU _(milli weight units)_
899pub fn left_rotate_32(a: u8, b: u32) -> u32 {
900    todo!()
901}
902
903/// Left-rotate a 64-bit value by the given amount.
904///
905/// ## Cost
906///
907/// 98 mWU _(milli weight units)_
908pub fn left_rotate_64(a: u8, b: u64) -> u64 {
909    todo!()
910}
911
912/// Left-shift an 8-bit value by the given amount. Bits are filled with zeroes.
913///
914/// ## Cost
915///
916/// 91 mWU _(milli weight units)_
917pub fn left_shift_8(a: u4, b: u8) -> u8 {
918    todo!()
919}
920
921/// Left-shift a 16-bit value by the given amount. Bits are filled with zeroes.
922///
923/// ## Cost
924///
925/// 72 mWU _(milli weight units)_
926pub fn left_shift_16(a: u4, b: u16) -> u16 {
927    todo!()
928}
929
930/// Left-shift a 32-bit value by the given amount. Bits are filled with zeroes.
931///
932/// ## Cost
933///
934/// 78 mWU _(milli weight units)_
935pub fn left_shift_32(a: u8, b: u32) -> u32 {
936    todo!()
937}
938
939/// Left-shift a 64-bit value by the given amount. Bits are filled with zeroes.
940///
941/// ## Cost
942///
943/// 82 mWU _(milli weight units)_
944pub fn left_shift_64(a: u8, b: u64) -> u64 {
945    todo!()
946}
947
948/// Left-shift an 8-bit value by the given amount. Bits are filled with the given bit.
949///
950/// ## Cost
951///
952/// 107 mWU _(milli weight units)_
953pub fn left_shift_with_8(a: u1, b: u4, c: u8) -> u8 {
954    todo!()
955}
956
957/// Left-shift a 16-bit value by the given amount. Bits are filled with the given bit.
958///
959/// ## Cost
960///
961/// 83 mWU _(milli weight units)_
962pub fn left_shift_with_16(a: u1, b: u4, c: u16) -> u16 {
963    todo!()
964}
965
966/// Left-shift a 32-bit value by the given amount. Bits are filled with the given bit.
967///
968/// ## Cost
969///
970/// 95 mWU _(milli weight units)_
971pub fn left_shift_with_32(a: u1, b: u8, c: u32) -> u32 {
972    todo!()
973}
974
975/// Left-shift a 64-bit value by the given amount. Bits are filled with the given bit.
976///
977/// ## Cost
978///
979/// 103 mWU _(milli weight units)_
980pub fn left_shift_with_64(a: u1, b: u8, c: u64) -> u64 {
981    todo!()
982}
983
984/// Return the most significant 1  bit  of a 16-bit value.
985///
986/// ## Cost
987///
988/// 93 mWU _(milli weight units)_
989pub fn leftmost_16_1(a: u16) -> u1 {
990    todo!()
991}
992
993/// Return the most significant 2  bits of a 16-bit value.
994///
995/// ## Cost
996///
997/// 90 mWU _(milli weight units)_
998pub fn leftmost_16_2(a: u16) -> u2 {
999    todo!()
1000}
1001
1002/// Return the most significant 4  bits of a 16-bit value.
1003///
1004/// ## Cost
1005///
1006/// 75 mWU _(milli weight units)_
1007pub fn leftmost_16_4(a: u16) -> u4 {
1008    todo!()
1009}
1010
1011/// Return the most significant 8  bits of a 16-bit value.
1012///
1013/// ## Cost
1014///
1015/// 71 mWU _(milli weight units)_
1016pub fn leftmost_16_8(a: u16) -> u8 {
1017    todo!()
1018}
1019
1020/// Return the most significant 1  bit  of a 32-bit value.
1021///
1022/// ## Cost
1023///
1024/// 77 mWU _(milli weight units)_
1025pub fn leftmost_32_1(a: u32) -> u1 {
1026    todo!()
1027}
1028
1029/// Return the most significant 2  bits of a 32-bit value.
1030///
1031/// ## Cost
1032///
1033/// 66 mWU _(milli weight units)_
1034pub fn leftmost_32_2(a: u32) -> u2 {
1035    todo!()
1036}
1037
1038/// Return the most significant 4  bits of a 32-bit value.
1039///
1040/// ## Cost
1041///
1042/// 52 mWU _(milli weight units)_
1043pub fn leftmost_32_4(a: u32) -> u4 {
1044    todo!()
1045}
1046
1047/// Return the most significant 8  bits of a 32-bit value.
1048///
1049/// ## Cost
1050///
1051/// 103 mWU _(milli weight units)_
1052pub fn leftmost_32_8(a: u32) -> u8 {
1053    todo!()
1054}
1055
1056/// Return the most significant 16 bits of a 32-bit value.
1057///
1058/// ## Cost
1059///
1060/// 102 mWU _(milli weight units)_
1061pub fn leftmost_32_16(a: u32) -> u16 {
1062    todo!()
1063}
1064
1065/// Return the most significant 1  bits of a 64-bit value.
1066///
1067/// ## Cost
1068///
1069/// 78 mWU _(milli weight units)_
1070pub fn leftmost_64_1(a: u64) -> u1 {
1071    todo!()
1072}
1073
1074/// Return the most significant 2  bits of a 64-bit value.
1075///
1076/// ## Cost
1077///
1078/// 71 mWU _(milli weight units)_
1079pub fn leftmost_64_2(a: u64) -> u2 {
1080    todo!()
1081}
1082
1083/// Return the most significant 4  bits of a 64-bit value.
1084///
1085/// ## Cost
1086///
1087/// 79 mWU _(milli weight units)_
1088pub fn leftmost_64_4(a: u64) -> u4 {
1089    todo!()
1090}
1091
1092/// Return the most significant 8  bits of a 64-bit value.
1093///
1094/// ## Cost
1095///
1096/// 86 mWU _(milli weight units)_
1097pub fn leftmost_64_8(a: u64) -> u8 {
1098    todo!()
1099}
1100
1101/// Return the most significant 16 bits of a 64-bit value.
1102///
1103/// ## Cost
1104///
1105/// 88 mWU _(milli weight units)_
1106pub fn leftmost_64_16(a: u64) -> u16 {
1107    todo!()
1108}
1109
1110/// Return the most significant 32 bits of a 64-bit value.
1111///
1112/// ## Cost
1113///
1114/// 90 mWU _(milli weight units)_
1115pub fn leftmost_64_32(a: u64) -> u32 {
1116    todo!()
1117}
1118
1119/// Return the most significant 1  bits of an 8-bit value.
1120///
1121/// ## Cost
1122///
1123/// 90 mWU _(milli weight units)_
1124pub fn leftmost_8_1(a: u8) -> u1 {
1125    todo!()
1126}
1127
1128/// Return the most significant 1  bits of an 8-bit value.
1129///
1130/// ## Cost
1131///
1132/// 90 mWU _(milli weight units)_
1133pub fn leftmost_8_2(a: u8) -> u2 {
1134    todo!()
1135}
1136
1137/// Return the most significant 1  bits of an 8-bit value.
1138///
1139/// ## Cost
1140///
1141/// 87 mWU _(milli weight units)_
1142pub fn leftmost_8_4(a: u8) -> u4 {
1143    todo!()
1144}
1145
1146/// Return `u1::MIN` = 1.
1147///
1148/// ## Cost
1149///
1150/// 38 mWU _(milli weight units)_
1151pub fn low_1() -> u1 {
1152    todo!()
1153}
1154
1155/// Return [`u8::MIN`].
1156///
1157/// ## Cost
1158///
1159/// 47 mWU _(milli weight units)_
1160pub fn low_8() -> u8 {
1161    todo!()
1162}
1163
1164/// Return [`u16::MIN`].
1165///
1166/// ## Cost
1167///
1168/// 69 mWU _(milli weight units)_
1169pub fn low_16() -> u16 {
1170    todo!()
1171}
1172
1173/// Return [`u32::MIN`].
1174///
1175/// ## Cost
1176///
1177/// 62 mWU _(milli weight units)_
1178pub fn low_32() -> u32 {
1179    todo!()
1180}
1181
1182/// Return [`u64::MIN`].
1183///
1184/// ## Cost
1185///
1186/// 47 mWU _(milli weight units)_
1187pub fn low_64() -> u64 {
1188    todo!()
1189}
1190
1191/// Bitwise MAJORITY of three 1-bit values. The output bit is false if two or more input bits are false, and true otherwise.
1192///
1193/// ## Cost
1194///
1195/// 62 mWU _(milli weight units)_
1196pub fn maj_1(a: u1, b: u1, c: u1) -> u1 {
1197    todo!()
1198}
1199
1200/// Bitwise MAJORITY of three 1-bit values. The output bit is false if two or more input bits are false, and true otherwise.
1201///
1202/// ## Cost
1203///
1204/// 94 mWU _(milli weight units)_
1205pub fn maj_8(a: u8, b: u8, c: u8) -> u8 {
1206    todo!()
1207}
1208
1209/// Bitwise MAJORITY of three 1-bit values. The output bit is false if two or more input bits are false, and true otherwise.
1210///
1211/// ## Cost
1212///
1213/// 80 mWU _(milli weight units)_
1214pub fn maj_16(a: u16, b: (u16, u16)) -> u16 {
1215    todo!()
1216}
1217
1218/// Bitwise MAJORITY of three 1-bit values. The output bit is false if two or more input bits are false, and true otherwise.
1219///
1220/// ## Cost
1221///
1222/// 96 mWU _(milli weight units)_
1223pub fn maj_32(a: u32, b: (u32, u32)) -> u32 {
1224    todo!()
1225}
1226
1227/// Bitwise MAJORITY of three 1-bit values. The output bit is false if two or more input bits are false, and true otherwise.
1228///
1229/// ## Cost
1230///
1231/// 93 mWU _(milli weight units)_
1232pub fn maj_64(a: u64, b: (u64, u64)) -> u64 {
1233    todo!()
1234}
1235
1236/// Bitwise OR of two 1-bit values.
1237///
1238/// ## Cost
1239///
1240/// 77 mWU _(milli weight units)_
1241pub fn or_1(a: u1, b: u1) -> u1 {
1242    todo!()
1243}
1244
1245/// Bitwise OR of two 8-bit values.
1246///
1247/// ## Cost
1248///
1249/// 93 mWU _(milli weight units)_
1250pub fn or_8(a: u8, b: u8) -> u8 {
1251    todo!()
1252}
1253
1254/// Bitwise OR of two 16-bit values.
1255///
1256/// ## Cost
1257///
1258/// 94 mWU _(milli weight units)_
1259pub fn or_16(a: u16, b: u16) -> u16 {
1260    todo!()
1261}
1262
1263/// Bitwise OR of two 32-bit values.
1264///
1265/// ## Cost
1266///
1267/// 105 mWU _(milli weight units)_
1268pub fn or_32(a: u32, b: u32) -> u32 {
1269    todo!()
1270}
1271
1272/// Bitwise OR of two 64-bit values.
1273///
1274/// ## Cost
1275///
1276/// 99 mWU _(milli weight units)_
1277pub fn or_64(a: u64, b: u64) -> u64 {
1278    todo!()
1279}
1280
1281/// Extend a 16-bit value to a 32-bit value by padding its right with the MSB.
1282///
1283/// ## Cost
1284///
1285/// 74 mWU _(milli weight units)_
1286pub fn right_extend_16_32(a: u16) -> u32 {
1287    todo!()
1288}
1289
1290/// Extend a 16-bit value to a 64-bit value by padding its right with the MSB.
1291///
1292/// ## Cost
1293///
1294/// 82 mWU _(milli weight units)_
1295pub fn right_extend_16_64(a: u16) -> u64 {
1296    todo!()
1297}
1298
1299/// Extend a 16-bit value to a 64-bit value by padding its right with the MSB.
1300///
1301/// ## Cost
1302///
1303/// 94 mWU _(milli weight units)_
1304pub fn right_extend_32_64(a: u32) -> u64 {
1305    todo!()
1306}
1307
1308/// Extend an 8-bit value to a 16-bit value by padding its right with the MSB.
1309///
1310/// ## Cost
1311///
1312/// 76 mWU _(milli weight units)_
1313pub fn right_extend_8_16(a: u8) -> u16 {
1314    todo!()
1315}
1316
1317/// Extend an 8-bit value to a 32-bit value by padding its right with the MSB.
1318///
1319/// ## Cost
1320///
1321/// 106 mWU _(milli weight units)_
1322pub fn right_extend_8_32(a: u8) -> u32 {
1323    todo!()
1324}
1325
1326/// Extend an 8-bit value to a 64-bit value by padding its right with the MSB.
1327///
1328/// ## Cost
1329///
1330/// 124 mWU _(milli weight units)_
1331pub fn right_extend_8_64(a: u8) -> u64 {
1332    todo!()
1333}
1334
1335/// Extend a 16-bit value to a 32-bit value by padding its right with ones.
1336///
1337/// ## Cost
1338///
1339/// 70 mWU _(milli weight units)_
1340pub fn right_pad_high_16_32(a: u16) -> u32 {
1341    todo!()
1342}
1343
1344/// Extend a 16-bit value to a 64-bit value by padding its right with ones.
1345///
1346/// ## Cost
1347///
1348/// 88 mWU _(milli weight units)_
1349pub fn right_pad_high_16_64(a: u16) -> u64 {
1350    todo!()
1351}
1352
1353/// Extend a 1-bit  value to an 8-bit value by padding its right with ones.
1354///
1355/// ## Cost
1356///
1357/// 107 mWU _(milli weight units)_
1358pub fn right_pad_high_1_8(a: u1) -> u8 {
1359    todo!()
1360}
1361
1362/// Extend a 1-bit  value to a 16-bit value by padding its right with ones.
1363///
1364/// ## Cost
1365///
1366/// 143 mWU _(milli weight units)_
1367pub fn right_pad_high_1_16(a: u1) -> u16 {
1368    todo!()
1369}
1370
1371/// Extend a 1-bit  value to a 32-bit value by padding its right with ones.
1372///
1373/// ## Cost
1374///
1375/// 223 mWU _(milli weight units)_
1376pub fn right_pad_high_1_32(a: u1) -> u32 {
1377    todo!()
1378}
1379
1380/// Extend a 1-bit  value to a 64-bit value by padding its right with ones.
1381///
1382/// ## Cost
1383///
1384/// 476 mWU _(milli weight units)_
1385pub fn right_pad_high_1_64(a: u1) -> u64 {
1386    todo!()
1387}
1388
1389/// Extend a 32-bit value to a 64-bit value by padding its right with ones.
1390///
1391/// ## Cost
1392///
1393/// 94 mWU _(milli weight units)_
1394pub fn right_pad_high_32_64(a: u32) -> u64 {
1395    todo!()
1396}
1397
1398/// Extend an 8-bit  value to a 16-bit value by padding its right with ones.
1399///
1400/// ## Cost
1401///
1402/// 89 mWU _(milli weight units)_
1403pub fn right_pad_high_8_16(a: u8) -> u16 {
1404    todo!()
1405}
1406
1407/// Extend an 8-bit  value to a 32-bit value by padding its right with ones.
1408///
1409/// ## Cost
1410///
1411/// 110 mWU _(milli weight units)_
1412pub fn right_pad_high_8_32(a: u8) -> u32 {
1413    todo!()
1414}
1415
1416/// Extend a 1-bit  value to a 64-bit value by padding its right with ones.
1417///
1418/// ## Cost
1419///
1420/// 107 mWU _(milli weight units)_
1421pub fn right_pad_high_8_64(a: u8) -> u64 {
1422    todo!()
1423}
1424
1425/// Extend a 16-bit value to a 32-bit value by padding its right with zeroes.
1426///
1427/// ## Cost
1428///
1429/// 71 mWU _(milli weight units)_
1430pub fn right_pad_low_16_32(a: u16) -> u32 {
1431    todo!()
1432}
1433
1434/// Extend a 16-bit value to a 64-bit value by padding its right with zeroes.
1435///
1436/// ## Cost
1437///
1438/// 96 mWU _(milli weight units)_
1439pub fn right_pad_low_16_64(a: u16) -> u64 {
1440    todo!()
1441}
1442
1443/// Extend a 1-bit  value to an 8-bit value by padding its right with zeroes.
1444///
1445/// ## Cost
1446///
1447/// 68 mWU _(milli weight units)_
1448pub fn right_pad_low_1_8(a: u1) -> u8 {
1449    todo!()
1450}
1451
1452/// Extend a 1-bit  value to a 16-bit value by padding its right with zeroes.
1453///
1454/// ## Cost
1455///
1456/// 81 mWU _(milli weight units)_
1457pub fn right_pad_low_1_16(a: u1) -> u16 {
1458    todo!()
1459}
1460
1461/// Extend a 1-bit  value to a 32-bit value by padding its right with zeroes.
1462///
1463/// ## Cost
1464///
1465/// 75 mWU _(milli weight units)_
1466pub fn right_pad_low_1_32(a: u1) -> u32 {
1467    todo!()
1468}
1469
1470/// Extend a 1-bit  value to a 64-bit value by padding its right with zeroes.
1471///
1472/// ## Cost
1473///
1474/// 73 mWU _(milli weight units)_
1475pub fn right_pad_low_1_64(a: u1) -> u64 {
1476    todo!()
1477}
1478
1479/// Extend a 32-bit value to a 64-bit value by padding its right with zeroes.
1480///
1481/// ## Cost
1482///
1483/// 80 mWU _(milli weight units)_
1484pub fn right_pad_low_32_64(a: u32) -> u64 {
1485    todo!()
1486}
1487
1488/// Extend an 8-bit value to a 16-bit value by padding its right with zeroes.
1489///
1490/// ## Cost
1491///
1492/// 75 mWU _(milli weight units)_
1493pub fn right_pad_low_8_16(a: u8) -> u16 {
1494    todo!()
1495}
1496
1497/// Extend an 8-bit value to a 32-bit value by padding its right with zeroes.
1498///
1499/// ## Cost
1500///
1501/// 77 mWU _(milli weight units)_
1502pub fn right_pad_low_8_32(a: u8) -> u32 {
1503    todo!()
1504}
1505
1506/// Extend an 8-bit value to a 64-bit value by padding its right with zeroes.
1507///
1508/// ## Cost
1509///
1510/// 82 mWU _(milli weight units)_
1511pub fn right_pad_low_8_64(a: u8) -> u64 {
1512    todo!()
1513}
1514
1515/// Right-rotate an 8-bit value by the given amount.
1516///
1517/// ## Cost
1518///
1519/// 75 mWU _(milli weight units)_
1520pub fn right_rotate_8(a: u4, b: u8) -> u8 {
1521    todo!()
1522}
1523
1524/// Right-rotate a 16-bit value by the given amount.
1525///
1526/// ## Cost
1527///
1528/// 99 mWU _(milli weight units)_
1529pub fn right_rotate_16(a: u4, b: u16) -> u16 {
1530    todo!()
1531}
1532
1533/// Right-rotate a 32-bit value by the given amount.
1534///
1535/// ## Cost
1536///
1537/// 92 mWU _(milli weight units)_
1538pub fn right_rotate_32(a: u8, b: u32) -> u32 {
1539    todo!()
1540}
1541
1542/// Right-rotate a 64-bit value by the given amount.
1543///
1544/// ## Cost
1545///
1546/// 93 mWU _(milli weight units)_
1547pub fn right_rotate_64(a: u8, b: u64) -> u64 {
1548    todo!()
1549}
1550
1551/// Right-shift an 8-bit value by the given amount. Bits are filled with zeroes.
1552///
1553/// ## Cost
1554///
1555/// 88 mWU _(milli weight units)_
1556pub fn right_shift_8(a: u4, b: u8) -> u8 {
1557    todo!()
1558}
1559
1560/// Right-shift a 16-bit value by the given amount. Bits are filled with zeroes.
1561///
1562/// ## Cost
1563///
1564/// 84 mWU _(milli weight units)_
1565pub fn right_shift_16(a: u4, b: u16) -> u16 {
1566    todo!()
1567}
1568
1569/// Right-shift a 32-bit value by the given amount. Bits are filled with zeroes.
1570///
1571/// ## Cost
1572///
1573/// 88 mWU _(milli weight units)_
1574pub fn right_shift_32(a: u8, b: u32) -> u32 {
1575    todo!()
1576}
1577
1578/// Right-shift a 64-bit value by the given amount. Bits are filled with zeroes.
1579///
1580/// ## Cost
1581///
1582/// 91 mWU _(milli weight units)_
1583pub fn right_shift_64(a: u8, b: u64) -> u64 {
1584    todo!()
1585}
1586
1587/// Right-shift an 8-bit value by the given amount. Bits are filled with the given bit.
1588///
1589/// ## Cost
1590///
1591/// 103 mWU _(milli weight units)_
1592pub fn right_shift_with_8(a: u1, b: u4, c: u8) -> u8 {
1593    todo!()
1594}
1595
1596/// Right-shift a 16-bit value by the given amount. Bits are filled with the given bit.
1597///
1598/// ## Cost
1599///
1600/// 105 mWU _(milli weight units)_
1601pub fn right_shift_with_16(a: u1, b: u4, c: u16) -> u16 {
1602    todo!()
1603}
1604
1605/// Right-shift a 32-bit value by the given amount. Bits are filled with the given bit.
1606///
1607/// ## Cost
1608///
1609/// 92 mWU _(milli weight units)_
1610pub fn right_shift_with_32(a: u1, b: u8, c: u32) -> u32 {
1611    todo!()
1612}
1613
1614/// Right-shift a 64-bit value by the given amount. Bits are filled with the given bit.
1615///
1616/// ## Cost
1617///
1618/// 97 mWU _(milli weight units)_
1619pub fn right_shift_with_64(a: u1, b: u8, c: u64) -> u64 {
1620    todo!()
1621}
1622
1623/// Return the least significant 1  bit  of a 16-bit value.
1624///
1625/// ## Cost
1626///
1627/// 70 mWU _(milli weight units)_
1628pub fn rightmost_16_1(a: u16) -> u1 {
1629    todo!()
1630}
1631
1632/// Return the least significant 2  bits of a 16-bit value.
1633///
1634/// ## Cost
1635///
1636/// 82 mWU _(milli weight units)_
1637pub fn rightmost_16_2(a: u16) -> u2 {
1638    todo!()
1639}
1640
1641/// Return the least significant 4  bits of a 16-bit value.
1642///
1643/// ## Cost
1644///
1645/// 76 mWU _(milli weight units)_
1646pub fn rightmost_16_4(a: u16) -> u4 {
1647    todo!()
1648}
1649
1650/// Return the least significant 8  bits of a 16-bit value.
1651///
1652/// ## Cost
1653///
1654/// 69 mWU _(milli weight units)_
1655pub fn rightmost_16_8(a: u16) -> u8 {
1656    todo!()
1657}
1658
1659/// Return the least significant 1  bit  of a 32-bit value.
1660///
1661/// ## Cost
1662///
1663/// 90 mWU _(milli weight units)_
1664pub fn rightmost_32_1(a: u32) -> u1 {
1665    todo!()
1666}
1667
1668/// Return the least significant 2  bits of a 32-bit value.
1669///
1670/// ## Cost
1671///
1672/// 74 mWU _(milli weight units)_
1673pub fn rightmost_32_2(a: u32) -> u2 {
1674    todo!()
1675}
1676
1677/// Return the least significant 4  bits of a 32-bit value.
1678///
1679/// ## Cost
1680///
1681/// 92 mWU _(milli weight units)_
1682pub fn rightmost_32_4(a: u32) -> u4 {
1683    todo!()
1684}
1685
1686/// Return the least significant 8  bits of a 32-bit value.
1687///
1688/// ## Cost
1689///
1690/// 78 mWU _(milli weight units)_
1691pub fn rightmost_32_8(a: u32) -> u8 {
1692    todo!()
1693}
1694
1695/// Return the least significant 16 bits of a 32-bit value.
1696///
1697/// ## Cost
1698///
1699/// 64 mWU _(milli weight units)_
1700pub fn rightmost_32_16(a: u32) -> u16 {
1701    todo!()
1702}
1703
1704/// Return the least significant 1  bits of a 64-bit value.
1705///
1706/// ## Cost
1707///
1708/// 77 mWU _(milli weight units)_
1709pub fn rightmost_64_1(a: u64) -> u1 {
1710    todo!()
1711}
1712
1713/// Return the least significant 2  bits of a 64-bit value.
1714///
1715/// ## Cost
1716///
1717/// 74 mWU _(milli weight units)_
1718pub fn rightmost_64_2(a: u64) -> u2 {
1719    todo!()
1720}
1721
1722/// Return the least significant 4  bits of a 64-bit value.
1723///
1724/// ## Cost
1725///
1726/// 70 mWU _(milli weight units)_
1727pub fn rightmost_64_4(a: u64) -> u4 {
1728    todo!()
1729}
1730
1731/// Return the least significant 8  bits of a 64-bit value.
1732///
1733/// ## Cost
1734///
1735/// 69 mWU _(milli weight units)_
1736pub fn rightmost_64_8(a: u64) -> u8 {
1737    todo!()
1738}
1739
1740/// Return the least significant 16 bits of a 64-bit value.
1741///
1742/// ## Cost
1743///
1744/// 86 mWU _(milli weight units)_
1745pub fn rightmost_64_16(a: u64) -> u16 {
1746    todo!()
1747}
1748
1749/// Return the least significant 32 bits of a 64-bit value.
1750///
1751/// ## Cost
1752///
1753/// 76 mWU _(milli weight units)_
1754pub fn rightmost_64_32(a: u64) -> u32 {
1755    todo!()
1756}
1757
1758/// Return the least significant 1  bits of an 8-bit value.
1759///
1760/// ## Cost
1761///
1762/// 79 mWU _(milli weight units)_
1763pub fn rightmost_8_1(a: u8) -> u1 {
1764    todo!()
1765}
1766
1767/// Return the least significant 1  bits of an 8-bit value.
1768///
1769/// ## Cost
1770///
1771/// 98 mWU _(milli weight units)_
1772pub fn rightmost_8_2(a: u8) -> u2 {
1773    todo!()
1774}
1775
1776/// Return the least significant 1  bits of an 8-bit value.
1777///
1778/// ## Cost
1779///
1780/// 98 mWU _(milli weight units)_
1781pub fn rightmost_8_4(a: u8) -> u4 {
1782    todo!()
1783}
1784
1785/// Check if a 1-bit  value is nonzero.
1786///
1787/// ## Cost
1788///
1789/// 70 mWU _(milli weight units)_
1790pub fn some_1(a: u1) -> bool {
1791    todo!()
1792}
1793
1794/// Check if an 8-bit value is nonzero.
1795///
1796/// ## Cost
1797///
1798/// 75 mWU _(milli weight units)_
1799pub fn some_8(a: u8) -> bool {
1800    todo!()
1801}
1802
1803/// Check if a 16-bit value is nonzero.
1804///
1805/// ## Cost
1806///
1807/// 63 mWU _(milli weight units)_
1808pub fn some_16(a: u16) -> bool {
1809    todo!()
1810}
1811
1812/// Check if a 32-bit value is nonzero.
1813///
1814/// ## Cost
1815///
1816/// 64 mWU _(milli weight units)_
1817pub fn some_32(a: u32) -> bool {
1818    todo!()
1819}
1820
1821/// Check if a 64-bit value is nonzero.
1822///
1823/// ## Cost
1824///
1825/// 93 mWU _(milli weight units)_
1826pub fn some_64(a: u64) -> bool {
1827    todo!()
1828}
1829
1830/// Bitwise XOR of two 1-bit  values.
1831///
1832/// ## Cost
1833///
1834/// 67 mWU _(milli weight units)_
1835pub fn xor_1(a: u1, b: u1) -> u1 {
1836    todo!()
1837}
1838
1839/// Bitwise XOR of two 8-bit  values.
1840///
1841/// ## Cost
1842///
1843/// 85 mWU _(milli weight units)_
1844pub fn xor_8(a: u8, b: u8) -> u8 {
1845    todo!()
1846}
1847
1848/// Bitwise XOR of two 16-bit values.
1849///
1850/// ## Cost
1851///
1852/// 83 mWU _(milli weight units)_
1853pub fn xor_16(a: u16, b: u16) -> u16 {
1854    todo!()
1855}
1856
1857/// Bitwise XOR of two 32-bit values.
1858///
1859/// ## Cost
1860///
1861/// 92 mWU _(milli weight units)_
1862pub fn xor_32(a: u32, b: u32) -> u32 {
1863    todo!()
1864}
1865
1866/// Bitwise XOR of two 64-bit values.
1867///
1868/// ## Cost
1869///
1870/// 95 mWU _(milli weight units)_
1871pub fn xor_64(a: u64, b: u64) -> u64 {
1872    todo!()
1873}
1874
1875/// Bitwise XOR of three 1-bit  values.
1876///
1877/// ## Cost
1878///
1879/// 72 mWU _(milli weight units)_
1880pub fn xor_xor_1(a: u1, b: u1, c: u1) -> u1 {
1881    todo!()
1882}
1883
1884/// Bitwise XOR of three 8-bit  values.
1885///
1886/// ## Cost
1887///
1888/// 98 mWU _(milli weight units)_
1889pub fn xor_xor_8(a: u8, b: u8, c: u8) -> u8 {
1890    todo!()
1891}
1892
1893/// Bitwise XOR of three 16-bit values.
1894///
1895/// ## Cost
1896///
1897/// 79 mWU _(milli weight units)_
1898pub fn xor_xor_16(a: u16, b: (u16, u16)) -> u16 {
1899    todo!()
1900}
1901
1902/// Bitwise XOR of three 32-bit values.
1903///
1904/// ## Cost
1905///
1906/// 96 mWU _(milli weight units)_
1907pub fn xor_xor_32(a: u32, b: (u32, u32)) -> u32 {
1908    todo!()
1909}
1910
1911/// Bitwise XOR of three 64-bit values.
1912///
1913/// ## Cost
1914///
1915/// 93 mWU _(milli weight units)_
1916pub fn xor_xor_64(a: u64, b: (u64, u64)) -> u64 {
1917    todo!()
1918}