authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2021-06-12 23:35:30+03:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2021-06-15 12:14:04+02:00
logd892d3bbe782c7e5c5a5907c0afd37c3a3efa97f
tree7fc2dadb81b28a9a52de4e12b20e249f40e07efd
parentc54af9774d4d395a6dabbe8580a93a04c355c0bc

replace usage of meta.cast with builtins

You weren't supposed to use these >:(

2 files changed, 302 insertions(+), 304 deletions(-)

lib/std/crypto/pcurves/p256/p256_64.zig+158-159
......@@ -18,7 +18,6 @@
1818// if x1 & (2^256-1) < 2^255 then x1 & (2^256-1) else (x1 & (2^256-1)) - 2^256
1919
2020const std = @import("std");
21const cast = std.meta.cast;
2221const mode = std.builtin.mode; // Checked arithmetic is disabled in non-debug modes to avoid side channels
2322
2423// The type MontgomeryDomainFieldElement is a field element in the Montgomery domain.
......@@ -148,7 +147,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
148147 var x17: u64 = undefined;
149148 var x18: u1 = undefined;
150149 addcarryxU64(&x17, &x18, x16, x8, x5);
151 const x19 = (cast(u64, x18) + x6);
150 const x19 = (@as(u64, x18) + x6);
152151 var x20: u64 = undefined;
153152 var x21: u64 = undefined;
154153 mulxU64(&x20, &x21, x11, 0xffffffff00000001);
......@@ -161,7 +160,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
161160 var x26: u64 = undefined;
162161 var x27: u1 = undefined;
163162 addcarryxU64(&x26, &x27, 0x0, x25, x22);
164 const x28 = (cast(u64, x27) + x23);
163 const x28 = (@as(u64, x27) + x23);
165164 var x29: u64 = undefined;
166165 var x30: u1 = undefined;
167166 addcarryxU64(&x29, &x30, 0x0, x11, x24);
......@@ -198,7 +197,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
198197 var x51: u64 = undefined;
199198 var x52: u1 = undefined;
200199 addcarryxU64(&x51, &x52, x50, x42, x39);
201 const x53 = (cast(u64, x52) + x40);
200 const x53 = (@as(u64, x52) + x40);
202201 var x54: u64 = undefined;
203202 var x55: u1 = undefined;
204203 addcarryxU64(&x54, &x55, 0x0, x31, x45);
......@@ -213,7 +212,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
213212 addcarryxU64(&x60, &x61, x59, x37, x51);
214213 var x62: u64 = undefined;
215214 var x63: u1 = undefined;
216 addcarryxU64(&x62, &x63, x61, cast(u64, x38), x53);
215 addcarryxU64(&x62, &x63, x61, @as(u64, x38), x53);
217216 var x64: u64 = undefined;
218217 var x65: u64 = undefined;
219218 mulxU64(&x64, &x65, x54, 0xffffffff00000001);
......@@ -226,7 +225,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
226225 var x70: u64 = undefined;
227226 var x71: u1 = undefined;
228227 addcarryxU64(&x70, &x71, 0x0, x69, x66);
229 const x72 = (cast(u64, x71) + x67);
228 const x72 = (@as(u64, x71) + x67);
230229 var x73: u64 = undefined;
231230 var x74: u1 = undefined;
232231 addcarryxU64(&x73, &x74, 0x0, x54, x68);
......@@ -242,7 +241,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
242241 var x81: u64 = undefined;
243242 var x82: u1 = undefined;
244243 addcarryxU64(&x81, &x82, x80, x62, x65);
245 const x83 = (cast(u64, x82) + cast(u64, x63));
244 const x83 = (@as(u64, x82) + @as(u64, x63));
246245 var x84: u64 = undefined;
247246 var x85: u64 = undefined;
248247 mulxU64(&x84, &x85, x2, (arg2[3]));
......@@ -264,7 +263,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
264263 var x96: u64 = undefined;
265264 var x97: u1 = undefined;
266265 addcarryxU64(&x96, &x97, x95, x87, x84);
267 const x98 = (cast(u64, x97) + x85);
266 const x98 = (@as(u64, x97) + x85);
268267 var x99: u64 = undefined;
269268 var x100: u1 = undefined;
270269 addcarryxU64(&x99, &x100, 0x0, x75, x90);
......@@ -292,7 +291,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
292291 var x115: u64 = undefined;
293292 var x116: u1 = undefined;
294293 addcarryxU64(&x115, &x116, 0x0, x114, x111);
295 const x117 = (cast(u64, x116) + x112);
294 const x117 = (@as(u64, x116) + x112);
296295 var x118: u64 = undefined;
297296 var x119: u1 = undefined;
298297 addcarryxU64(&x118, &x119, 0x0, x99, x113);
......@@ -308,7 +307,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
308307 var x126: u64 = undefined;
309308 var x127: u1 = undefined;
310309 addcarryxU64(&x126, &x127, x125, x107, x110);
311 const x128 = (cast(u64, x127) + cast(u64, x108));
310 const x128 = (@as(u64, x127) + @as(u64, x108));
312311 var x129: u64 = undefined;
313312 var x130: u64 = undefined;
314313 mulxU64(&x129, &x130, x3, (arg2[3]));
......@@ -330,7 +329,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
330329 var x141: u64 = undefined;
331330 var x142: u1 = undefined;
332331 addcarryxU64(&x141, &x142, x140, x132, x129);
333 const x143 = (cast(u64, x142) + x130);
332 const x143 = (@as(u64, x142) + x130);
334333 var x144: u64 = undefined;
335334 var x145: u1 = undefined;
336335 addcarryxU64(&x144, &x145, 0x0, x120, x135);
......@@ -358,7 +357,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
358357 var x160: u64 = undefined;
359358 var x161: u1 = undefined;
360359 addcarryxU64(&x160, &x161, 0x0, x159, x156);
361 const x162 = (cast(u64, x161) + x157);
360 const x162 = (@as(u64, x161) + x157);
362361 var x163: u64 = undefined;
363362 var x164: u1 = undefined;
364363 addcarryxU64(&x163, &x164, 0x0, x144, x158);
......@@ -374,7 +373,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
374373 var x171: u64 = undefined;
375374 var x172: u1 = undefined;
376375 addcarryxU64(&x171, &x172, x170, x152, x155);
377 const x173 = (cast(u64, x172) + cast(u64, x153));
376 const x173 = (@as(u64, x172) + @as(u64, x153));
378377 var x174: u64 = undefined;
379378 var x175: u1 = undefined;
380379 subborrowxU64(&x174, &x175, 0x0, x165, 0xffffffffffffffff);
......@@ -383,13 +382,13 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
383382 subborrowxU64(&x176, &x177, x175, x167, 0xffffffff);
384383 var x178: u64 = undefined;
385384 var x179: u1 = undefined;
386 subborrowxU64(&x178, &x179, x177, x169, cast(u64, 0x0));
385 subborrowxU64(&x178, &x179, x177, x169, @as(u64, 0x0));
387386 var x180: u64 = undefined;
388387 var x181: u1 = undefined;
389388 subborrowxU64(&x180, &x181, x179, x171, 0xffffffff00000001);
390389 var x182: u64 = undefined;
391390 var x183: u1 = undefined;
392 subborrowxU64(&x182, &x183, x181, x173, cast(u64, 0x0));
391 subborrowxU64(&x182, &x183, x181, x173, @as(u64, 0x0));
393392 var x184: u64 = undefined;
394393 cmovznzU64(&x184, x183, x174, x165);
395394 var x185: u64 = undefined;
......@@ -440,7 +439,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
440439 var x17: u64 = undefined;
441440 var x18: u1 = undefined;
442441 addcarryxU64(&x17, &x18, x16, x8, x5);
443 const x19 = (cast(u64, x18) + x6);
442 const x19 = (@as(u64, x18) + x6);
444443 var x20: u64 = undefined;
445444 var x21: u64 = undefined;
446445 mulxU64(&x20, &x21, x11, 0xffffffff00000001);
......@@ -453,7 +452,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
453452 var x26: u64 = undefined;
454453 var x27: u1 = undefined;
455454 addcarryxU64(&x26, &x27, 0x0, x25, x22);
456 const x28 = (cast(u64, x27) + x23);
455 const x28 = (@as(u64, x27) + x23);
457456 var x29: u64 = undefined;
458457 var x30: u1 = undefined;
459458 addcarryxU64(&x29, &x30, 0x0, x11, x24);
......@@ -490,7 +489,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
490489 var x51: u64 = undefined;
491490 var x52: u1 = undefined;
492491 addcarryxU64(&x51, &x52, x50, x42, x39);
493 const x53 = (cast(u64, x52) + x40);
492 const x53 = (@as(u64, x52) + x40);
494493 var x54: u64 = undefined;
495494 var x55: u1 = undefined;
496495 addcarryxU64(&x54, &x55, 0x0, x31, x45);
......@@ -505,7 +504,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
505504 addcarryxU64(&x60, &x61, x59, x37, x51);
506505 var x62: u64 = undefined;
507506 var x63: u1 = undefined;
508 addcarryxU64(&x62, &x63, x61, cast(u64, x38), x53);
507 addcarryxU64(&x62, &x63, x61, @as(u64, x38), x53);
509508 var x64: u64 = undefined;
510509 var x65: u64 = undefined;
511510 mulxU64(&x64, &x65, x54, 0xffffffff00000001);
......@@ -518,7 +517,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
518517 var x70: u64 = undefined;
519518 var x71: u1 = undefined;
520519 addcarryxU64(&x70, &x71, 0x0, x69, x66);
521 const x72 = (cast(u64, x71) + x67);
520 const x72 = (@as(u64, x71) + x67);
522521 var x73: u64 = undefined;
523522 var x74: u1 = undefined;
524523 addcarryxU64(&x73, &x74, 0x0, x54, x68);
......@@ -534,7 +533,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
534533 var x81: u64 = undefined;
535534 var x82: u1 = undefined;
536535 addcarryxU64(&x81, &x82, x80, x62, x65);
537 const x83 = (cast(u64, x82) + cast(u64, x63));
536 const x83 = (@as(u64, x82) + @as(u64, x63));
538537 var x84: u64 = undefined;
539538 var x85: u64 = undefined;
540539 mulxU64(&x84, &x85, x2, (arg1[3]));
......@@ -556,7 +555,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
556555 var x96: u64 = undefined;
557556 var x97: u1 = undefined;
558557 addcarryxU64(&x96, &x97, x95, x87, x84);
559 const x98 = (cast(u64, x97) + x85);
558 const x98 = (@as(u64, x97) + x85);
560559 var x99: u64 = undefined;
561560 var x100: u1 = undefined;
562561 addcarryxU64(&x99, &x100, 0x0, x75, x90);
......@@ -584,7 +583,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
584583 var x115: u64 = undefined;
585584 var x116: u1 = undefined;
586585 addcarryxU64(&x115, &x116, 0x0, x114, x111);
587 const x117 = (cast(u64, x116) + x112);
586 const x117 = (@as(u64, x116) + x112);
588587 var x118: u64 = undefined;
589588 var x119: u1 = undefined;
590589 addcarryxU64(&x118, &x119, 0x0, x99, x113);
......@@ -600,7 +599,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
600599 var x126: u64 = undefined;
601600 var x127: u1 = undefined;
602601 addcarryxU64(&x126, &x127, x125, x107, x110);
603 const x128 = (cast(u64, x127) + cast(u64, x108));
602 const x128 = (@as(u64, x127) + @as(u64, x108));
604603 var x129: u64 = undefined;
605604 var x130: u64 = undefined;
606605 mulxU64(&x129, &x130, x3, (arg1[3]));
......@@ -622,7 +621,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
622621 var x141: u64 = undefined;
623622 var x142: u1 = undefined;
624623 addcarryxU64(&x141, &x142, x140, x132, x129);
625 const x143 = (cast(u64, x142) + x130);
624 const x143 = (@as(u64, x142) + x130);
626625 var x144: u64 = undefined;
627626 var x145: u1 = undefined;
628627 addcarryxU64(&x144, &x145, 0x0, x120, x135);
......@@ -650,7 +649,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
650649 var x160: u64 = undefined;
651650 var x161: u1 = undefined;
652651 addcarryxU64(&x160, &x161, 0x0, x159, x156);
653 const x162 = (cast(u64, x161) + x157);
652 const x162 = (@as(u64, x161) + x157);
654653 var x163: u64 = undefined;
655654 var x164: u1 = undefined;
656655 addcarryxU64(&x163, &x164, 0x0, x144, x158);
......@@ -666,7 +665,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
666665 var x171: u64 = undefined;
667666 var x172: u1 = undefined;
668667 addcarryxU64(&x171, &x172, x170, x152, x155);
669 const x173 = (cast(u64, x172) + cast(u64, x153));
668 const x173 = (@as(u64, x172) + @as(u64, x153));
670669 var x174: u64 = undefined;
671670 var x175: u1 = undefined;
672671 subborrowxU64(&x174, &x175, 0x0, x165, 0xffffffffffffffff);
......@@ -675,13 +674,13 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
675674 subborrowxU64(&x176, &x177, x175, x167, 0xffffffff);
676675 var x178: u64 = undefined;
677676 var x179: u1 = undefined;
678 subborrowxU64(&x178, &x179, x177, x169, cast(u64, 0x0));
677 subborrowxU64(&x178, &x179, x177, x169, @as(u64, 0x0));
679678 var x180: u64 = undefined;
680679 var x181: u1 = undefined;
681680 subborrowxU64(&x180, &x181, x179, x171, 0xffffffff00000001);
682681 var x182: u64 = undefined;
683682 var x183: u1 = undefined;
684 subborrowxU64(&x182, &x183, x181, x173, cast(u64, 0x0));
683 subborrowxU64(&x182, &x183, x181, x173, @as(u64, 0x0));
685684 var x184: u64 = undefined;
686685 cmovznzU64(&x184, x183, x174, x165);
687686 var x185: u64 = undefined;
......@@ -728,13 +727,13 @@ pub fn add(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
728727 subborrowxU64(&x11, &x12, x10, x3, 0xffffffff);
729728 var x13: u64 = undefined;
730729 var x14: u1 = undefined;
731 subborrowxU64(&x13, &x14, x12, x5, cast(u64, 0x0));
730 subborrowxU64(&x13, &x14, x12, x5, @as(u64, 0x0));
732731 var x15: u64 = undefined;
733732 var x16: u1 = undefined;
734733 subborrowxU64(&x15, &x16, x14, x7, 0xffffffff00000001);
735734 var x17: u64 = undefined;
736735 var x18: u1 = undefined;
737 subborrowxU64(&x17, &x18, x16, cast(u64, x8), cast(u64, 0x0));
736 subborrowxU64(&x17, &x18, x16, @as(u64, x8), @as(u64, 0x0));
738737 var x19: u64 = undefined;
739738 cmovznzU64(&x19, x18, x9, x1);
740739 var x20: u64 = undefined;
......@@ -774,7 +773,7 @@ pub fn sub(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
774773 var x8: u1 = undefined;
775774 subborrowxU64(&x7, &x8, x6, (arg1[3]), (arg2[3]));
776775 var x9: u64 = undefined;
777 cmovznzU64(&x9, x8, cast(u64, 0x0), 0xffffffffffffffff);
776 cmovznzU64(&x9, x8, @as(u64, 0x0), 0xffffffffffffffff);
778777 var x10: u64 = undefined;
779778 var x11: u1 = undefined;
780779 addcarryxU64(&x10, &x11, 0x0, x1, x9);
......@@ -783,7 +782,7 @@ pub fn sub(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
783782 addcarryxU64(&x12, &x13, x11, x3, (x9 & 0xffffffff));
784783 var x14: u64 = undefined;
785784 var x15: u1 = undefined;
786 addcarryxU64(&x14, &x15, x13, x5, cast(u64, 0x0));
785 addcarryxU64(&x14, &x15, x13, x5, @as(u64, 0x0));
787786 var x16: u64 = undefined;
788787 var x17: u1 = undefined;
789788 addcarryxU64(&x16, &x17, x15, x7, (x9 & 0xffffffff00000001));
......@@ -806,18 +805,18 @@ pub fn opp(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
806805
807806 var x1: u64 = undefined;
808807 var x2: u1 = undefined;
809 subborrowxU64(&x1, &x2, 0x0, cast(u64, 0x0), (arg1[0]));
808 subborrowxU64(&x1, &x2, 0x0, @as(u64, 0x0), (arg1[0]));
810809 var x3: u64 = undefined;
811810 var x4: u1 = undefined;
812 subborrowxU64(&x3, &x4, x2, cast(u64, 0x0), (arg1[1]));
811 subborrowxU64(&x3, &x4, x2, @as(u64, 0x0), (arg1[1]));
813812 var x5: u64 = undefined;
814813 var x6: u1 = undefined;
815 subborrowxU64(&x5, &x6, x4, cast(u64, 0x0), (arg1[2]));
814 subborrowxU64(&x5, &x6, x4, @as(u64, 0x0), (arg1[2]));
816815 var x7: u64 = undefined;
817816 var x8: u1 = undefined;
818 subborrowxU64(&x7, &x8, x6, cast(u64, 0x0), (arg1[3]));
817 subborrowxU64(&x7, &x8, x6, @as(u64, 0x0), (arg1[3]));
819818 var x9: u64 = undefined;
820 cmovznzU64(&x9, x8, cast(u64, 0x0), 0xffffffffffffffff);
819 cmovznzU64(&x9, x8, @as(u64, 0x0), 0xffffffffffffffff);
821820 var x10: u64 = undefined;
822821 var x11: u1 = undefined;
823822 addcarryxU64(&x10, &x11, 0x0, x1, x9);
......@@ -826,7 +825,7 @@ pub fn opp(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
826825 addcarryxU64(&x12, &x13, x11, x3, (x9 & 0xffffffff));
827826 var x14: u64 = undefined;
828827 var x15: u1 = undefined;
829 addcarryxU64(&x14, &x15, x13, x5, cast(u64, 0x0));
828 addcarryxU64(&x14, &x15, x13, x5, @as(u64, 0x0));
830829 var x16: u64 = undefined;
831830 var x17: u1 = undefined;
832831 addcarryxU64(&x16, &x17, x15, x7, (x9 & 0xffffffff00000001));
......@@ -865,7 +864,7 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo
865864 addcarryxU64(&x10, &x11, 0x0, x1, x6);
866865 var x12: u64 = undefined;
867866 var x13: u1 = undefined;
868 addcarryxU64(&x12, &x13, x11, cast(u64, 0x0), x8);
867 addcarryxU64(&x12, &x13, x11, @as(u64, 0x0), x8);
869868 var x14: u64 = undefined;
870869 var x15: u1 = undefined;
871870 addcarryxU64(&x14, &x15, 0x0, x12, (arg1[1]));
......@@ -886,10 +885,10 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo
886885 addcarryxU64(&x24, &x25, 0x0, x14, x20);
887886 var x26: u64 = undefined;
888887 var x27: u1 = undefined;
889 addcarryxU64(&x26, &x27, x25, (cast(u64, x15) + (cast(u64, x13) + (cast(u64, x9) + x5))), x22);
888 addcarryxU64(&x26, &x27, x25, (@as(u64, x15) + (@as(u64, x13) + (@as(u64, x9) + x5))), x22);
890889 var x28: u64 = undefined;
891890 var x29: u1 = undefined;
892 addcarryxU64(&x28, &x29, x27, x2, (cast(u64, x23) + x19));
891 addcarryxU64(&x28, &x29, x27, x2, (@as(u64, x23) + x19));
893892 var x30: u64 = undefined;
894893 var x31: u1 = undefined;
895894 addcarryxU64(&x30, &x31, x29, x3, x16);
......@@ -898,10 +897,10 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo
898897 addcarryxU64(&x32, &x33, 0x0, x26, (arg1[2]));
899898 var x34: u64 = undefined;
900899 var x35: u1 = undefined;
901 addcarryxU64(&x34, &x35, x33, x28, cast(u64, 0x0));
900 addcarryxU64(&x34, &x35, x33, x28, @as(u64, 0x0));
902901 var x36: u64 = undefined;
903902 var x37: u1 = undefined;
904 addcarryxU64(&x36, &x37, x35, x30, cast(u64, 0x0));
903 addcarryxU64(&x36, &x37, x35, x30, @as(u64, 0x0));
905904 var x38: u64 = undefined;
906905 var x39: u64 = undefined;
907906 mulxU64(&x38, &x39, x32, 0xffffffff00000001);
......@@ -922,19 +921,19 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo
922921 addcarryxU64(&x48, &x49, x47, x34, x44);
923922 var x50: u64 = undefined;
924923 var x51: u1 = undefined;
925 addcarryxU64(&x50, &x51, x49, x36, (cast(u64, x45) + x41));
924 addcarryxU64(&x50, &x51, x49, x36, (@as(u64, x45) + x41));
926925 var x52: u64 = undefined;
927926 var x53: u1 = undefined;
928 addcarryxU64(&x52, &x53, x51, (cast(u64, x37) + (cast(u64, x31) + x17)), x38);
927 addcarryxU64(&x52, &x53, x51, (@as(u64, x37) + (@as(u64, x31) + x17)), x38);
929928 var x54: u64 = undefined;
930929 var x55: u1 = undefined;
931930 addcarryxU64(&x54, &x55, 0x0, x48, (arg1[3]));
932931 var x56: u64 = undefined;
933932 var x57: u1 = undefined;
934 addcarryxU64(&x56, &x57, x55, x50, cast(u64, 0x0));
933 addcarryxU64(&x56, &x57, x55, x50, @as(u64, 0x0));
935934 var x58: u64 = undefined;
936935 var x59: u1 = undefined;
937 addcarryxU64(&x58, &x59, x57, x52, cast(u64, 0x0));
936 addcarryxU64(&x58, &x59, x57, x52, @as(u64, 0x0));
938937 var x60: u64 = undefined;
939938 var x61: u64 = undefined;
940939 mulxU64(&x60, &x61, x54, 0xffffffff00000001);
......@@ -955,11 +954,11 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo
955954 addcarryxU64(&x70, &x71, x69, x56, x66);
956955 var x72: u64 = undefined;
957956 var x73: u1 = undefined;
958 addcarryxU64(&x72, &x73, x71, x58, (cast(u64, x67) + x63));
957 addcarryxU64(&x72, &x73, x71, x58, (@as(u64, x67) + x63));
959958 var x74: u64 = undefined;
960959 var x75: u1 = undefined;
961 addcarryxU64(&x74, &x75, x73, (cast(u64, x59) + (cast(u64, x53) + x39)), x60);
962 const x76 = (cast(u64, x75) + x61);
960 addcarryxU64(&x74, &x75, x73, (@as(u64, x59) + (@as(u64, x53) + x39)), x60);
961 const x76 = (@as(u64, x75) + x61);
963962 var x77: u64 = undefined;
964963 var x78: u1 = undefined;
965964 subborrowxU64(&x77, &x78, 0x0, x70, 0xffffffffffffffff);
......@@ -968,13 +967,13 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo
968967 subborrowxU64(&x79, &x80, x78, x72, 0xffffffff);
969968 var x81: u64 = undefined;
970969 var x82: u1 = undefined;
971 subborrowxU64(&x81, &x82, x80, x74, cast(u64, 0x0));
970 subborrowxU64(&x81, &x82, x80, x74, @as(u64, 0x0));
972971 var x83: u64 = undefined;
973972 var x84: u1 = undefined;
974973 subborrowxU64(&x83, &x84, x82, x76, 0xffffffff00000001);
975974 var x85: u64 = undefined;
976975 var x86: u1 = undefined;
977 subborrowxU64(&x85, &x86, x84, cast(u64, 0x0), cast(u64, 0x0));
976 subborrowxU64(&x85, &x86, x84, @as(u64, 0x0), @as(u64, 0x0));
978977 var x87: u64 = undefined;
979978 cmovznzU64(&x87, x86, x77, x70);
980979 var x88: u64 = undefined;
......@@ -1045,13 +1044,13 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma
10451044 addcarryxU64(&x29, &x30, x28, x13, x25);
10461045 var x31: u64 = undefined;
10471046 var x32: u1 = undefined;
1048 addcarryxU64(&x31, &x32, x30, x15, (cast(u64, x26) + x22));
1047 addcarryxU64(&x31, &x32, x30, x15, (@as(u64, x26) + x22));
10491048 var x33: u64 = undefined;
10501049 var x34: u1 = undefined;
10511050 addcarryxU64(&x33, &x34, x32, x17, x19);
10521051 var x35: u64 = undefined;
10531052 var x36: u1 = undefined;
1054 addcarryxU64(&x35, &x36, x34, (cast(u64, x18) + x6), x20);
1053 addcarryxU64(&x35, &x36, x34, (@as(u64, x18) + x6), x20);
10551054 var x37: u64 = undefined;
10561055 var x38: u64 = undefined;
10571056 mulxU64(&x37, &x38, x1, 0x4fffffffd);
......@@ -1105,13 +1104,13 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma
11051104 addcarryxU64(&x69, &x70, x68, x53, x65);
11061105 var x71: u64 = undefined;
11071106 var x72: u1 = undefined;
1108 addcarryxU64(&x71, &x72, x70, x55, (cast(u64, x66) + x62));
1107 addcarryxU64(&x71, &x72, x70, x55, (@as(u64, x66) + x62));
11091108 var x73: u64 = undefined;
11101109 var x74: u1 = undefined;
11111110 addcarryxU64(&x73, &x74, x72, x57, x59);
11121111 var x75: u64 = undefined;
11131112 var x76: u1 = undefined;
1114 addcarryxU64(&x75, &x76, x74, ((cast(u64, x58) + cast(u64, x36)) + (cast(u64, x50) + x38)), x60);
1113 addcarryxU64(&x75, &x76, x74, ((@as(u64, x58) + @as(u64, x36)) + (@as(u64, x50) + x38)), x60);
11151114 var x77: u64 = undefined;
11161115 var x78: u64 = undefined;
11171116 mulxU64(&x77, &x78, x2, 0x4fffffffd);
......@@ -1165,13 +1164,13 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma
11651164 addcarryxU64(&x109, &x110, x108, x93, x105);
11661165 var x111: u64 = undefined;
11671166 var x112: u1 = undefined;
1168 addcarryxU64(&x111, &x112, x110, x95, (cast(u64, x106) + x102));
1167 addcarryxU64(&x111, &x112, x110, x95, (@as(u64, x106) + x102));
11691168 var x113: u64 = undefined;
11701169 var x114: u1 = undefined;
11711170 addcarryxU64(&x113, &x114, x112, x97, x99);
11721171 var x115: u64 = undefined;
11731172 var x116: u1 = undefined;
1174 addcarryxU64(&x115, &x116, x114, ((cast(u64, x98) + cast(u64, x76)) + (cast(u64, x90) + x78)), x100);
1173 addcarryxU64(&x115, &x116, x114, ((@as(u64, x98) + @as(u64, x76)) + (@as(u64, x90) + x78)), x100);
11751174 var x117: u64 = undefined;
11761175 var x118: u64 = undefined;
11771176 mulxU64(&x117, &x118, x3, 0x4fffffffd);
......@@ -1225,13 +1224,13 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma
12251224 addcarryxU64(&x149, &x150, x148, x133, x145);
12261225 var x151: u64 = undefined;
12271226 var x152: u1 = undefined;
1228 addcarryxU64(&x151, &x152, x150, x135, (cast(u64, x146) + x142));
1227 addcarryxU64(&x151, &x152, x150, x135, (@as(u64, x146) + x142));
12291228 var x153: u64 = undefined;
12301229 var x154: u1 = undefined;
12311230 addcarryxU64(&x153, &x154, x152, x137, x139);
12321231 var x155: u64 = undefined;
12331232 var x156: u1 = undefined;
1234 addcarryxU64(&x155, &x156, x154, ((cast(u64, x138) + cast(u64, x116)) + (cast(u64, x130) + x118)), x140);
1233 addcarryxU64(&x155, &x156, x154, ((@as(u64, x138) + @as(u64, x116)) + (@as(u64, x130) + x118)), x140);
12351234 var x157: u64 = undefined;
12361235 var x158: u1 = undefined;
12371236 subborrowxU64(&x157, &x158, 0x0, x149, 0xffffffffffffffff);
......@@ -1240,13 +1239,13 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma
12401239 subborrowxU64(&x159, &x160, x158, x151, 0xffffffff);
12411240 var x161: u64 = undefined;
12421241 var x162: u1 = undefined;
1243 subborrowxU64(&x161, &x162, x160, x153, cast(u64, 0x0));
1242 subborrowxU64(&x161, &x162, x160, x153, @as(u64, 0x0));
12441243 var x163: u64 = undefined;
12451244 var x164: u1 = undefined;
12461245 subborrowxU64(&x163, &x164, x162, x155, 0xffffffff00000001);
12471246 var x165: u64 = undefined;
12481247 var x166: u1 = undefined;
1249 subborrowxU64(&x165, &x166, x164, cast(u64, x156), cast(u64, 0x0));
1248 subborrowxU64(&x165, &x166, x164, @as(u64, x156), @as(u64, 0x0));
12501249 var x167: u64 = undefined;
12511250 cmovznzU64(&x167, x166, x157, x149);
12521251 var x168: u64 = undefined;
......@@ -1325,62 +1324,62 @@ pub fn toBytes(out1: *[32]u8, arg1: [4]u64) void {
13251324 const x2 = (arg1[2]);
13261325 const x3 = (arg1[1]);
13271326 const x4 = (arg1[0]);
1328 const x5 = cast(u8, (x4 & cast(u64, 0xff)));
1327 const x5 = @truncate(u8, (x4 & @as(u64, 0xff)));
13291328 const x6 = (x4 >> 8);
1330 const x7 = cast(u8, (x6 & cast(u64, 0xff)));
1329 const x7 = @truncate(u8, (x6 & @as(u64, 0xff)));
13311330 const x8 = (x6 >> 8);
1332 const x9 = cast(u8, (x8 & cast(u64, 0xff)));
1331 const x9 = @truncate(u8, (x8 & @as(u64, 0xff)));
13331332 const x10 = (x8 >> 8);
1334 const x11 = cast(u8, (x10 & cast(u64, 0xff)));
1333 const x11 = @truncate(u8, (x10 & @as(u64, 0xff)));
13351334 const x12 = (x10 >> 8);
1336 const x13 = cast(u8, (x12 & cast(u64, 0xff)));
1335 const x13 = @truncate(u8, (x12 & @as(u64, 0xff)));
13371336 const x14 = (x12 >> 8);
1338 const x15 = cast(u8, (x14 & cast(u64, 0xff)));
1337 const x15 = @truncate(u8, (x14 & @as(u64, 0xff)));
13391338 const x16 = (x14 >> 8);
1340 const x17 = cast(u8, (x16 & cast(u64, 0xff)));
1341 const x18 = cast(u8, (x16 >> 8));
1342 const x19 = cast(u8, (x3 & cast(u64, 0xff)));
1339 const x17 = @truncate(u8, (x16 & @as(u64, 0xff)));
1340 const x18 = @truncate(u8, (x16 >> 8));
1341 const x19 = @truncate(u8, (x3 & @as(u64, 0xff)));
13431342 const x20 = (x3 >> 8);
1344 const x21 = cast(u8, (x20 & cast(u64, 0xff)));
1343 const x21 = @truncate(u8, (x20 & @as(u64, 0xff)));
13451344 const x22 = (x20 >> 8);
1346 const x23 = cast(u8, (x22 & cast(u64, 0xff)));
1345 const x23 = @truncate(u8, (x22 & @as(u64, 0xff)));
13471346 const x24 = (x22 >> 8);
1348 const x25 = cast(u8, (x24 & cast(u64, 0xff)));
1347 const x25 = @truncate(u8, (x24 & @as(u64, 0xff)));
13491348 const x26 = (x24 >> 8);
1350 const x27 = cast(u8, (x26 & cast(u64, 0xff)));
1349 const x27 = @truncate(u8, (x26 & @as(u64, 0xff)));
13511350 const x28 = (x26 >> 8);
1352 const x29 = cast(u8, (x28 & cast(u64, 0xff)));
1351 const x29 = @truncate(u8, (x28 & @as(u64, 0xff)));
13531352 const x30 = (x28 >> 8);
1354 const x31 = cast(u8, (x30 & cast(u64, 0xff)));
1355 const x32 = cast(u8, (x30 >> 8));
1356 const x33 = cast(u8, (x2 & cast(u64, 0xff)));
1353 const x31 = @truncate(u8, (x30 & @as(u64, 0xff)));
1354 const x32 = @truncate(u8, (x30 >> 8));
1355 const x33 = @truncate(u8, (x2 & @as(u64, 0xff)));
13571356 const x34 = (x2 >> 8);
1358 const x35 = cast(u8, (x34 & cast(u64, 0xff)));
1357 const x35 = @truncate(u8, (x34 & @as(u64, 0xff)));
13591358 const x36 = (x34 >> 8);
1360 const x37 = cast(u8, (x36 & cast(u64, 0xff)));
1359 const x37 = @truncate(u8, (x36 & @as(u64, 0xff)));
13611360 const x38 = (x36 >> 8);
1362 const x39 = cast(u8, (x38 & cast(u64, 0xff)));
1361 const x39 = @truncate(u8, (x38 & @as(u64, 0xff)));
13631362 const x40 = (x38 >> 8);
1364 const x41 = cast(u8, (x40 & cast(u64, 0xff)));
1363 const x41 = @truncate(u8, (x40 & @as(u64, 0xff)));
13651364 const x42 = (x40 >> 8);
1366 const x43 = cast(u8, (x42 & cast(u64, 0xff)));
1365 const x43 = @truncate(u8, (x42 & @as(u64, 0xff)));
13671366 const x44 = (x42 >> 8);
1368 const x45 = cast(u8, (x44 & cast(u64, 0xff)));
1369 const x46 = cast(u8, (x44 >> 8));
1370 const x47 = cast(u8, (x1 & cast(u64, 0xff)));
1367 const x45 = @truncate(u8, (x44 & @as(u64, 0xff)));
1368 const x46 = @truncate(u8, (x44 >> 8));
1369 const x47 = @truncate(u8, (x1 & @as(u64, 0xff)));
13711370 const x48 = (x1 >> 8);
1372 const x49 = cast(u8, (x48 & cast(u64, 0xff)));
1371 const x49 = @truncate(u8, (x48 & @as(u64, 0xff)));
13731372 const x50 = (x48 >> 8);
1374 const x51 = cast(u8, (x50 & cast(u64, 0xff)));
1373 const x51 = @truncate(u8, (x50 & @as(u64, 0xff)));
13751374 const x52 = (x50 >> 8);
1376 const x53 = cast(u8, (x52 & cast(u64, 0xff)));
1375 const x53 = @truncate(u8, (x52 & @as(u64, 0xff)));
13771376 const x54 = (x52 >> 8);
1378 const x55 = cast(u8, (x54 & cast(u64, 0xff)));
1377 const x55 = @truncate(u8, (x54 & @as(u64, 0xff)));
13791378 const x56 = (x54 >> 8);
1380 const x57 = cast(u8, (x56 & cast(u64, 0xff)));
1379 const x57 = @truncate(u8, (x56 & @as(u64, 0xff)));
13811380 const x58 = (x56 >> 8);
1382 const x59 = cast(u8, (x58 & cast(u64, 0xff)));
1383 const x60 = cast(u8, (x58 >> 8));
1381 const x59 = @truncate(u8, (x58 & @as(u64, 0xff)));
1382 const x60 = @truncate(u8, (x58 >> 8));
13841383 out1[0] = x5;
13851384 out1[1] = x7;
13861385 out1[2] = x9;
......@@ -1430,60 +1429,60 @@ pub fn toBytes(out1: *[32]u8, arg1: [4]u64) void {
14301429pub fn fromBytes(out1: *[4]u64, arg1: [32]u8) void {
14311430 @setRuntimeSafety(mode == .Debug);
14321431
1433 const x1 = (cast(u64, (arg1[31])) << 56);
1434 const x2 = (cast(u64, (arg1[30])) << 48);
1435 const x3 = (cast(u64, (arg1[29])) << 40);
1436 const x4 = (cast(u64, (arg1[28])) << 32);
1437 const x5 = (cast(u64, (arg1[27])) << 24);
1438 const x6 = (cast(u64, (arg1[26])) << 16);
1439 const x7 = (cast(u64, (arg1[25])) << 8);
1432 const x1 = (@as(u64, (arg1[31])) << 56);
1433 const x2 = (@as(u64, (arg1[30])) << 48);
1434 const x3 = (@as(u64, (arg1[29])) << 40);
1435 const x4 = (@as(u64, (arg1[28])) << 32);
1436 const x5 = (@as(u64, (arg1[27])) << 24);
1437 const x6 = (@as(u64, (arg1[26])) << 16);
1438 const x7 = (@as(u64, (arg1[25])) << 8);
14401439 const x8 = (arg1[24]);
1441 const x9 = (cast(u64, (arg1[23])) << 56);
1442 const x10 = (cast(u64, (arg1[22])) << 48);
1443 const x11 = (cast(u64, (arg1[21])) << 40);
1444 const x12 = (cast(u64, (arg1[20])) << 32);
1445 const x13 = (cast(u64, (arg1[19])) << 24);
1446 const x14 = (cast(u64, (arg1[18])) << 16);
1447 const x15 = (cast(u64, (arg1[17])) << 8);
1440 const x9 = (@as(u64, (arg1[23])) << 56);
1441 const x10 = (@as(u64, (arg1[22])) << 48);
1442 const x11 = (@as(u64, (arg1[21])) << 40);
1443 const x12 = (@as(u64, (arg1[20])) << 32);
1444 const x13 = (@as(u64, (arg1[19])) << 24);
1445 const x14 = (@as(u64, (arg1[18])) << 16);
1446 const x15 = (@as(u64, (arg1[17])) << 8);
14481447 const x16 = (arg1[16]);
1449 const x17 = (cast(u64, (arg1[15])) << 56);
1450 const x18 = (cast(u64, (arg1[14])) << 48);
1451 const x19 = (cast(u64, (arg1[13])) << 40);
1452 const x20 = (cast(u64, (arg1[12])) << 32);
1453 const x21 = (cast(u64, (arg1[11])) << 24);
1454 const x22 = (cast(u64, (arg1[10])) << 16);
1455 const x23 = (cast(u64, (arg1[9])) << 8);
1448 const x17 = (@as(u64, (arg1[15])) << 56);
1449 const x18 = (@as(u64, (arg1[14])) << 48);
1450 const x19 = (@as(u64, (arg1[13])) << 40);
1451 const x20 = (@as(u64, (arg1[12])) << 32);
1452 const x21 = (@as(u64, (arg1[11])) << 24);
1453 const x22 = (@as(u64, (arg1[10])) << 16);
1454 const x23 = (@as(u64, (arg1[9])) << 8);
14561455 const x24 = (arg1[8]);
1457 const x25 = (cast(u64, (arg1[7])) << 56);
1458 const x26 = (cast(u64, (arg1[6])) << 48);
1459 const x27 = (cast(u64, (arg1[5])) << 40);
1460 const x28 = (cast(u64, (arg1[4])) << 32);
1461 const x29 = (cast(u64, (arg1[3])) << 24);
1462 const x30 = (cast(u64, (arg1[2])) << 16);
1463 const x31 = (cast(u64, (arg1[1])) << 8);
1456 const x25 = (@as(u64, (arg1[7])) << 56);
1457 const x26 = (@as(u64, (arg1[6])) << 48);
1458 const x27 = (@as(u64, (arg1[5])) << 40);
1459 const x28 = (@as(u64, (arg1[4])) << 32);
1460 const x29 = (@as(u64, (arg1[3])) << 24);
1461 const x30 = (@as(u64, (arg1[2])) << 16);
1462 const x31 = (@as(u64, (arg1[1])) << 8);
14641463 const x32 = (arg1[0]);
1465 const x33 = (x31 + cast(u64, x32));
1464 const x33 = (x31 + @as(u64, x32));
14661465 const x34 = (x30 + x33);
14671466 const x35 = (x29 + x34);
14681467 const x36 = (x28 + x35);
14691468 const x37 = (x27 + x36);
14701469 const x38 = (x26 + x37);
14711470 const x39 = (x25 + x38);
1472 const x40 = (x23 + cast(u64, x24));
1471 const x40 = (x23 + @as(u64, x24));
14731472 const x41 = (x22 + x40);
14741473 const x42 = (x21 + x41);
14751474 const x43 = (x20 + x42);
14761475 const x44 = (x19 + x43);
14771476 const x45 = (x18 + x44);
14781477 const x46 = (x17 + x45);
1479 const x47 = (x15 + cast(u64, x16));
1478 const x47 = (x15 + @as(u64, x16));
14801479 const x48 = (x14 + x47);
14811480 const x49 = (x13 + x48);
14821481 const x50 = (x12 + x49);
14831482 const x51 = (x11 + x50);
14841483 const x52 = (x10 + x51);
14851484 const x53 = (x9 + x52);
1486 const x54 = (x7 + cast(u64, x8));
1485 const x54 = (x7 + @as(u64, x8));
14871486 const x55 = (x6 + x54);
14881487 const x56 = (x5 + x55);
14891488 const x57 = (x4 + x56);
......@@ -1505,7 +1504,7 @@ pub fn fromBytes(out1: *[4]u64, arg1: [32]u8) void {
15051504pub fn setOne(out1: *MontgomeryDomainFieldElement) void {
15061505 @setRuntimeSafety(mode == .Debug);
15071506
1508 out1[0] = cast(u64, 0x1);
1507 out1[0] = @as(u64, 0x1);
15091508 out1[1] = 0xffffffff00000000;
15101509 out1[2] = 0xffffffffffffffff;
15111510 out1[3] = 0xfffffffe;
......@@ -1524,9 +1523,9 @@ pub fn msat(out1: *[5]u64) void {
15241523
15251524 out1[0] = 0xffffffffffffffff;
15261525 out1[1] = 0xffffffff;
1527 out1[2] = cast(u64, 0x0);
1526 out1[2] = @as(u64, 0x0);
15281527 out1[3] = 0xffffffff00000001;
1529 out1[4] = cast(u64, 0x0);
1528 out1[4] = @as(u64, 0x0);
15301529}
15311530
15321531/// The function divstep computes a divstep.
......@@ -1562,11 +1561,11 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[
15621561
15631562 var x1: u64 = undefined;
15641563 var x2: u1 = undefined;
1565 addcarryxU64(&x1, &x2, 0x0, (~arg1), cast(u64, 0x1));
1566 const x3 = (cast(u1, (x1 >> 63)) & cast(u1, ((arg3[0]) & cast(u64, 0x1))));
1564 addcarryxU64(&x1, &x2, 0x0, (~arg1), @as(u64, 0x1));
1565 const x3 = (@truncate(u1, (x1 >> 63)) & @truncate(u1, ((arg3[0]) & @as(u64, 0x1))));
15671566 var x4: u64 = undefined;
15681567 var x5: u1 = undefined;
1569 addcarryxU64(&x4, &x5, 0x0, (~arg1), cast(u64, 0x1));
1568 addcarryxU64(&x4, &x5, 0x0, (~arg1), @as(u64, 0x1));
15701569 var x6: u64 = undefined;
15711570 cmovznzU64(&x6, x3, arg1, x4);
15721571 var x7: u64 = undefined;
......@@ -1581,19 +1580,19 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[
15811580 cmovznzU64(&x11, x3, (arg2[4]), (arg3[4]));
15821581 var x12: u64 = undefined;
15831582 var x13: u1 = undefined;
1584 addcarryxU64(&x12, &x13, 0x0, cast(u64, 0x1), (~(arg2[0])));
1583 addcarryxU64(&x12, &x13, 0x0, @as(u64, 0x1), (~(arg2[0])));
15851584 var x14: u64 = undefined;
15861585 var x15: u1 = undefined;
1587 addcarryxU64(&x14, &x15, x13, cast(u64, 0x0), (~(arg2[1])));
1586 addcarryxU64(&x14, &x15, x13, @as(u64, 0x0), (~(arg2[1])));
15881587 var x16: u64 = undefined;
15891588 var x17: u1 = undefined;
1590 addcarryxU64(&x16, &x17, x15, cast(u64, 0x0), (~(arg2[2])));
1589 addcarryxU64(&x16, &x17, x15, @as(u64, 0x0), (~(arg2[2])));
15911590 var x18: u64 = undefined;
15921591 var x19: u1 = undefined;
1593 addcarryxU64(&x18, &x19, x17, cast(u64, 0x0), (~(arg2[3])));
1592 addcarryxU64(&x18, &x19, x17, @as(u64, 0x0), (~(arg2[3])));
15941593 var x20: u64 = undefined;
15951594 var x21: u1 = undefined;
1596 addcarryxU64(&x20, &x21, x19, cast(u64, 0x0), (~(arg2[4])));
1595 addcarryxU64(&x20, &x21, x19, @as(u64, 0x0), (~(arg2[4])));
15971596 var x22: u64 = undefined;
15981597 cmovznzU64(&x22, x3, (arg3[0]), x12);
15991598 var x23: u64 = undefined;
......@@ -1632,31 +1631,31 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[
16321631 subborrowxU64(&x41, &x42, x40, x33, 0xffffffff);
16331632 var x43: u64 = undefined;
16341633 var x44: u1 = undefined;
1635 subborrowxU64(&x43, &x44, x42, x35, cast(u64, 0x0));
1634 subborrowxU64(&x43, &x44, x42, x35, @as(u64, 0x0));
16361635 var x45: u64 = undefined;
16371636 var x46: u1 = undefined;
16381637 subborrowxU64(&x45, &x46, x44, x37, 0xffffffff00000001);
16391638 var x47: u64 = undefined;
16401639 var x48: u1 = undefined;
1641 subborrowxU64(&x47, &x48, x46, cast(u64, x38), cast(u64, 0x0));
1640 subborrowxU64(&x47, &x48, x46, @as(u64, x38), @as(u64, 0x0));
16421641 const x49 = (arg4[3]);
16431642 const x50 = (arg4[2]);
16441643 const x51 = (arg4[1]);
16451644 const x52 = (arg4[0]);
16461645 var x53: u64 = undefined;
16471646 var x54: u1 = undefined;
1648 subborrowxU64(&x53, &x54, 0x0, cast(u64, 0x0), x52);
1647 subborrowxU64(&x53, &x54, 0x0, @as(u64, 0x0), x52);
16491648 var x55: u64 = undefined;
16501649 var x56: u1 = undefined;
1651 subborrowxU64(&x55, &x56, x54, cast(u64, 0x0), x51);
1650 subborrowxU64(&x55, &x56, x54, @as(u64, 0x0), x51);
16521651 var x57: u64 = undefined;
16531652 var x58: u1 = undefined;
1654 subborrowxU64(&x57, &x58, x56, cast(u64, 0x0), x50);
1653 subborrowxU64(&x57, &x58, x56, @as(u64, 0x0), x50);
16551654 var x59: u64 = undefined;
16561655 var x60: u1 = undefined;
1657 subborrowxU64(&x59, &x60, x58, cast(u64, 0x0), x49);
1656 subborrowxU64(&x59, &x60, x58, @as(u64, 0x0), x49);
16581657 var x61: u64 = undefined;
1659 cmovznzU64(&x61, x60, cast(u64, 0x0), 0xffffffffffffffff);
1658 cmovznzU64(&x61, x60, @as(u64, 0x0), 0xffffffffffffffff);
16601659 var x62: u64 = undefined;
16611660 var x63: u1 = undefined;
16621661 addcarryxU64(&x62, &x63, 0x0, x53, x61);
......@@ -1665,7 +1664,7 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[
16651664 addcarryxU64(&x64, &x65, x63, x55, (x61 & 0xffffffff));
16661665 var x66: u64 = undefined;
16671666 var x67: u1 = undefined;
1668 addcarryxU64(&x66, &x67, x65, x57, cast(u64, 0x0));
1667 addcarryxU64(&x66, &x67, x65, x57, @as(u64, 0x0));
16691668 var x68: u64 = undefined;
16701669 var x69: u1 = undefined;
16711670 addcarryxU64(&x68, &x69, x67, x59, (x61 & 0xffffffff00000001));
......@@ -1677,17 +1676,17 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[
16771676 cmovznzU64(&x72, x3, (arg5[2]), x66);
16781677 var x73: u64 = undefined;
16791678 cmovznzU64(&x73, x3, (arg5[3]), x68);
1680 const x74 = cast(u1, (x22 & cast(u64, 0x1)));
1679 const x74 = @truncate(u1, (x22 & @as(u64, 0x1)));
16811680 var x75: u64 = undefined;
1682 cmovznzU64(&x75, x74, cast(u64, 0x0), x7);
1681 cmovznzU64(&x75, x74, @as(u64, 0x0), x7);
16831682 var x76: u64 = undefined;
1684 cmovznzU64(&x76, x74, cast(u64, 0x0), x8);
1683 cmovznzU64(&x76, x74, @as(u64, 0x0), x8);
16851684 var x77: u64 = undefined;
1686 cmovznzU64(&x77, x74, cast(u64, 0x0), x9);
1685 cmovznzU64(&x77, x74, @as(u64, 0x0), x9);
16871686 var x78: u64 = undefined;
1688 cmovznzU64(&x78, x74, cast(u64, 0x0), x10);
1687 cmovznzU64(&x78, x74, @as(u64, 0x0), x10);
16891688 var x79: u64 = undefined;
1690 cmovznzU64(&x79, x74, cast(u64, 0x0), x11);
1689 cmovznzU64(&x79, x74, @as(u64, 0x0), x11);
16911690 var x80: u64 = undefined;
16921691 var x81: u1 = undefined;
16931692 addcarryxU64(&x80, &x81, 0x0, x22, x75);
......@@ -1704,13 +1703,13 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[
17041703 var x89: u1 = undefined;
17051704 addcarryxU64(&x88, &x89, x87, x26, x79);
17061705 var x90: u64 = undefined;
1707 cmovznzU64(&x90, x74, cast(u64, 0x0), x27);
1706 cmovznzU64(&x90, x74, @as(u64, 0x0), x27);
17081707 var x91: u64 = undefined;
1709 cmovznzU64(&x91, x74, cast(u64, 0x0), x28);
1708 cmovznzU64(&x91, x74, @as(u64, 0x0), x28);
17101709 var x92: u64 = undefined;
1711 cmovznzU64(&x92, x74, cast(u64, 0x0), x29);
1710 cmovznzU64(&x92, x74, @as(u64, 0x0), x29);
17121711 var x93: u64 = undefined;
1713 cmovznzU64(&x93, x74, cast(u64, 0x0), x30);
1712 cmovznzU64(&x93, x74, @as(u64, 0x0), x30);
17141713 var x94: u64 = undefined;
17151714 var x95: u1 = undefined;
17161715 addcarryxU64(&x94, &x95, 0x0, x70, x90);
......@@ -1731,16 +1730,16 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[
17311730 subborrowxU64(&x104, &x105, x103, x96, 0xffffffff);
17321731 var x106: u64 = undefined;
17331732 var x107: u1 = undefined;
1734 subborrowxU64(&x106, &x107, x105, x98, cast(u64, 0x0));
1733 subborrowxU64(&x106, &x107, x105, x98, @as(u64, 0x0));
17351734 var x108: u64 = undefined;
17361735 var x109: u1 = undefined;
17371736 subborrowxU64(&x108, &x109, x107, x100, 0xffffffff00000001);
17381737 var x110: u64 = undefined;
17391738 var x111: u1 = undefined;
1740 subborrowxU64(&x110, &x111, x109, cast(u64, x101), cast(u64, 0x0));
1739 subborrowxU64(&x110, &x111, x109, @as(u64, x101), @as(u64, 0x0));
17411740 var x112: u64 = undefined;
17421741 var x113: u1 = undefined;
1743 addcarryxU64(&x112, &x113, 0x0, x6, cast(u64, 0x1));
1742 addcarryxU64(&x112, &x113, 0x0, x6, @as(u64, 0x1));
17441743 const x114 = ((x80 >> 1) | ((x82 << 63) & 0xffffffffffffffff));
17451744 const x115 = ((x82 >> 1) | ((x84 << 63) & 0xffffffffffffffff));
17461745 const x116 = ((x84 >> 1) | ((x86 << 63) & 0xffffffffffffffff));
lib/std/crypto/pcurves/p256/p256_scalar_64.zig+144-145
......@@ -18,7 +18,6 @@
1818// if x1 & (2^256-1) < 2^255 then x1 & (2^256-1) else (x1 & (2^256-1)) - 2^256
1919
2020const std = @import("std");
21const cast = std.meta.cast;
2221const mode = std.builtin.mode; // Checked arithmetic is disabled in non-debug modes to avoid side channels
2322
2423// The type MontgomeryDomainFieldElement is a field element in the Montgomery domain.
......@@ -148,7 +147,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
148147 var x17: u64 = undefined;
149148 var x18: u1 = undefined;
150149 addcarryxU64(&x17, &x18, x16, x8, x5);
151 const x19 = (cast(u64, x18) + x6);
150 const x19 = (@as(u64, x18) + x6);
152151 var x20: u64 = undefined;
153152 var x21: u64 = undefined;
154153 mulxU64(&x20, &x21, x11, 0xccd1c8aaee00bc4f);
......@@ -173,7 +172,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
173172 var x34: u64 = undefined;
174173 var x35: u1 = undefined;
175174 addcarryxU64(&x34, &x35, x33, x25, x22);
176 const x36 = (cast(u64, x35) + x23);
175 const x36 = (@as(u64, x35) + x23);
177176 var x37: u64 = undefined;
178177 var x38: u1 = undefined;
179178 addcarryxU64(&x37, &x38, 0x0, x11, x28);
......@@ -210,7 +209,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
210209 var x59: u64 = undefined;
211210 var x60: u1 = undefined;
212211 addcarryxU64(&x59, &x60, x58, x50, x47);
213 const x61 = (cast(u64, x60) + x48);
212 const x61 = (@as(u64, x60) + x48);
214213 var x62: u64 = undefined;
215214 var x63: u1 = undefined;
216215 addcarryxU64(&x62, &x63, 0x0, x39, x53);
......@@ -225,7 +224,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
225224 addcarryxU64(&x68, &x69, x67, x45, x59);
226225 var x70: u64 = undefined;
227226 var x71: u1 = undefined;
228 addcarryxU64(&x70, &x71, x69, cast(u64, x46), x61);
227 addcarryxU64(&x70, &x71, x69, @as(u64, x46), x61);
229228 var x72: u64 = undefined;
230229 var x73: u64 = undefined;
231230 mulxU64(&x72, &x73, x62, 0xccd1c8aaee00bc4f);
......@@ -250,7 +249,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
250249 var x86: u64 = undefined;
251250 var x87: u1 = undefined;
252251 addcarryxU64(&x86, &x87, x85, x77, x74);
253 const x88 = (cast(u64, x87) + x75);
252 const x88 = (@as(u64, x87) + x75);
254253 var x89: u64 = undefined;
255254 var x90: u1 = undefined;
256255 addcarryxU64(&x89, &x90, 0x0, x62, x80);
......@@ -266,7 +265,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
266265 var x97: u64 = undefined;
267266 var x98: u1 = undefined;
268267 addcarryxU64(&x97, &x98, x96, x70, x88);
269 const x99 = (cast(u64, x98) + cast(u64, x71));
268 const x99 = (@as(u64, x98) + @as(u64, x71));
270269 var x100: u64 = undefined;
271270 var x101: u64 = undefined;
272271 mulxU64(&x100, &x101, x2, (arg2[3]));
......@@ -288,7 +287,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
288287 var x112: u64 = undefined;
289288 var x113: u1 = undefined;
290289 addcarryxU64(&x112, &x113, x111, x103, x100);
291 const x114 = (cast(u64, x113) + x101);
290 const x114 = (@as(u64, x113) + x101);
292291 var x115: u64 = undefined;
293292 var x116: u1 = undefined;
294293 addcarryxU64(&x115, &x116, 0x0, x91, x106);
......@@ -328,7 +327,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
328327 var x139: u64 = undefined;
329328 var x140: u1 = undefined;
330329 addcarryxU64(&x139, &x140, x138, x130, x127);
331 const x141 = (cast(u64, x140) + x128);
330 const x141 = (@as(u64, x140) + x128);
332331 var x142: u64 = undefined;
333332 var x143: u1 = undefined;
334333 addcarryxU64(&x142, &x143, 0x0, x115, x133);
......@@ -344,7 +343,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
344343 var x150: u64 = undefined;
345344 var x151: u1 = undefined;
346345 addcarryxU64(&x150, &x151, x149, x123, x141);
347 const x152 = (cast(u64, x151) + cast(u64, x124));
346 const x152 = (@as(u64, x151) + @as(u64, x124));
348347 var x153: u64 = undefined;
349348 var x154: u64 = undefined;
350349 mulxU64(&x153, &x154, x3, (arg2[3]));
......@@ -366,7 +365,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
366365 var x165: u64 = undefined;
367366 var x166: u1 = undefined;
368367 addcarryxU64(&x165, &x166, x164, x156, x153);
369 const x167 = (cast(u64, x166) + x154);
368 const x167 = (@as(u64, x166) + x154);
370369 var x168: u64 = undefined;
371370 var x169: u1 = undefined;
372371 addcarryxU64(&x168, &x169, 0x0, x144, x159);
......@@ -406,7 +405,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
406405 var x192: u64 = undefined;
407406 var x193: u1 = undefined;
408407 addcarryxU64(&x192, &x193, x191, x183, x180);
409 const x194 = (cast(u64, x193) + x181);
408 const x194 = (@as(u64, x193) + x181);
410409 var x195: u64 = undefined;
411410 var x196: u1 = undefined;
412411 addcarryxU64(&x195, &x196, 0x0, x168, x186);
......@@ -422,7 +421,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
422421 var x203: u64 = undefined;
423422 var x204: u1 = undefined;
424423 addcarryxU64(&x203, &x204, x202, x176, x194);
425 const x205 = (cast(u64, x204) + cast(u64, x177));
424 const x205 = (@as(u64, x204) + @as(u64, x177));
426425 var x206: u64 = undefined;
427426 var x207: u1 = undefined;
428427 subborrowxU64(&x206, &x207, 0x0, x197, 0xf3b9cac2fc632551);
......@@ -437,7 +436,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
437436 subborrowxU64(&x212, &x213, x211, x203, 0xffffffff00000000);
438437 var x214: u64 = undefined;
439438 var x215: u1 = undefined;
440 subborrowxU64(&x214, &x215, x213, x205, cast(u64, 0x0));
439 subborrowxU64(&x214, &x215, x213, x205, @as(u64, 0x0));
441440 var x216: u64 = undefined;
442441 cmovznzU64(&x216, x215, x206, x197);
443442 var x217: u64 = undefined;
......@@ -488,7 +487,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
488487 var x17: u64 = undefined;
489488 var x18: u1 = undefined;
490489 addcarryxU64(&x17, &x18, x16, x8, x5);
491 const x19 = (cast(u64, x18) + x6);
490 const x19 = (@as(u64, x18) + x6);
492491 var x20: u64 = undefined;
493492 var x21: u64 = undefined;
494493 mulxU64(&x20, &x21, x11, 0xccd1c8aaee00bc4f);
......@@ -513,7 +512,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
513512 var x34: u64 = undefined;
514513 var x35: u1 = undefined;
515514 addcarryxU64(&x34, &x35, x33, x25, x22);
516 const x36 = (cast(u64, x35) + x23);
515 const x36 = (@as(u64, x35) + x23);
517516 var x37: u64 = undefined;
518517 var x38: u1 = undefined;
519518 addcarryxU64(&x37, &x38, 0x0, x11, x28);
......@@ -550,7 +549,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
550549 var x59: u64 = undefined;
551550 var x60: u1 = undefined;
552551 addcarryxU64(&x59, &x60, x58, x50, x47);
553 const x61 = (cast(u64, x60) + x48);
552 const x61 = (@as(u64, x60) + x48);
554553 var x62: u64 = undefined;
555554 var x63: u1 = undefined;
556555 addcarryxU64(&x62, &x63, 0x0, x39, x53);
......@@ -565,7 +564,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
565564 addcarryxU64(&x68, &x69, x67, x45, x59);
566565 var x70: u64 = undefined;
567566 var x71: u1 = undefined;
568 addcarryxU64(&x70, &x71, x69, cast(u64, x46), x61);
567 addcarryxU64(&x70, &x71, x69, @as(u64, x46), x61);
569568 var x72: u64 = undefined;
570569 var x73: u64 = undefined;
571570 mulxU64(&x72, &x73, x62, 0xccd1c8aaee00bc4f);
......@@ -590,7 +589,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
590589 var x86: u64 = undefined;
591590 var x87: u1 = undefined;
592591 addcarryxU64(&x86, &x87, x85, x77, x74);
593 const x88 = (cast(u64, x87) + x75);
592 const x88 = (@as(u64, x87) + x75);
594593 var x89: u64 = undefined;
595594 var x90: u1 = undefined;
596595 addcarryxU64(&x89, &x90, 0x0, x62, x80);
......@@ -606,7 +605,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
606605 var x97: u64 = undefined;
607606 var x98: u1 = undefined;
608607 addcarryxU64(&x97, &x98, x96, x70, x88);
609 const x99 = (cast(u64, x98) + cast(u64, x71));
608 const x99 = (@as(u64, x98) + @as(u64, x71));
610609 var x100: u64 = undefined;
611610 var x101: u64 = undefined;
612611 mulxU64(&x100, &x101, x2, (arg1[3]));
......@@ -628,7 +627,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
628627 var x112: u64 = undefined;
629628 var x113: u1 = undefined;
630629 addcarryxU64(&x112, &x113, x111, x103, x100);
631 const x114 = (cast(u64, x113) + x101);
630 const x114 = (@as(u64, x113) + x101);
632631 var x115: u64 = undefined;
633632 var x116: u1 = undefined;
634633 addcarryxU64(&x115, &x116, 0x0, x91, x106);
......@@ -668,7 +667,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
668667 var x139: u64 = undefined;
669668 var x140: u1 = undefined;
670669 addcarryxU64(&x139, &x140, x138, x130, x127);
671 const x141 = (cast(u64, x140) + x128);
670 const x141 = (@as(u64, x140) + x128);
672671 var x142: u64 = undefined;
673672 var x143: u1 = undefined;
674673 addcarryxU64(&x142, &x143, 0x0, x115, x133);
......@@ -684,7 +683,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
684683 var x150: u64 = undefined;
685684 var x151: u1 = undefined;
686685 addcarryxU64(&x150, &x151, x149, x123, x141);
687 const x152 = (cast(u64, x151) + cast(u64, x124));
686 const x152 = (@as(u64, x151) + @as(u64, x124));
688687 var x153: u64 = undefined;
689688 var x154: u64 = undefined;
690689 mulxU64(&x153, &x154, x3, (arg1[3]));
......@@ -706,7 +705,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
706705 var x165: u64 = undefined;
707706 var x166: u1 = undefined;
708707 addcarryxU64(&x165, &x166, x164, x156, x153);
709 const x167 = (cast(u64, x166) + x154);
708 const x167 = (@as(u64, x166) + x154);
710709 var x168: u64 = undefined;
711710 var x169: u1 = undefined;
712711 addcarryxU64(&x168, &x169, 0x0, x144, x159);
......@@ -746,7 +745,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
746745 var x192: u64 = undefined;
747746 var x193: u1 = undefined;
748747 addcarryxU64(&x192, &x193, x191, x183, x180);
749 const x194 = (cast(u64, x193) + x181);
748 const x194 = (@as(u64, x193) + x181);
750749 var x195: u64 = undefined;
751750 var x196: u1 = undefined;
752751 addcarryxU64(&x195, &x196, 0x0, x168, x186);
......@@ -762,7 +761,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
762761 var x203: u64 = undefined;
763762 var x204: u1 = undefined;
764763 addcarryxU64(&x203, &x204, x202, x176, x194);
765 const x205 = (cast(u64, x204) + cast(u64, x177));
764 const x205 = (@as(u64, x204) + @as(u64, x177));
766765 var x206: u64 = undefined;
767766 var x207: u1 = undefined;
768767 subborrowxU64(&x206, &x207, 0x0, x197, 0xf3b9cac2fc632551);
......@@ -777,7 +776,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl
777776 subborrowxU64(&x212, &x213, x211, x203, 0xffffffff00000000);
778777 var x214: u64 = undefined;
779778 var x215: u1 = undefined;
780 subborrowxU64(&x214, &x215, x213, x205, cast(u64, 0x0));
779 subborrowxU64(&x214, &x215, x213, x205, @as(u64, 0x0));
781780 var x216: u64 = undefined;
782781 cmovznzU64(&x216, x215, x206, x197);
783782 var x217: u64 = undefined;
......@@ -830,7 +829,7 @@ pub fn add(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
830829 subborrowxU64(&x15, &x16, x14, x7, 0xffffffff00000000);
831830 var x17: u64 = undefined;
832831 var x18: u1 = undefined;
833 subborrowxU64(&x17, &x18, x16, cast(u64, x8), cast(u64, 0x0));
832 subborrowxU64(&x17, &x18, x16, @as(u64, x8), @as(u64, 0x0));
834833 var x19: u64 = undefined;
835834 cmovznzU64(&x19, x18, x9, x1);
836835 var x20: u64 = undefined;
......@@ -870,7 +869,7 @@ pub fn sub(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
870869 var x8: u1 = undefined;
871870 subborrowxU64(&x7, &x8, x6, (arg1[3]), (arg2[3]));
872871 var x9: u64 = undefined;
873 cmovznzU64(&x9, x8, cast(u64, 0x0), 0xffffffffffffffff);
872 cmovznzU64(&x9, x8, @as(u64, 0x0), 0xffffffffffffffff);
874873 var x10: u64 = undefined;
875874 var x11: u1 = undefined;
876875 addcarryxU64(&x10, &x11, 0x0, x1, (x9 & 0xf3b9cac2fc632551));
......@@ -902,18 +901,18 @@ pub fn opp(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme
902901
903902 var x1: u64 = undefined;
904903 var x2: u1 = undefined;
905 subborrowxU64(&x1, &x2, 0x0, cast(u64, 0x0), (arg1[0]));
904 subborrowxU64(&x1, &x2, 0x0, @as(u64, 0x0), (arg1[0]));
906905 var x3: u64 = undefined;
907906 var x4: u1 = undefined;
908 subborrowxU64(&x3, &x4, x2, cast(u64, 0x0), (arg1[1]));
907 subborrowxU64(&x3, &x4, x2, @as(u64, 0x0), (arg1[1]));
909908 var x5: u64 = undefined;
910909 var x6: u1 = undefined;
911 subborrowxU64(&x5, &x6, x4, cast(u64, 0x0), (arg1[2]));
910 subborrowxU64(&x5, &x6, x4, @as(u64, 0x0), (arg1[2]));
912911 var x7: u64 = undefined;
913912 var x8: u1 = undefined;
914 subborrowxU64(&x7, &x8, x6, cast(u64, 0x0), (arg1[3]));
913 subborrowxU64(&x7, &x8, x6, @as(u64, 0x0), (arg1[3]));
915914 var x9: u64 = undefined;
916 cmovznzU64(&x9, x8, cast(u64, 0x0), 0xffffffffffffffff);
915 cmovznzU64(&x9, x8, @as(u64, 0x0), 0xffffffffffffffff);
917916 var x10: u64 = undefined;
918917 var x11: u1 = undefined;
919918 addcarryxU64(&x10, &x11, 0x0, x1, (x9 & 0xf3b9cac2fc632551));
......@@ -973,22 +972,22 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo
973972 addcarryxU64(&x18, &x19, 0x0, x1, x10);
974973 var x20: u64 = undefined;
975974 var x21: u1 = undefined;
976 addcarryxU64(&x20, &x21, x19, cast(u64, 0x0), x12);
975 addcarryxU64(&x20, &x21, x19, @as(u64, 0x0), x12);
977976 var x22: u64 = undefined;
978977 var x23: u1 = undefined;
979 addcarryxU64(&x22, &x23, x21, cast(u64, 0x0), x14);
978 addcarryxU64(&x22, &x23, x21, @as(u64, 0x0), x14);
980979 var x24: u64 = undefined;
981980 var x25: u1 = undefined;
982 addcarryxU64(&x24, &x25, x23, cast(u64, 0x0), x16);
981 addcarryxU64(&x24, &x25, x23, @as(u64, 0x0), x16);
983982 var x26: u64 = undefined;
984983 var x27: u1 = undefined;
985984 addcarryxU64(&x26, &x27, 0x0, x20, (arg1[1]));
986985 var x28: u64 = undefined;
987986 var x29: u1 = undefined;
988 addcarryxU64(&x28, &x29, x27, x22, cast(u64, 0x0));
987 addcarryxU64(&x28, &x29, x27, x22, @as(u64, 0x0));
989988 var x30: u64 = undefined;
990989 var x31: u1 = undefined;
991 addcarryxU64(&x30, &x31, x29, x24, cast(u64, 0x0));
990 addcarryxU64(&x30, &x31, x29, x24, @as(u64, 0x0));
992991 var x32: u64 = undefined;
993992 var x33: u64 = undefined;
994993 mulxU64(&x32, &x33, x26, 0xccd1c8aaee00bc4f);
......@@ -1024,16 +1023,16 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo
10241023 addcarryxU64(&x52, &x53, x51, x30, x44);
10251024 var x54: u64 = undefined;
10261025 var x55: u1 = undefined;
1027 addcarryxU64(&x54, &x55, x53, (cast(u64, x31) + (cast(u64, x25) + (cast(u64, x17) + x5))), x46);
1026 addcarryxU64(&x54, &x55, x53, (@as(u64, x31) + (@as(u64, x25) + (@as(u64, x17) + x5))), x46);
10281027 var x56: u64 = undefined;
10291028 var x57: u1 = undefined;
10301029 addcarryxU64(&x56, &x57, 0x0, x50, (arg1[2]));
10311030 var x58: u64 = undefined;
10321031 var x59: u1 = undefined;
1033 addcarryxU64(&x58, &x59, x57, x52, cast(u64, 0x0));
1032 addcarryxU64(&x58, &x59, x57, x52, @as(u64, 0x0));
10341033 var x60: u64 = undefined;
10351034 var x61: u1 = undefined;
1036 addcarryxU64(&x60, &x61, x59, x54, cast(u64, 0x0));
1035 addcarryxU64(&x60, &x61, x59, x54, @as(u64, 0x0));
10371036 var x62: u64 = undefined;
10381037 var x63: u64 = undefined;
10391038 mulxU64(&x62, &x63, x56, 0xccd1c8aaee00bc4f);
......@@ -1069,16 +1068,16 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo
10691068 addcarryxU64(&x82, &x83, x81, x60, x74);
10701069 var x84: u64 = undefined;
10711070 var x85: u1 = undefined;
1072 addcarryxU64(&x84, &x85, x83, (cast(u64, x61) + (cast(u64, x55) + (cast(u64, x47) + x35))), x76);
1071 addcarryxU64(&x84, &x85, x83, (@as(u64, x61) + (@as(u64, x55) + (@as(u64, x47) + x35))), x76);
10731072 var x86: u64 = undefined;
10741073 var x87: u1 = undefined;
10751074 addcarryxU64(&x86, &x87, 0x0, x80, (arg1[3]));
10761075 var x88: u64 = undefined;
10771076 var x89: u1 = undefined;
1078 addcarryxU64(&x88, &x89, x87, x82, cast(u64, 0x0));
1077 addcarryxU64(&x88, &x89, x87, x82, @as(u64, 0x0));
10791078 var x90: u64 = undefined;
10801079 var x91: u1 = undefined;
1081 addcarryxU64(&x90, &x91, x89, x84, cast(u64, 0x0));
1080 addcarryxU64(&x90, &x91, x89, x84, @as(u64, 0x0));
10821081 var x92: u64 = undefined;
10831082 var x93: u64 = undefined;
10841083 mulxU64(&x92, &x93, x86, 0xccd1c8aaee00bc4f);
......@@ -1114,8 +1113,8 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo
11141113 addcarryxU64(&x112, &x113, x111, x90, x104);
11151114 var x114: u64 = undefined;
11161115 var x115: u1 = undefined;
1117 addcarryxU64(&x114, &x115, x113, (cast(u64, x91) + (cast(u64, x85) + (cast(u64, x77) + x65))), x106);
1118 const x116 = (cast(u64, x115) + (cast(u64, x107) + x95));
1116 addcarryxU64(&x114, &x115, x113, (@as(u64, x91) + (@as(u64, x85) + (@as(u64, x77) + x65))), x106);
1117 const x116 = (@as(u64, x115) + (@as(u64, x107) + x95));
11191118 var x117: u64 = undefined;
11201119 var x118: u1 = undefined;
11211120 subborrowxU64(&x117, &x118, 0x0, x110, 0xf3b9cac2fc632551);
......@@ -1130,7 +1129,7 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo
11301129 subborrowxU64(&x123, &x124, x122, x116, 0xffffffff00000000);
11311130 var x125: u64 = undefined;
11321131 var x126: u1 = undefined;
1133 subborrowxU64(&x125, &x126, x124, cast(u64, 0x0), cast(u64, 0x0));
1132 subborrowxU64(&x125, &x126, x124, @as(u64, 0x0), @as(u64, 0x0));
11341133 var x127: u64 = undefined;
11351134 cmovznzU64(&x127, x126, x117, x110);
11361135 var x128: u64 = undefined;
......@@ -1219,7 +1218,7 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma
12191218 addcarryxU64(&x41, &x42, x40, x17, x33);
12201219 var x43: u64 = undefined;
12211220 var x44: u1 = undefined;
1222 addcarryxU64(&x43, &x44, x42, (cast(u64, x18) + x6), (cast(u64, x34) + x22));
1221 addcarryxU64(&x43, &x44, x42, (@as(u64, x18) + x6), (@as(u64, x34) + x22));
12231222 var x45: u64 = undefined;
12241223 var x46: u64 = undefined;
12251224 mulxU64(&x45, &x46, x1, 0x66e12d94f3d95620);
......@@ -1291,7 +1290,7 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma
12911290 addcarryxU64(&x89, &x90, x88, x65, x81);
12921291 var x91: u64 = undefined;
12931292 var x92: u1 = undefined;
1294 addcarryxU64(&x91, &x92, x90, ((cast(u64, x66) + cast(u64, x44)) + (cast(u64, x58) + x46)), (cast(u64, x82) + x70));
1293 addcarryxU64(&x91, &x92, x90, ((@as(u64, x66) + @as(u64, x44)) + (@as(u64, x58) + x46)), (@as(u64, x82) + x70));
12951294 var x93: u64 = undefined;
12961295 var x94: u64 = undefined;
12971296 mulxU64(&x93, &x94, x2, 0x66e12d94f3d95620);
......@@ -1363,7 +1362,7 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma
13631362 addcarryxU64(&x137, &x138, x136, x113, x129);
13641363 var x139: u64 = undefined;
13651364 var x140: u1 = undefined;
1366 addcarryxU64(&x139, &x140, x138, ((cast(u64, x114) + cast(u64, x92)) + (cast(u64, x106) + x94)), (cast(u64, x130) + x118));
1365 addcarryxU64(&x139, &x140, x138, ((@as(u64, x114) + @as(u64, x92)) + (@as(u64, x106) + x94)), (@as(u64, x130) + x118));
13671366 var x141: u64 = undefined;
13681367 var x142: u64 = undefined;
13691368 mulxU64(&x141, &x142, x3, 0x66e12d94f3d95620);
......@@ -1435,7 +1434,7 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma
14351434 addcarryxU64(&x185, &x186, x184, x161, x177);
14361435 var x187: u64 = undefined;
14371436 var x188: u1 = undefined;
1438 addcarryxU64(&x187, &x188, x186, ((cast(u64, x162) + cast(u64, x140)) + (cast(u64, x154) + x142)), (cast(u64, x178) + x166));
1437 addcarryxU64(&x187, &x188, x186, ((@as(u64, x162) + @as(u64, x140)) + (@as(u64, x154) + x142)), (@as(u64, x178) + x166));
14391438 var x189: u64 = undefined;
14401439 var x190: u1 = undefined;
14411440 subborrowxU64(&x189, &x190, 0x0, x181, 0xf3b9cac2fc632551);
......@@ -1450,7 +1449,7 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma
14501449 subborrowxU64(&x195, &x196, x194, x187, 0xffffffff00000000);
14511450 var x197: u64 = undefined;
14521451 var x198: u1 = undefined;
1453 subborrowxU64(&x197, &x198, x196, cast(u64, x188), cast(u64, 0x0));
1452 subborrowxU64(&x197, &x198, x196, @as(u64, x188), @as(u64, 0x0));
14541453 var x199: u64 = undefined;
14551454 cmovznzU64(&x199, x198, x189, x181);
14561455 var x200: u64 = undefined;
......@@ -1529,62 +1528,62 @@ pub fn toBytes(out1: *[32]u8, arg1: [4]u64) void {
15291528 const x2 = (arg1[2]);
15301529 const x3 = (arg1[1]);
15311530 const x4 = (arg1[0]);
1532 const x5 = cast(u8, (x4 & cast(u64, 0xff)));
1531 const x5 = @truncate(u8, (x4 & @as(u64, 0xff)));
15331532 const x6 = (x4 >> 8);
1534 const x7 = cast(u8, (x6 & cast(u64, 0xff)));
1533 const x7 = @truncate(u8, (x6 & @as(u64, 0xff)));
15351534 const x8 = (x6 >> 8);
1536 const x9 = cast(u8, (x8 & cast(u64, 0xff)));
1535 const x9 = @truncate(u8, (x8 & @as(u64, 0xff)));
15371536 const x10 = (x8 >> 8);
1538 const x11 = cast(u8, (x10 & cast(u64, 0xff)));
1537 const x11 = @truncate(u8, (x10 & @as(u64, 0xff)));
15391538 const x12 = (x10 >> 8);
1540 const x13 = cast(u8, (x12 & cast(u64, 0xff)));
1539 const x13 = @truncate(u8, (x12 & @as(u64, 0xff)));
15411540 const x14 = (x12 >> 8);
1542 const x15 = cast(u8, (x14 & cast(u64, 0xff)));
1541 const x15 = @truncate(u8, (x14 & @as(u64, 0xff)));
15431542 const x16 = (x14 >> 8);
1544 const x17 = cast(u8, (x16 & cast(u64, 0xff)));
1545 const x18 = cast(u8, (x16 >> 8));
1546 const x19 = cast(u8, (x3 & cast(u64, 0xff)));
1543 const x17 = @truncate(u8, (x16 & @as(u64, 0xff)));
1544 const x18 = @truncate(u8, (x16 >> 8));
1545 const x19 = @truncate(u8, (x3 & @as(u64, 0xff)));
15471546 const x20 = (x3 >> 8);
1548 const x21 = cast(u8, (x20 & cast(u64, 0xff)));
1547 const x21 = @truncate(u8, (x20 & @as(u64, 0xff)));
15491548 const x22 = (x20 >> 8);
1550 const x23 = cast(u8, (x22 & cast(u64, 0xff)));
1549 const x23 = @truncate(u8, (x22 & @as(u64, 0xff)));
15511550 const x24 = (x22 >> 8);
1552 const x25 = cast(u8, (x24 & cast(u64, 0xff)));
1551 const x25 = @truncate(u8, (x24 & @as(u64, 0xff)));
15531552 const x26 = (x24 >> 8);
1554 const x27 = cast(u8, (x26 & cast(u64, 0xff)));
1553 const x27 = @truncate(u8, (x26 & @as(u64, 0xff)));
15551554 const x28 = (x26 >> 8);
1556 const x29 = cast(u8, (x28 & cast(u64, 0xff)));
1555 const x29 = @truncate(u8, (x28 & @as(u64, 0xff)));
15571556 const x30 = (x28 >> 8);
1558 const x31 = cast(u8, (x30 & cast(u64, 0xff)));
1559 const x32 = cast(u8, (x30 >> 8));
1560 const x33 = cast(u8, (x2 & cast(u64, 0xff)));
1557 const x31 = @truncate(u8, (x30 & @as(u64, 0xff)));
1558 const x32 = @truncate(u8, (x30 >> 8));
1559 const x33 = @truncate(u8, (x2 & @as(u64, 0xff)));
15611560 const x34 = (x2 >> 8);
1562 const x35 = cast(u8, (x34 & cast(u64, 0xff)));
1561 const x35 = @truncate(u8, (x34 & @as(u64, 0xff)));
15631562 const x36 = (x34 >> 8);
1564 const x37 = cast(u8, (x36 & cast(u64, 0xff)));
1563 const x37 = @truncate(u8, (x36 & @as(u64, 0xff)));
15651564 const x38 = (x36 >> 8);
1566 const x39 = cast(u8, (x38 & cast(u64, 0xff)));
1565 const x39 = @truncate(u8, (x38 & @as(u64, 0xff)));
15671566 const x40 = (x38 >> 8);
1568 const x41 = cast(u8, (x40 & cast(u64, 0xff)));
1567 const x41 = @truncate(u8, (x40 & @as(u64, 0xff)));
15691568 const x42 = (x40 >> 8);
1570 const x43 = cast(u8, (x42 & cast(u64, 0xff)));
1569 const x43 = @truncate(u8, (x42 & @as(u64, 0xff)));
15711570 const x44 = (x42 >> 8);
1572 const x45 = cast(u8, (x44 & cast(u64, 0xff)));
1573 const x46 = cast(u8, (x44 >> 8));
1574 const x47 = cast(u8, (x1 & cast(u64, 0xff)));
1571 const x45 = @truncate(u8, (x44 & @as(u64, 0xff)));
1572 const x46 = @truncate(u8, (x44 >> 8));
1573 const x47 = @truncate(u8, (x1 & @as(u64, 0xff)));
15751574 const x48 = (x1 >> 8);
1576 const x49 = cast(u8, (x48 & cast(u64, 0xff)));
1575 const x49 = @truncate(u8, (x48 & @as(u64, 0xff)));
15771576 const x50 = (x48 >> 8);
1578 const x51 = cast(u8, (x50 & cast(u64, 0xff)));
1577 const x51 = @truncate(u8, (x50 & @as(u64, 0xff)));
15791578 const x52 = (x50 >> 8);
1580 const x53 = cast(u8, (x52 & cast(u64, 0xff)));
1579 const x53 = @truncate(u8, (x52 & @as(u64, 0xff)));
15811580 const x54 = (x52 >> 8);
1582 const x55 = cast(u8, (x54 & cast(u64, 0xff)));
1581 const x55 = @truncate(u8, (x54 & @as(u64, 0xff)));
15831582 const x56 = (x54 >> 8);
1584 const x57 = cast(u8, (x56 & cast(u64, 0xff)));
1583 const x57 = @truncate(u8, (x56 & @as(u64, 0xff)));
15851584 const x58 = (x56 >> 8);
1586 const x59 = cast(u8, (x58 & cast(u64, 0xff)));
1587 const x60 = cast(u8, (x58 >> 8));
1585 const x59 = @truncate(u8, (x58 & @as(u64, 0xff)));
1586 const x60 = @truncate(u8, (x58 >> 8));
15881587 out1[0] = x5;
15891588 out1[1] = x7;
15901589 out1[2] = x9;
......@@ -1634,60 +1633,60 @@ pub fn toBytes(out1: *[32]u8, arg1: [4]u64) void {
16341633pub fn fromBytes(out1: *[4]u64, arg1: [32]u8) void {
16351634 @setRuntimeSafety(mode == .Debug);
16361635
1637 const x1 = (cast(u64, (arg1[31])) << 56);
1638 const x2 = (cast(u64, (arg1[30])) << 48);
1639 const x3 = (cast(u64, (arg1[29])) << 40);
1640 const x4 = (cast(u64, (arg1[28])) << 32);
1641 const x5 = (cast(u64, (arg1[27])) << 24);
1642 const x6 = (cast(u64, (arg1[26])) << 16);
1643 const x7 = (cast(u64, (arg1[25])) << 8);
1636 const x1 = (@as(u64, (arg1[31])) << 56);
1637 const x2 = (@as(u64, (arg1[30])) << 48);
1638 const x3 = (@as(u64, (arg1[29])) << 40);
1639 const x4 = (@as(u64, (arg1[28])) << 32);
1640 const x5 = (@as(u64, (arg1[27])) << 24);
1641 const x6 = (@as(u64, (arg1[26])) << 16);
1642 const x7 = (@as(u64, (arg1[25])) << 8);
16441643 const x8 = (arg1[24]);
1645 const x9 = (cast(u64, (arg1[23])) << 56);
1646 const x10 = (cast(u64, (arg1[22])) << 48);
1647 const x11 = (cast(u64, (arg1[21])) << 40);
1648 const x12 = (cast(u64, (arg1[20])) << 32);
1649 const x13 = (cast(u64, (arg1[19])) << 24);
1650 const x14 = (cast(u64, (arg1[18])) << 16);
1651 const x15 = (cast(u64, (arg1[17])) << 8);
1644 const x9 = (@as(u64, (arg1[23])) << 56);
1645 const x10 = (@as(u64, (arg1[22])) << 48);
1646 const x11 = (@as(u64, (arg1[21])) << 40);
1647 const x12 = (@as(u64, (arg1[20])) << 32);
1648 const x13 = (@as(u64, (arg1[19])) << 24);
1649 const x14 = (@as(u64, (arg1[18])) << 16);
1650 const x15 = (@as(u64, (arg1[17])) << 8);
16521651 const x16 = (arg1[16]);
1653 const x17 = (cast(u64, (arg1[15])) << 56);
1654 const x18 = (cast(u64, (arg1[14])) << 48);
1655 const x19 = (cast(u64, (arg1[13])) << 40);
1656 const x20 = (cast(u64, (arg1[12])) << 32);
1657 const x21 = (cast(u64, (arg1[11])) << 24);
1658 const x22 = (cast(u64, (arg1[10])) << 16);
1659 const x23 = (cast(u64, (arg1[9])) << 8);
1652 const x17 = (@as(u64, (arg1[15])) << 56);
1653 const x18 = (@as(u64, (arg1[14])) << 48);
1654 const x19 = (@as(u64, (arg1[13])) << 40);
1655 const x20 = (@as(u64, (arg1[12])) << 32);
1656 const x21 = (@as(u64, (arg1[11])) << 24);
1657 const x22 = (@as(u64, (arg1[10])) << 16);
1658 const x23 = (@as(u64, (arg1[9])) << 8);
16601659 const x24 = (arg1[8]);
1661 const x25 = (cast(u64, (arg1[7])) << 56);
1662 const x26 = (cast(u64, (arg1[6])) << 48);
1663 const x27 = (cast(u64, (arg1[5])) << 40);
1664 const x28 = (cast(u64, (arg1[4])) << 32);
1665 const x29 = (cast(u64, (arg1[3])) << 24);
1666 const x30 = (cast(u64, (arg1[2])) << 16);
1667 const x31 = (cast(u64, (arg1[1])) << 8);
1660 const x25 = (@as(u64, (arg1[7])) << 56);
1661 const x26 = (@as(u64, (arg1[6])) << 48);
1662 const x27 = (@as(u64, (arg1[5])) << 40);
1663 const x28 = (@as(u64, (arg1[4])) << 32);
1664 const x29 = (@as(u64, (arg1[3])) << 24);
1665 const x30 = (@as(u64, (arg1[2])) << 16);
1666 const x31 = (@as(u64, (arg1[1])) << 8);
16681667 const x32 = (arg1[0]);
1669 const x33 = (x31 + cast(u64, x32));
1668 const x33 = (x31 + @as(u64, x32));
16701669 const x34 = (x30 + x33);
16711670 const x35 = (x29 + x34);
16721671 const x36 = (x28 + x35);
16731672 const x37 = (x27 + x36);
16741673 const x38 = (x26 + x37);
16751674 const x39 = (x25 + x38);
1676 const x40 = (x23 + cast(u64, x24));
1675 const x40 = (x23 + @as(u64, x24));
16771676 const x41 = (x22 + x40);
16781677 const x42 = (x21 + x41);
16791678 const x43 = (x20 + x42);
16801679 const x44 = (x19 + x43);
16811680 const x45 = (x18 + x44);
16821681 const x46 = (x17 + x45);
1683 const x47 = (x15 + cast(u64, x16));
1682 const x47 = (x15 + @as(u64, x16));
16841683 const x48 = (x14 + x47);
16851684 const x49 = (x13 + x48);
16861685 const x50 = (x12 + x49);
16871686 const x51 = (x11 + x50);
16881687 const x52 = (x10 + x51);
16891688 const x53 = (x9 + x52);
1690 const x54 = (x7 + cast(u64, x8));
1689 const x54 = (x7 + @as(u64, x8));
16911690 const x55 = (x6 + x54);
16921691 const x56 = (x5 + x55);
16931692 const x57 = (x4 + x56);
......@@ -1711,7 +1710,7 @@ pub fn setOne(out1: *MontgomeryDomainFieldElement) void {
17111710
17121711 out1[0] = 0xc46353d039cdaaf;
17131712 out1[1] = 0x4319055258e8617b;
1714 out1[2] = cast(u64, 0x0);
1713 out1[2] = @as(u64, 0x0);
17151714 out1[3] = 0xffffffff;
17161715}
17171716
......@@ -1730,7 +1729,7 @@ pub fn msat(out1: *[5]u64) void {
17301729 out1[1] = 0xbce6faada7179e84;
17311730 out1[2] = 0xffffffffffffffff;
17321731 out1[3] = 0xffffffff00000000;
1733 out1[4] = cast(u64, 0x0);
1732 out1[4] = @as(u64, 0x0);
17341733}
17351734
17361735/// The function divstep computes a divstep.
......@@ -1766,11 +1765,11 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[
17661765
17671766 var x1: u64 = undefined;
17681767 var x2: u1 = undefined;
1769 addcarryxU64(&x1, &x2, 0x0, (~arg1), cast(u64, 0x1));
1770 const x3 = (cast(u1, (x1 >> 63)) & cast(u1, ((arg3[0]) & cast(u64, 0x1))));
1768 addcarryxU64(&x1, &x2, 0x0, (~arg1), @as(u64, 0x1));
1769 const x3 = (@as(u1, (x1 >> 63)) & @as(u1, ((arg3[0]) & @as(u64, 0x1))));
17711770 var x4: u64 = undefined;
17721771 var x5: u1 = undefined;
1773 addcarryxU64(&x4, &x5, 0x0, (~arg1), cast(u64, 0x1));
1772 addcarryxU64(&x4, &x5, 0x0, (~arg1), @as(u64, 0x1));
17741773 var x6: u64 = undefined;
17751774 cmovznzU64(&x6, x3, arg1, x4);
17761775 var x7: u64 = undefined;
......@@ -1785,19 +1784,19 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[
17851784 cmovznzU64(&x11, x3, (arg2[4]), (arg3[4]));
17861785 var x12: u64 = undefined;
17871786 var x13: u1 = undefined;
1788 addcarryxU64(&x12, &x13, 0x0, cast(u64, 0x1), (~(arg2[0])));
1787 addcarryxU64(&x12, &x13, 0x0, @as(u64, 0x1), (~(arg2[0])));
17891788 var x14: u64 = undefined;
17901789 var x15: u1 = undefined;
1791 addcarryxU64(&x14, &x15, x13, cast(u64, 0x0), (~(arg2[1])));
1790 addcarryxU64(&x14, &x15, x13, @as(u64, 0x0), (~(arg2[1])));
17921791 var x16: u64 = undefined;
17931792 var x17: u1 = undefined;
1794 addcarryxU64(&x16, &x17, x15, cast(u64, 0x0), (~(arg2[2])));
1793 addcarryxU64(&x16, &x17, x15, @as(u64, 0x0), (~(arg2[2])));
17951794 var x18: u64 = undefined;
17961795 var x19: u1 = undefined;
1797 addcarryxU64(&x18, &x19, x17, cast(u64, 0x0), (~(arg2[3])));
1796 addcarryxU64(&x18, &x19, x17, @as(u64, 0x0), (~(arg2[3])));
17981797 var x20: u64 = undefined;
17991798 var x21: u1 = undefined;
1800 addcarryxU64(&x20, &x21, x19, cast(u64, 0x0), (~(arg2[4])));
1799 addcarryxU64(&x20, &x21, x19, @as(u64, 0x0), (~(arg2[4])));
18011800 var x22: u64 = undefined;
18021801 cmovznzU64(&x22, x3, (arg3[0]), x12);
18031802 var x23: u64 = undefined;
......@@ -1842,25 +1841,25 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[
18421841 subborrowxU64(&x45, &x46, x44, x37, 0xffffffff00000000);
18431842 var x47: u64 = undefined;
18441843 var x48: u1 = undefined;
1845 subborrowxU64(&x47, &x48, x46, cast(u64, x38), cast(u64, 0x0));
1844 subborrowxU64(&x47, &x48, x46, @as(u64, x38), @as(u64, 0x0));
18461845 const x49 = (arg4[3]);
18471846 const x50 = (arg4[2]);
18481847 const x51 = (arg4[1]);
18491848 const x52 = (arg4[0]);
18501849 var x53: u64 = undefined;
18511850 var x54: u1 = undefined;
1852 subborrowxU64(&x53, &x54, 0x0, cast(u64, 0x0), x52);
1851 subborrowxU64(&x53, &x54, 0x0, @as(u64, 0x0), x52);
18531852 var x55: u64 = undefined;
18541853 var x56: u1 = undefined;
1855 subborrowxU64(&x55, &x56, x54, cast(u64, 0x0), x51);
1854 subborrowxU64(&x55, &x56, x54, @as(u64, 0x0), x51);
18561855 var x57: u64 = undefined;
18571856 var x58: u1 = undefined;
1858 subborrowxU64(&x57, &x58, x56, cast(u64, 0x0), x50);
1857 subborrowxU64(&x57, &x58, x56, @as(u64, 0x0), x50);
18591858 var x59: u64 = undefined;
18601859 var x60: u1 = undefined;
1861 subborrowxU64(&x59, &x60, x58, cast(u64, 0x0), x49);
1860 subborrowxU64(&x59, &x60, x58, @as(u64, 0x0), x49);
18621861 var x61: u64 = undefined;
1863 cmovznzU64(&x61, x60, cast(u64, 0x0), 0xffffffffffffffff);
1862 cmovznzU64(&x61, x60, @as(u64, 0x0), 0xffffffffffffffff);
18641863 var x62: u64 = undefined;
18651864 var x63: u1 = undefined;
18661865 addcarryxU64(&x62, &x63, 0x0, x53, (x61 & 0xf3b9cac2fc632551));
......@@ -1881,17 +1880,17 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[
18811880 cmovznzU64(&x72, x3, (arg5[2]), x66);
18821881 var x73: u64 = undefined;
18831882 cmovznzU64(&x73, x3, (arg5[3]), x68);
1884 const x74 = cast(u1, (x22 & cast(u64, 0x1)));
1883 const x74 = @as(u1, (x22 & @as(u64, 0x1)));
18851884 var x75: u64 = undefined;
1886 cmovznzU64(&x75, x74, cast(u64, 0x0), x7);
1885 cmovznzU64(&x75, x74, @as(u64, 0x0), x7);
18871886 var x76: u64 = undefined;
1888 cmovznzU64(&x76, x74, cast(u64, 0x0), x8);
1887 cmovznzU64(&x76, x74, @as(u64, 0x0), x8);
18891888 var x77: u64 = undefined;
1890 cmovznzU64(&x77, x74, cast(u64, 0x0), x9);
1889 cmovznzU64(&x77, x74, @as(u64, 0x0), x9);
18911890 var x78: u64 = undefined;
1892 cmovznzU64(&x78, x74, cast(u64, 0x0), x10);
1891 cmovznzU64(&x78, x74, @as(u64, 0x0), x10);
18931892 var x79: u64 = undefined;
1894 cmovznzU64(&x79, x74, cast(u64, 0x0), x11);
1893 cmovznzU64(&x79, x74, @as(u64, 0x0), x11);
18951894 var x80: u64 = undefined;
18961895 var x81: u1 = undefined;
18971896 addcarryxU64(&x80, &x81, 0x0, x22, x75);
......@@ -1908,13 +1907,13 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[
19081907 var x89: u1 = undefined;
19091908 addcarryxU64(&x88, &x89, x87, x26, x79);
19101909 var x90: u64 = undefined;
1911 cmovznzU64(&x90, x74, cast(u64, 0x0), x27);
1910 cmovznzU64(&x90, x74, @as(u64, 0x0), x27);
19121911 var x91: u64 = undefined;
1913 cmovznzU64(&x91, x74, cast(u64, 0x0), x28);
1912 cmovznzU64(&x91, x74, @as(u64, 0x0), x28);
19141913 var x92: u64 = undefined;
1915 cmovznzU64(&x92, x74, cast(u64, 0x0), x29);
1914 cmovznzU64(&x92, x74, @as(u64, 0x0), x29);
19161915 var x93: u64 = undefined;
1917 cmovznzU64(&x93, x74, cast(u64, 0x0), x30);
1916 cmovznzU64(&x93, x74, @as(u64, 0x0), x30);
19181917 var x94: u64 = undefined;
19191918 var x95: u1 = undefined;
19201919 addcarryxU64(&x94, &x95, 0x0, x70, x90);
......@@ -1941,10 +1940,10 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[
19411940 subborrowxU64(&x108, &x109, x107, x100, 0xffffffff00000000);
19421941 var x110: u64 = undefined;
19431942 var x111: u1 = undefined;
1944 subborrowxU64(&x110, &x111, x109, cast(u64, x101), cast(u64, 0x0));
1943 subborrowxU64(&x110, &x111, x109, @as(u64, x101), @as(u64, 0x0));
19451944 var x112: u64 = undefined;
19461945 var x113: u1 = undefined;
1947 addcarryxU64(&x112, &x113, 0x0, x6, cast(u64, 0x1));
1946 addcarryxU64(&x112, &x113, 0x0, x6, @as(u64, 0x1));
19481947 const x114 = ((x80 >> 1) | ((x82 << 63) & 0xffffffffffffffff));
19491948 const x115 = ((x82 >> 1) | ((x84 << 63) & 0xffffffffffffffff));
19501949 const x116 = ((x84 >> 1) | ((x86 << 63) & 0xffffffffffffffff));