also looking at this
Track latest Zig 0.17-dev OptimizeMode API
#8
11 files
+51
-51
| @@ -110,7 +110,7 @@ fn subborrowxU64(out1: *u64, out2: *u1, arg1: u1, arg2: u64, arg3: u64) void { | ||
| 110 | 110 | /// out1: [0x0 ~> 0xffffffffffffffff] |
| 111 | 111 | /// out2: [0x0 ~> 0xffffffffffffffff] |
| 112 | 112 | fn mulxU64(out1: *u64, out2: *u64, arg1: u64, arg2: u64) void { |
| 113 | @setRuntimeSafety(mode == .Debug); | |
| 113 | @setRuntimeSafety(mode == .debug); | |
| 114 | 114 | |
| 115 | 115 | const x = @as(u128, arg1) * @as(u128, arg2); |
| 116 | 116 | out1.* = @as(u64, @truncate(x)); |
| @@ -129,7 +129,7 @@ fn mulxU64(out1: *u64, out2: *u64, arg1: u64, arg2: u64) void { | ||
| 129 | 129 | /// Output Bounds: |
| 130 | 130 | /// out1: [0x0 ~> 0xffffffffffffffff] |
| 131 | 131 | fn cmovznzU64(out1: *u64, arg1: u1, arg2: u64, arg3: u64) void { |
| 132 | @setRuntimeSafety(mode == .Debug); | |
| 132 | @setRuntimeSafety(mode == .debug); | |
| 133 | 133 | |
| 134 | 134 | const mask = 0 -% @as(u64, arg1); |
| 135 | 135 | out1.* = (mask & arg3) | ((~mask) & arg2); |
| @@ -145,7 +145,7 @@ fn cmovznzU64(out1: *u64, arg1: u1, arg2: u64, arg3: u64) void { | ||
| 145 | 145 | /// 0 ≤ eval out1 < m |
| 146 | 146 | /// |
| 147 | 147 | pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldElement, arg2: MontgomeryDomainFieldElement) void { |
| 148 | @setRuntimeSafety(mode == .Debug); | |
| 148 | @setRuntimeSafety(mode == .debug); | |
| 149 | 149 | |
| 150 | 150 | const x1 = (arg1[1]); |
| 151 | 151 | const x2 = (arg1[2]); |
| @@ -485,7 +485,7 @@ pub fn mul(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme | ||
| 485 | 485 | /// 0 ≤ eval out1 < m |
| 486 | 486 | /// |
| 487 | 487 | pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldElement) void { |
| 488 | @setRuntimeSafety(mode == .Debug); | |
| 488 | @setRuntimeSafety(mode == .debug); | |
| 489 | 489 | |
| 490 | 490 | const x1 = (arg1[1]); |
| 491 | 491 | const x2 = (arg1[2]); |
| @@ -826,7 +826,7 @@ pub fn square(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEl | ||
| 826 | 826 | /// 0 ≤ eval out1 < m |
| 827 | 827 | /// |
| 828 | 828 | pub fn add(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldElement, arg2: MontgomeryDomainFieldElement) void { |
| 829 | @setRuntimeSafety(mode == .Debug); | |
| 829 | @setRuntimeSafety(mode == .debug); | |
| 830 | 830 | |
| 831 | 831 | var x1: u64 = undefined; |
| 832 | 832 | var x2: u1 = undefined; |
| @@ -879,7 +879,7 @@ pub fn add(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme | ||
| 879 | 879 | /// 0 ≤ eval out1 < m |
| 880 | 880 | /// |
| 881 | 881 | pub fn sub(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldElement, arg2: MontgomeryDomainFieldElement) void { |
| 882 | @setRuntimeSafety(mode == .Debug); | |
| 882 | @setRuntimeSafety(mode == .debug); | |
| 883 | 883 | |
| 884 | 884 | var x1: u64 = undefined; |
| 885 | 885 | var x2: u1 = undefined; |
| @@ -922,7 +922,7 @@ pub fn sub(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme | ||
| 922 | 922 | /// 0 ≤ eval out1 < m |
| 923 | 923 | /// |
| 924 | 924 | pub fn opp(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldElement) void { |
| 925 | @setRuntimeSafety(mode == .Debug); | |
| 925 | @setRuntimeSafety(mode == .debug); | |
| 926 | 926 | |
| 927 | 927 | var x1: u64 = undefined; |
| 928 | 928 | var x2: u1 = undefined; |
| @@ -965,7 +965,7 @@ pub fn opp(out1: *MontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldEleme | ||
| 965 | 965 | /// 0 ≤ eval out1 < m |
| 966 | 966 | /// |
| 967 | 967 | pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDomainFieldElement) void { |
| 968 | @setRuntimeSafety(mode == .Debug); | |
| 968 | @setRuntimeSafety(mode == .debug); | |
| 969 | 969 | |
| 970 | 970 | const x1 = (arg1[0]); |
| 971 | 971 | var x2: u64 = undefined; |
| @@ -1178,7 +1178,7 @@ pub fn fromMontgomery(out1: *NonMontgomeryDomainFieldElement, arg1: MontgomeryDo | ||
| 1178 | 1178 | /// 0 ≤ eval out1 < m |
| 1179 | 1179 | /// |
| 1180 | 1180 | pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDomainFieldElement) void { |
| 1181 | @setRuntimeSafety(mode == .Debug); | |
| 1181 | @setRuntimeSafety(mode == .debug); | |
| 1182 | 1182 | |
| 1183 | 1183 | const x1 = (arg1[1]); |
| 1184 | 1184 | const x2 = (arg1[2]); |
| @@ -1501,7 +1501,7 @@ pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDoma | ||
| 1501 | 1501 | /// Output Bounds: |
| 1502 | 1502 | /// out1: [0x0 ~> 0xffffffffffffffff] |
| 1503 | 1503 | pub fn nonzero(out1: *u64, arg1: [4]u64) void { |
| 1504 | @setRuntimeSafety(mode == .Debug); | |
| 1504 | @setRuntimeSafety(mode == .debug); | |
| 1505 | 1505 | |
| 1506 | 1506 | const x1 = ((arg1[0]) | ((arg1[1]) | ((arg1[2]) | (arg1[3])))); |
| 1507 | 1507 | out1.* = x1; |
| @@ -1519,7 +1519,7 @@ pub fn nonzero(out1: *u64, arg1: [4]u64) void { | ||
| 1519 | 1519 | /// Output Bounds: |
| 1520 | 1520 | /// out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] |
| 1521 | 1521 | pub fn selectznz(out1: *[4]u64, arg1: u1, arg2: [4]u64, arg3: [4]u64) void { |
| 1522 | @setRuntimeSafety(mode == .Debug); | |
| 1522 | @setRuntimeSafety(mode == .debug); | |
| 1523 | 1523 | |
| 1524 | 1524 | var x1: u64 = undefined; |
| 1525 | 1525 | cmovznzU64(&x1, arg1, (arg2[0]), (arg3[0])); |
| @@ -1547,7 +1547,7 @@ pub fn selectznz(out1: *[4]u64, arg1: u1, arg2: [4]u64, arg3: [4]u64) void { | ||
| 1547 | 1547 | /// Output Bounds: |
| 1548 | 1548 | /// out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] |
| 1549 | 1549 | pub fn toBytes(out1: *[32]u8, arg1: [4]u64) void { |
| 1550 | @setRuntimeSafety(mode == .Debug); | |
| 1550 | @setRuntimeSafety(mode == .debug); | |
| 1551 | 1551 | |
| 1552 | 1552 | const x1 = (arg1[3]); |
| 1553 | 1553 | const x2 = (arg1[2]); |
| @@ -1656,7 +1656,7 @@ pub fn toBytes(out1: *[32]u8, arg1: [4]u64) void { | ||
| 1656 | 1656 | /// Output Bounds: |
| 1657 | 1657 | /// out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] |
| 1658 | 1658 | pub fn fromBytes(out1: *[4]u64, arg1: [32]u8) void { |
| 1659 | @setRuntimeSafety(mode == .Debug); | |
| 1659 | @setRuntimeSafety(mode == .debug); | |
| 1660 | 1660 | |
| 1661 | 1661 | const x1 = (@as(u64, (arg1[31])) << 56); |
| 1662 | 1662 | const x2 = (@as(u64, (arg1[30])) << 48); |
| @@ -1731,7 +1731,7 @@ pub fn fromBytes(out1: *[4]u64, arg1: [32]u8) void { | ||
| 1731 | 1731 | /// 0 ≤ eval out1 < m |
| 1732 | 1732 | /// |
| 1733 | 1733 | pub fn setOne(out1: *MontgomeryDomainFieldElement) void { |
| 1734 | @setRuntimeSafety(mode == .Debug); | |
| 1734 | @setRuntimeSafety(mode == .debug); | |
| 1735 | 1735 | |
| 1736 | 1736 | out1[0] = 0xc46353d039cdaaf; |
| 1737 | 1737 | out1[1] = 0x4319055258e8617b; |
| @@ -1748,7 +1748,7 @@ pub fn setOne(out1: *MontgomeryDomainFieldElement) void { | ||
| 1748 | 1748 | /// Output Bounds: |
| 1749 | 1749 | /// out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] |
| 1750 | 1750 | pub fn msat(out1: *[5]u64) void { |
| 1751 | @setRuntimeSafety(mode == .Debug); | |
| 1751 | @setRuntimeSafety(mode == .debug); | |
| 1752 | 1752 | |
| 1753 | 1753 | out1[0] = 0xf3b9cac2fc632551; |
| 1754 | 1754 | out1[1] = 0xbce6faada7179e84; |
| @@ -1786,7 +1786,7 @@ pub fn msat(out1: *[5]u64) void { | ||
| 1786 | 1786 | /// out4: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] |
| 1787 | 1787 | /// out5: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] |
| 1788 | 1788 | pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[4]u64, arg1: u64, arg2: [5]u64, arg3: [5]u64, arg4: [4]u64, arg5: [4]u64) void { |
| 1789 | @setRuntimeSafety(mode == .Debug); | |
| 1789 | @setRuntimeSafety(mode == .debug); | |
| 1790 | 1790 | |
| 1791 | 1791 | var x1: u64 = undefined; |
| 1792 | 1792 | var x2: u1 = undefined; |
| @@ -2020,7 +2020,7 @@ pub fn divstep(out1: *u64, out2: *[5]u64, out3: *[5]u64, out4: *[4]u64, out5: *[ | ||
| 2020 | 2020 | /// Output Bounds: |
| 2021 | 2021 | /// out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] |
| 2022 | 2022 | pub fn divstepPrecomp(out1: *[4]u64) void { |
| 2023 | @setRuntimeSafety(mode == .Debug); | |
| 2023 | @setRuntimeSafety(mode == .debug); | |
| 2024 | 2024 | |
| 2025 | 2025 | out1[0] = 0xd739262fb7fcfbb5; |
| 2026 | 2026 | out1[1] = 0x8ac6f75d20074414; |