diff --git a/docs/analysis/ca3-v4-uniform.md b/docs/analysis/ca3-v4-uniform.md new file mode 100644 index 000000000..db1689082 --- /dev/null +++ b/docs/analysis/ca3-v4-uniform.md @@ -0,0 +1,62 @@ +# AP-F8-1 under the windows-union model: the hot set is the load source, not the window (7 October 2026) + +Branch `ca3-v4-uniform` from master b92a5fd4, worker "v4-hash", on the attack-pass finding AP-F8-1 (`docs/analysis/attack-pass/f8-uniform.md`, branch attack-pass; logs `/srv/builds/igneum-wt-attack/target-attack-f8/log/`). Main's rulings bound this file: no generator change to class v4 on the live devnet; the analysis and its harness only. Every GPU-free number here is arithmetic on F8's logged counts or a run of the static census tool `tools/ca3-v4-uniform/` on igneum-build-1 (built through `tools/build-remote.sh`, rule R1); the chip figures are the terms of `docs/analysis/chip-model-v3.md` and are approximate. + +## 1. The null F8's numbers must be read against + +Layer 8 (`docs/plans/era-layout.md` 1.4, spec 01 1.13.1 as proposed) gives every load site a window draw `k_off = below(3)`: the site reads the whole dataset, an aligned half or an aligned quarter, at a 2^26-word floor. A quarter-window site concentrates its reads 4x on its quarter and a half-window site 2x on its half, by design; the union of the 16 windows is the whole dataset. For p1 (the devnet epoch-0 program, id c120d7963abdcd96) the 16 draws `0:2:1 1:1:1 2:1:1 3:1:1 4:0:0 5:1:1 6:0:0 7:2:2 8:1:1 9:1:1 10:2:0 11:0:0 12:0:0 13:0:0 14:2:0 15:1:1` (site:k:offset) give an expected read density by quarter of 3.25 : 2.25 : 5.75 : 4.75 sixteenths of the flat mean, which at 2^26 nonces (512 reads per item flat) is 416, 288, 736 and 608 reads per item. The top-f share of a Poisson mixture with those means (`uniform-model.txt`, exact Poisson for p1, a normal approximation for the census): + +| Share of all reads on the top f of items, 2^26 nonces | Flat Poisson (F8's control) | Windows-union model, p1 | F8 measured, p1 | Beyond the window model | +|---|---|---|---|---| +| f = 0.1 percent | 0.115 | 0.160 | 0.520 | +0.36 | +| f = 0.5 percent | 0.565 | 0.784 | 1.515 | +0.73 | +| f = 1 percent | 1.120 | 1.553 | 2.495 | +0.94 | + +So the window model moves the null from 0.115 to 0.160 percent at f = 0.1 percent (1.39x, not F8's 4.05x) and from 1.12 to 1.55 at f = 1 percent; it explains the 64-item-bucket sigma of p2 that F8 already attributed to the window layer, and it explains every per-site attribution row of p1 except one: sites with a half window over the hot region land 0.20 percent of their reads in the top 0.1 percent (sites 1, 2, 3, 5, 9 at 0.201), quarter-window sites 0 or about 0.4 (sites 0, 10, 14 at 0.000, site 7 at 0.241 straddling), whole-dataset sites 0.10. Site 15 lands 6.374 percent. The excess over the model (+0.36 at f = 0.1 percent) is one site. + +## 2. The 153x item is the load source, and the model predicts it to the item + +p1's site 15 is the load at instruction 63 (`load dst=3 src=6`, window half 1). Its source r6 was last written at instruction 61: `or dst=6 src=4` (`r6 |= r4`, `verify.rs` Op::Or), after a fresh dataset load into r6 at 47. An OR of two near-uniform registers sets each bit with probability 3/4, so the source takes the all-ones value with probability (3/4)^32 = 1.0e-4 per read and the values of popcount 31, 30, ... with 32, 496, ... times (3/4)^k (1/4)^(32 - k). The era map `y = rotl(x * 0x9ad30d99, 29)`, the half window and the interleave split (`memhard::Layout::split`, positions 0, 2, 12, 13) send x = 0xffffffff to item 0xca5b92: F8's hottest item exactly. F8's next seven items (0x8a5b92, 0xaa5b92, 0xba5b92, 0x825b92, 0xe65b92, 0x985b92, 0xbcc392) are exactly the seven one-zero-bit sources whose zero bit survives the window mask (bits 29, 28, 27, 26, 25, 24 and 15): 7 of 7. The measured count fixes the bit bias: 78,479 reads of 2^26 x 8 site-15 reads is p^32 at p = 0.7585 (r4 is slightly biased itself), and at that p the popcount model predicts 77,348 all-ones reads and 4.86 percent of site 15's reads into the top 0.1 percent of items (measured 6.37; 3.92 at p = 3/4). Per hash that is 4.86 / 16 = 0.30 percent of all reads, and 0.160 + 0.30 = 0.46 against F8's 0.520 at f = 0.1 percent; at f = 1 percent 14.5 / 16 = 0.90, and 1.55 + 0.90 = 2.46 against 2.495. + +The same arithmetic for the other lossy writers (`uniform-model.txt`): a `mul` last writer zeroes the low bits by the operands' trailing zeros, so 1.07 percent of the site's reads land on the 0.1 percent of values with 10 or more trailing zeros (p2's `mul`-sourced sites 0 and 14 measured 0.971 and 0.966 percent); a `mulhi` last writer is dense near zero, 0.79 percent on the lowest 0.1 percent of values. An `or` whose operand was itself last written by `or` compounds the bias (3/4 to 7/8 to 15/16): p3's site 15 (`or` at 30, the load at 62) puts 72.4 percent of its reads into the top 0.1 percent, 4.6 percent of all reads on 16,777 items. + +This is a fault class, not the window model: the acceptance rule's part (a) (`accept.rs` check_stale_loads) takes any write as a fresh source, and part (c)'s saturation count looks at the 16,384 final register values, not at a load's source mid-program, so an `or`, `mul` or `mulhi` as a load's last writer passes. The per-hash distinct-address check still holds (p1 127.999 items per hash; p3 127.97: a saturated site repeats its item inside a hash), and the acceptance rule's floor of 120 distinct of 128 admits exactly one site repeating its item in all 8 iterations and no more. + +## 3. How common it is: the static census (`tools/ca3-v4-uniform`, 1,024 chain-shaped class v4 programs plus F8's p1 to p3) + +For every load site, the op that last wrote its source in execution order (base instructions before it, else the shadow block of the previous iteration, else the base instructions after it): injecting (add, sub, xor, mad, shfl, load), bijective (rotl, rotr) or lossy (or, mul, mulhi). Run on igneum-build-1 (`uniform-census.txt`, binary sha256 ce9f83fe... then the narrowed chain rule). + +| Census over 1,024 programs | Count | Share | +|---|---|---| +| Load sites by last writer: injecting / bijective / lossy | 11,368 / 2,121 / 2,943 of 16,432 | 69 / 13 / 18 percent; 2.87 lossy sites per program | +| Programs with at least one lossy-sourced load | 992 | 96.6 percent | +| ... with an `or`-sourced load (p1's class, 0.30 percent of all reads per site) | 498 | 48.5 percent | +| ... with an `or`-of-`or` chain (p3's class, about 4.5 percent of all reads per site) | 50 | 4.9 percent | +| ... with a `mul`-sourced load (0.067 percent per site) / a `mulhi`-sourced load (0.049) | 751 / 661 | 73.1 / 64.4 percent | +| Predicted S_0.1 percent (window model plus the lossy sites): median / 90th / 99th / max | 0.45 / 0.88 / 5.29 / 9.82 percent | against the window model's 0.115 to 0.251 | +| p1 / p2 / p3 predicted against F8 measured | 0.579 / 0.323 / 4.72 | 0.520 / 0.272 / 4.60 | + +F8's proposed gate (the top 0.1 percent within 1.2x of the window-model control on every one of 64 seeds) fails 96.6 percent of today's programs, because any lossy-sourced site alone exceeds it (0.16 + 0.05 at the least); it is a generator change in a gate's clothing. A 2x bound fails 69.7 percent, 3x 48.9 percent; a bound of S_0.1 percent at or under 1 percent of all reads fails 6.9 percent (the `or` chains and the multi-`or` programs). The static rule "no load whose source's last writer is `or`" fails 48.4 percent; "no lossy last writer" 96.6 percent. + +## 4. What the skew is worth to a chip (chip-model-v3.md terms, approximate) + +A hot-set cache of the top 0.1 percent of items is 16,777 items x 64 B = 1.07 MB of SRAM, 0.53 mm^2 and $0.25 at 0.49 mm^2 and $0.23 per MB. It serves 0.52 percent of p1's reads (0.16 of them the window model's), 4.6 percent of p3's. The hash is latency-bound on its dependent reads, so a read served on die is time saved: a chip gains at most 1.005x on p1 and 1.048x on p3 from the cache. The ceiling under the live rule: part (c)'s 120-of-128 floor admits one site repeating its item in all 8 iterations and no more (two saturated sites fail it), so at most 8 of 128 reads, 6.25 percent, can sit on a constant item, and a chip's edge from this whole class is at most 1 / (1 - 0.0625) = 1.067x, in 64 bytes of SRAM, on the hours whose program carries such a site. The public claim rests on 2x margins (chip-model-v3.md); 1.067x does not move it, and the union of the windows is still the whole dataset every hour, so no window-level cache exists. What moves: per tier nothing in rate or watts (the honest card reads the hot item from L2 as the chip would), and the 5 percent rule of 2.0 is untouched. + +## 5. The two options for the flip, priced (main's ruling 3; nothing ships on this without the project lead's word) + +| Option | What changes | Cost | Risk | +|---|---|---|---| +| A. A class amendment in 0.3.19 before the flip: the generator draws a load's source from the registers whose last writer injects (or rule (a) tightened to the same), class v4 re-pinned | a new program stream: new vectors, the seven gate packs re-exported, the six gates again (the hash side G1 to G3 and the verifier re-run here in about an hour of Mac and PC 2 time; G4 to G6 the node lane), every node before the flip by the one-box-at-a-time fleet rule | hours of gate time, a fleet rollout, the 0.3.19 ship on the line | a node that misses the build splits the chain at the flip; the fix itself is small (one draw rule) | +| B. Hold v4 at the floor as it is; the source rule in class v5 | nothing on the devnet; the attack-pass record carries the window null and the bound | a hot set on 48 percent of hours worth up to 1.005x to a chip, on 5 percent of hours up to 1.05x, 1.067x at the rule's ceiling, no chain risk | the public line must state the bound, not "uniform" | + +The number that decides it: 1.067x at the ceiling against the 2x margin of the chip claim. Recommendation: B, with the v5 item below, unless the project lead wants the tail tight now. + +## 6. The acceptance bound for the next class (main's ruling 4) + +Definition: for a program, H = W_0.1(windows) + sum over load sites of h(last writer of the source), with W from the Poisson mixture of the 16 window draws (0.115 to 0.251 percent at 2^26 nonces) and h = 0.30 percent for `or`, 4.5 for an `or` chain, 0.067 for `mul`, 0.049 for `mulhi`, 0 for an injecting or bijective writer (the figures of section 2 at the measured bias). The bound: H at or under 1.2 x W, which is the static rule "every load's source was last written by an injecting op or a rotate" (any lossy writer breaks 1.2x). Its cost as a rejection rule on today's stream: 96.6 percent of candidates, about 30 attempts per seed on average. The cheaper form is a generator draw, not a rejection: draw a load's source from the registers whose last writer injects (today's rule draws from every written register), which costs no attempts and leaves rule (a) as it is. Either way the 64-seed census of F8's phase E is the gate, with the dynamic check extended to count saturated load sources over the 64 units beside the final values. + +## 7. What is unverified + +- The per-site h figures are the popcount and trailing-zeros models at the biases F8 measured on p1 and p2; p3's chain figure is F8's measurement, not a model. F8's phase E (64 seeds, dynamic) is the test of the whole table. +- The window model's top-f shares for the census use a normal approximation per quarter (p1's exact Poisson 0.160 against 0.159). +- No GPU run and no timing here; every number is a count or arithmetic. diff --git a/docs/fud-ledger.md b/docs/fud-ledger.md index 89a28b695..1a8125451 100644 --- a/docs/fud-ledger.md +++ b/docs/fud-ledger.md @@ -2419,3 +2419,18 @@ Same rule as the counts above. 167 entries. The bucket "Decided or closed by rule" counts each entry once: M8, M11 and P16 move there from Answered, so Answered is 28 less those three plus M16 and E17, as the table states; the sum of the rows is 167 with M8, M11, P16 and F3, F17 counted in Decided only. + +## Round 5 entry (7 October 2026, afternoon): the class v4 load-source amendment + +### AP-F8-1. A load whose source was last written by `or`, `mul` or `mulhi` makes a cross-hash hot set +"The item histogram of class v4 over 2^26 nonces is not uniform: the top 0.1 percent of items take 0.520 percent of reads against 0.115 for a uniform control (4.05x), one item takes 78,479 reads (153x the mean), and site 15 feeds 6.37 percent of its reads into that top 0.1 percent in every iteration." (attack-pass row F8, `docs/analysis/attack-pass/f8-uniform.md`, 7 October 2026) + +Status: Fixed on a branch, pending the 0.3.20 node ship (7 October 2026, afternoon; the project lead's word 15:2x UK: option A, "do this but limit the testing, get it pushed"): `ca3-v4-amend` a0aaca92 (the generator and the packs) and 1748fd1d (the PC 2 playbook), on origin/master 5c08c6e0 plus `ca3-v4-uniform` 095f84a7 (the analysis). The node side rides `release-0.3.20-node`; the stamp is agreed with the node lane (a283f5f0d364ceef0). Was: a finding (7 October 2026, morning). + +Answer: Correct as a fault, wrong as a null. The window layer (spec 01 1.13.1 as proposed, `docs/plans/era-layout.md` 1.4) moves the uniform null from 0.115 to 0.160 percent at the top 0.1 percent (1.39x, not 4.05x) and explains every per-site row of F8's attribution except site 15. Site 15's source r6 was last written by `or r6, r4` (instruction 61, the load at 63), a non-injective op whose output bits are 1 with probability 3/4, so the all-ones source recurs with probability (3/4)^32 per read; the era map sends it to item 0xca5b92, F8's hottest item exactly, and F8's next seven items are exactly the seven one-zero-bit sources whose zero survives the window mask. The popcount model at the measured bias (p = 0.7585) predicts 77,348 all-ones reads against 78,479, and the program's top-0.1-percent share at 0.58 against 0.52. The acceptance rule's part (a) takes any write as a fresh source and part (c) counts saturation on final register values only, so the class of fault passes it: of 1,024 chain-shaped class v4 programs 96.6 percent carry a load whose source's last writer is `or`, `mul` or `mulhi`, 48.5 percent an `or`-sourced one (0.30 percent of all reads per site), 4.9 percent an `or`-of-`or` chain (p3's class: 72 percent of that site's reads, 4.6 percent of all reads, on 0.1 percent of items). The ceiling under rule (c)'s 120-of-128 floor is one site repeating its item in all 8 iterations, 6.25 percent of reads, a chip edge of at most 1.067x in 64 bytes of SRAM; the public claim's 2x margin stands, and the public line says "bounded", not "uniform" (`docs/analysis/ca3-v4-uniform.md` sections 1 to 4). + +The amendment (a0aaca92): in class v4's chain draw a load's source is drawn only from registers whose last writer injects (add, sub, xor, mad, shfl, load) or is a rotate (rotl, rotr), never one last written by `or`, `mul` or `mulhi` (`generator.rs` candidate_from_words_class, keyed on the era-composed V4_CLASS; no attempts lost, rule (a) unchanged; v2, v3 and the generator-2 ladder packs byte-identical). Split protection (the node lane's form): generator stays 4 and a generator-4 program id appends `"sub/" || PROGRAM_SUBVERSION_V4 (= 1) as little-endian u16` inside `program_id()`, so a binary from before the rule and one after it never share a program id for one seed and the node's id check catches a split; packs carry `IGNEUM_PROGRAM_SUBVERSION 1` and `"sub_version": 1`, and packcheck refuses a generator-4 pack whose sub-version is absent or other. The node side (release-0.3.20-node, built to a0aaca92): kaspa-pow's test pins 1a4230699a6b9c60 must-equal and c120d7963abdcd96 must-differ through `generator::program_id` with the suffix, and the amended class signals object byte 5 in the header (CLASS_SIGNAL_V4 = 5; the tally counts byte 5 and above), so a block of the 6 October stream (byte 4) never counts towards the flip and a byte-4 node forks alone at it; object 6 is class v5's. The seven gate packs re-exported (devnet epoch 0 and eras 0 to 5): id 1a4230699a6b9c60 (was c120d7963abdcd96, pinned as the must-differ vector in `tests/recheck.rs`), fingerprints Metal = Apple OpenCL 867dbc45cfb36b4d, 2146ecacc8c75a8e, fe52602393f6d3d4, 3b206471a13912b4, c3f03c4a5d7333aa, f1dfd7209f15bb97, 8c194da64fadf31d; the v3 control 73bcbfe8ccf988f1 / 90f794dd556f7a3b untouched; the zip of the eight packs sha256 889ec99976d2728b4b5035bfa476032e5b6a13b928968fc45236d5f25084aa39. + +Evidence: `docs/analysis/ca3-v4-uniform.md` (the model, the census `tools/ca3-v4-uniform`, the chip pricing); F8's logs under `/srv/builds/igneum-wt-attack/target-attack-f8/log/`; the tests limited by the project lead's word to what prevents a split and proves the fix: the vectors (the seven packs' ids and fingerprints above), the `igneum-pow` crate suite on igneum-build-1 (SUITE-LINE), the pairing of the fork's kaspa-pow with this igneum-pow on igneum-build-1 (PAIRING-LINE), and one G1 run on the RTX 5090 (PC 2 job run-ca3-v4-amend-g1-pc2-20261007, 09:41:07 to 09:41:28Z, exit 0, the installed 0.3.17 worker sha256 14b6637e..., NVRTC, beside the app's miner, the prover on, the lock held 09:40:22 to 09:41:51Z): self-test PASS on all eight packs and every 2^24 fingerprint equal to the Mac's (the seven above and the control 90f794dd556f7a3b), NVRTC 188 to 332 ms per pack, the 1 GiB build 38 to 49 ms. + +Owed (recorded, not run, by the project lead's word): G2 (the CPU verifier on 1,024 hashes per card) on the amended stream; G3 (the Metal fuzz, edge, stats and determinism runs) on the amended stream; the hash-rate ladder re-measure on the M5 Max and the RTX 5090 (the amendment changes the base program's source draws, not the op mix or the load count, so the latency-bound rows of `docs/analysis/latency-shadow-2026-10-06.md` are expected to hold within their spread; unmeasured); AMD (the RX 9070 XT, PC 1); the 2019-class verifier core (O-1.14); F8's phase E (the 64-seed dynamic census) on the amended stream, which is the attack-pass lane's and the test of the per-op table. The row reads FIXED-AND-PASSED only after phase E passes against the amended class. diff --git a/igneum-pow/src/emit.rs b/igneum-pow/src/emit.rs index 1ff1af2e8..90105ba01 100644 --- a/igneum-pow/src/emit.rs +++ b/igneum-pow/src/emit.rs @@ -9,7 +9,7 @@ //! One deliberate difference from the Swift: `program_json` writes the cache line mask inside the `"item"` string //! as a bare `0x003fffff`. The Swift writes it quoted (`jhex`), which is not valid JSON. -use crate::generator::{EraParams, Instr, Op, Program, ProgramClass, GENERATOR_VERSION, INSTR_COUNT, ITERATIONS, LOAD_SLOTS}; +use crate::generator::{EraParams, Instr, Op, Program, ProgramClass, GENERATOR_VERSION, INSTR_COUNT, ITERATIONS, LOAD_SLOTS, PROGRAM_SUBVERSION_V4}; use crate::derive::{instr_line as derive_instr_line, instr_text as derive_instr_text, DERIVE_PROGRAMS}; use crate::memhard::{ hot_key, hot_segments, hot_words, Layout, MixParams, Shape, CACHE_LINES_PER_SEGMENT, CACHE_SEGMENT_LOG2_LINES, CACHE_TAG, @@ -177,6 +177,10 @@ fn program_class_header_lines(p: &Program) -> String { s.push_str("// runs another class refuses this pack, and a job line names the class it wants (class=v3 era=).\n"); } s.push_str(&format!("#define IGNEUM_PROGRAM_CLASS {}\n", jstr(p.program_class().name()))); + if p.program_class() == ProgramClass::V4 { + // the class v4 stream sub-version (AP-F8-1 amendment): a worker ignores it, packcheck requires it + s.push_str(&format!("#define IGNEUM_PROGRAM_SUBVERSION {}\n", PROGRAM_SUBVERSION_V4)); + } if let Some(era) = &p.era_bytes { s.push_str(&format!("#define IGNEUM_ERA_SEED_HEX {}\n", jstr(&hex_bytes(era)))); } @@ -1923,6 +1927,9 @@ pub fn program_json(p: &Program, day: &str, ds: &DatasetSource) -> String { s.push_str(&format!(" \"loads_per_hash\": {},\n", p.loads_per_hash())); if p.program_class() != ProgramClass::V2 { s.push_str(&format!(" \"program_class\": {},\n", jstr(p.program_class().name()))); + if p.program_class() == ProgramClass::V4 { + s.push_str(&format!(" \"sub_version\": {},\n", PROGRAM_SUBVERSION_V4)); + } if let Some(era) = &p.era_bytes { s.push_str(&format!(" \"era_seed_bytes\": {},\n", jstr(&hex_bytes(era)))); } diff --git a/igneum-pow/src/generator.rs b/igneum-pow/src/generator.rs index f256f9b84..85bd50e83 100644 --- a/igneum-pow/src/generator.rs +++ b/igneum-pow/src/generator.rs @@ -1142,16 +1142,29 @@ impl Program { } pub fn program_id(generator: u32, seed: &[u32; 8], attempt: u32) -> u64 { - let mut b = Vec::with_capacity(PROGRAM_ID_TAG.len() + 4 + 32 + 4); + let mut b = Vec::with_capacity(PROGRAM_ID_TAG.len() + 4 + 32 + 4 + 6); b.extend_from_slice(PROGRAM_ID_TAG); b.extend_from_slice(&generator.to_le_bytes()); for w in seed { b.extend_from_slice(&w.to_le_bytes()); } b.extend_from_slice(&attempt.to_le_bytes()); + if generator == GENERATOR_VERSION_V4 { + // The class v4 sub-version (AP-F8-1 amendment, 7 October 2026): `"sub/" || sub_version as little-endian u16` + // appended for generator 4 only, so a binary from before the load-source rule (sub-version 0, no suffix) and + // one after it never share a program id for one seed; the node's id check then catches a split. v2 and v3 + // ids are byte-identical. The node reads the sub-version from [`PROGRAM_SUBVERSION_V4`]; packs carry it as + // IGNEUM_PROGRAM_SUBVERSION and program.json "sub_version". + b.extend_from_slice(b"sub/"); + b.extend_from_slice(&PROGRAM_SUBVERSION_V4.to_le_bytes()); + } fnv1a64(&b) } +/// The sub-version of class v4's program stream, in every generator-4 program id and pack (AP-F8-1: 1 = the +/// load-source rule of `candidate_from_words_class`; 0 was the stream of 6 October 2026, never stamped). +pub const PROGRAM_SUBVERSION_V4: u16 = 1; + /// Domain tag of the program id of a read-width class (never collides with [`PROGRAM_ID_TAG`]). pub const PROGRAM_ID_TAG_RW: &[u8] = b"igneum-program-rw/"; @@ -1294,7 +1307,20 @@ pub fn candidate_from_words_class( is_hot[slot as usize] = true; } // (2) The instructions. `fresh[r]`: r was written by an earlier instruction and no load has read it since. + // Class v4's chain draw (AP-F8-1, 7 October 2026, `docs/analysis/ca3-v4-uniform.md`): a load's source is drawn + // only from registers whose last writer injects or is a rotate (`entropy_kept[r]`), never from one last written + // by `or`, `mul` or `mulhi` (an `or`-written source is all-ones with probability (3/4)^32 per read and made the + // 153x item of the finding). Keyed on the era-composed V4_CLASS so the generator-2 ladder packs keep their stream; + // v2 and v3 take no part. The draw order and the stream are otherwise the same, draw for draw. + // Keyed on the class with the shadow's pass count set aside (the latency ladder draws the same base program at + // every rung: `of_load_class` compares the pass count too and answered None at every rung but 27, found by the + // fork's ladder test, 7 October 2026 10:06Z), the same comparison the fork's "v4 is v3 plus the shadow" test makes. + let source_rule_v4 = class.era.is_some() + && matches!(class.shadow, Some(ShadowClass { instrs: V4_SHADOW_INSTRS, .. })) + // class v5 (docs/design/class-v5-stored-state.md) draws under the same rule: its state flag is set aside here + && LoadClass { era: None, shadow: None, state: false, ..class } == LoadClass { shadow: None, ..V4_CLASS }; let mut fresh = [false; 8]; + let mut entropy_kept = [false; 8]; let mut instrs = Vec::with_capacity(INSTR_COUNT); for k in 0..INSTR_COUNT { let mut roll = rng.below(75); @@ -1320,7 +1346,7 @@ pub fn candidate_from_words_class( let mut eligible = [0u64; 8]; let mut n = 0usize; for r in 0..8u64 { - if r != dst && fresh[r as usize] { + if r != dst && fresh[r as usize] && (!source_rule_v4 || entropy_kept[r as usize]) { eligible[n] = r; n += 1; } @@ -1368,6 +1394,7 @@ pub fn candidate_from_words_class( fresh[src as usize] = false; } fresh[dst as usize] = true; + entropy_kept[dst as usize] = op.injects() || matches!(op, Op::Rotl | Op::Rotr); instrs.push(Instr { op, dst: dst as u8, src: src as u8, src2: b as u8, imm, imm2, rot, bit: bit as u8, mask, width, win, off }); } // (3) The latency-shadow block (Counter ASIC 3.0 item 8): drawn after the base program from the same stream, so @@ -1859,8 +1886,9 @@ mod tests { } /// Counter ASIC 3.0 (6 October 2026): class v4 is class v3 with the latency-shadow block `sh256x27`, drawn after - /// the base program, so a v4 program's base instructions, attempt and era draw are the v3 program's of the same - /// seed and era, draw for draw; its generator is 4, its id `program_id(4, seed, attempt)`, its era recorded; + /// the base program; since the AP-F8-1 amendment (7 October 2026) its base program draws a load's source only + /// from registers whose last writer keeps entropy, so it is its own stream over class v3's load slots and era + /// draw; its generator is 4, its id `program_id(4, seed, attempt)` with the sub-version suffix, its era recorded; /// v2 and v3 are untouched. #[test] fn program_class_v4_is_class_v3_with_the_shadow_block() { @@ -1877,9 +1905,24 @@ mod tests { assert_eq!(v4.generator, GENERATOR_VERSION_V4); assert_eq!(v4.program_class(), ProgramClass::V4); assert_eq!(v4.era_bytes.as_deref(), Some(&era[..])); - assert_eq!(v4.instrs, v3.instrs, "the base program is class v3's, draw for draw"); - assert_eq!(v4.attempt, v3.attempt); + // The AP-F8-1 amendment (7 October 2026): class v4's chain draw takes a load's source only from registers + // whose last writer injects or rotates, so its base program is its own stream (the 6 October stream, equal + // to class v3's draw for draw, is sub-version 0 and never stamped); the load slots, the op draws and the era + // draw are still class v3's, and every load site obeys the rule assert_eq!(v4.seed, v3.seed); + assert_eq!( + v4.instrs.iter().map(|i| i.op.is_load()).collect::>(), + v3.instrs.iter().map(|i| i.op.is_load()).collect::>(), + "the load slots are class v3's" + ); + let mut kept = [false; 8]; + for (k, i) in v4.instrs.iter().enumerate() { + if i.op.is_load() { + assert!(kept[i.src as usize], "load #{k} reads r{} whose last writer does not keep entropy", i.src); + } + kept[i.dst as usize] = i.op.injects() || matches!(i.op, Op::Rotl | Op::Rotr); + } + assert_ne!(v4.instrs, v3.instrs, "the amended v4 base program is not class v3's (a lossy-sourced load was redrawn)"); assert!(v3.shadow.is_empty() && !v3.has_shadow()); assert_eq!(v4.shadow.len(), 256); assert_eq!(v4.shadow_reps(), 27); diff --git a/igneum-pow/src/lib.rs b/igneum-pow/src/lib.rs index cf0fd0eab..690ddb0bc 100644 --- a/igneum-pow/src/lib.rs +++ b/igneum-pow/src/lib.rs @@ -36,7 +36,7 @@ pub mod verify; pub use bind::{block_init_words, day_bytes, pow256_from_lane, target64_from_le256}; pub use accept::{check as accept_program, AcceptReport, Reject}; -pub use generator::{generate, generate_from_seed_bytes, generate_from_seed_bytes_program_class, generate_from_seed_bytes_program_class_shadow, v4_class_at, v4_counted_ops, v4_rung_reps, v5_class_at, v5_rung_reps, Instr, LoadClass, Op, Program, ProgramClass, GENERATOR_VERSION, GENERATOR_VERSION_V3, GENERATOR_VERSION_V4, GENERATOR_VERSION_V5, V3_CLASS, V4_CLASS, V4_SHADOW_INSTRS, V4_SHADOW_REPS, V5_CLASS}; +pub use generator::{generate, generate_from_seed_bytes, generate_from_seed_bytes_program_class, generate_from_seed_bytes_program_class_shadow, v4_class_at, v4_counted_ops, v4_rung_reps, v5_class_at, v5_rung_reps, Instr, LoadClass, Op, Program, ProgramClass, GENERATOR_VERSION, GENERATOR_VERSION_V3, GENERATOR_VERSION_V4, GENERATOR_VERSION_V5, V3_CLASS, V4_CLASS, V4_SHADOW_INSTRS, V4_SHADOW_REPS, V5_CLASS, PROGRAM_SUBVERSION_V4}; pub use memhard::{cache_log2_words, dataset_log2_words, days_since_genesis, growth_doublings, Cache, MemhardCpu, MixParams, Shape}; pub use seed::{fnv1a64, seed_words, SplitMix64}; pub use state::{StateLeaves, StateStream}; diff --git a/igneum-pow/src/packcheck.rs b/igneum-pow/src/packcheck.rs index 6a3d4e5a7..a7cbea7f5 100644 --- a/igneum-pow/src/packcheck.rs +++ b/igneum-pow/src/packcheck.rs @@ -207,6 +207,15 @@ pub fn verify_pack_texts_chain( match (class, shadow > 0) { (ProgramClass::V4, false) => return Err(PackFault::Disagree("IGNEUM_GENERATOR 4 (class v4) without IGNEUM_SHADOW_INSTRS: not a class v4 pack".into())), (ProgramClass::V5, false) => return Err(PackFault::Disagree("IGNEUM_GENERATOR 5 (class v5) without IGNEUM_SHADOW_INSTRS: not a class v5 pack".into())), + // the class v4 stream sub-version (AP-F8-1 amendment, 7 October 2026): a generator 4 pack from before the + // load-source rule carries no IGNEUM_PROGRAM_SUBVERSION and its program id is another stream's; refused + (ProgramClass::V4, true) if define_u32(program_h, "IGNEUM_PROGRAM_SUBVERSION") != Some(u32::from(crate::generator::PROGRAM_SUBVERSION_V4)) => { + return Err(PackFault::Disagree(format!( + "IGNEUM_GENERATOR 4 (class v4) with IGNEUM_PROGRAM_SUBVERSION {}: this software runs sub-version {} (a class v4 pack from before the load-source rule, or after another amendment)", + define_u32(program_h, "IGNEUM_PROGRAM_SUBVERSION").map(|v| v.to_string()).unwrap_or_else(|| "absent".into()), + crate::generator::PROGRAM_SUBVERSION_V4 + ))) + } (ProgramClass::V3, true) => { return Err(PackFault::Disagree(format!("IGNEUM_GENERATOR 3 (class v3) with a shadow block (IGNEUM_SHADOW_INSTRS {shadow}): a class v4 program is generator 4 (export the pack as class v4)"))) } diff --git a/igneum-pow/tests/mixer.rs b/igneum-pow/tests/mixer.rs index 1a78852bb..515043ce5 100644 --- a/igneum-pow/tests/mixer.rs +++ b/igneum-pow/tests/mixer.rs @@ -92,8 +92,21 @@ fn contract(p: &Program, seed: &str, class: LoadClass, era: Option<[u8; 32]>) { assert_eq!((i.width, i.win, i.off), (1, 0, 0), "shadow #{k}: no load fields"); } let base = program_of(seed, LoadClass { shadow: None, ..class }, era); - assert_eq!(p.instrs, base.instrs, "{seed}: the base program is the class's without the shadow"); - assert_eq!(p.attempt, base.attempt); + if p.generator == GENERATOR_VERSION_V4 { + // the amended class v4 (AP-F8-1): the chain draw takes a load's source only from registers whose + // last writer injects or rotates, so its base program is its own stream, not class v3's; what holds + // is the rule itself, checked here on every load site in draw order + let mut kept = [false; 8]; + for (k, i) in p.instrs.iter().enumerate() { + if i.op.is_load() { + assert!(kept[i.src as usize], "{seed}: load #{k} reads r{} whose last writer does not keep entropy", i.src); + } + kept[i.dst as usize] = i.op.injects() || matches!(i.op, Op::Rotl | Op::Rotr); + } + } else { + assert_eq!(p.instrs, base.instrs, "{seed}: the base program is the class's without the shadow"); + assert_eq!(p.attempt, base.attempt); + } if era.is_none() || p.generator == GENERATOR_VERSION_V4 { // a generator-2 program carries the shadow in its id bytes; a class v4 program is generator 4 // (ca3-v4-node 7c22d0d), so its id differs from the generator-3 id of the same seeds diff --git a/igneum-pow/tests/recheck.rs b/igneum-pow/tests/recheck.rs index d23977b40..ad0210b15 100644 --- a/igneum-pow/tests/recheck.rs +++ b/igneum-pow/tests/recheck.rs @@ -132,6 +132,9 @@ fn program_ids_differ_between_class_v3_and_class_v4_of_one_seed() { let v3 = load("packs-ca2-mixer/mx8-devnet-epoch0", ProgramClass::V3); let v4 = load("packs-ca3-v4/v4-devnet-epoch0", ProgramClass::V4); assert_eq!(v3.reference.program.program_id(), 0x73bc_bfe8_ccf9_88f1, "the v3 control's id as pinned"); - assert_eq!(v4.reference.program.program_id(), 0xc120_d796_3abd_cd96, "the v4 candidate's id as pinned"); + // the amended class v4 (AP-F8-1, sub-version 1): the id of 6 October 2026, c120d7963abdcd96, is the must-differ + // vector (a binary from before the load-source rule), the pinned id below the must-equal one + assert_ne!(v4.reference.program.program_id(), 0xc120_d796_3abd_cd96, "the pre-amendment v4 id must differ"); + assert_eq!(v4.reference.program.program_id(), 0x1a42_3069_9a6b_9c60, "the amended v4 candidate's id as pinned"); assert_ne!(v3.reference.program.program_id(), v4.reference.program.program_id()); } diff --git a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel.cl b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel.cl index 8860b09f9..0b282ee51 100644 --- a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel.cl +++ b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel.cl @@ -215,7 +215,7 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -231,9 +231,9 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -246,26 +246,26 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel.cu b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel.cu index 74f18d5a6..370f5152b 100644 --- a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel.cu +++ b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel.cu @@ -71,7 +71,7 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = r7 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load r6 = r6 ^ __shfl_xor_sync(0xffffffffu, r5, 16); // 14 shfl r3 = r3 ^ __shfl_xor_sync(0xffffffffu, r5, 1); // 15 shfl r2 = r2 | r7; // 16 or @@ -87,9 +87,9 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -102,26 +102,26 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add r7 = r7 ^ __shfl_xor_sync(0xffffffffu, r3, 4); // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = __umulhi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add r0 = r0 ^ __shfl_xor_sync(0xffffffffu, r7, 4); // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = __umulhi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or r5 = r5 ^ __shfl_xor_sync(0xffffffffu, r4, 8); // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint32_t sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel_bound.cl b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel_bound.cl index 30d551532..f72fbe09a 100644 --- a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel_bound.cl +++ b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel_bound.cl @@ -215,7 +215,7 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -231,9 +231,9 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -246,26 +246,26 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul @@ -577,7 +577,7 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = r7 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -593,9 +593,9 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -608,26 +608,26 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel_bound.cu b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel_bound.cu index 9b0644623..81c1a0c81 100644 --- a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel_bound.cu +++ b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/kernel_bound.cu @@ -48,7 +48,7 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = r7 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load r6 = r6 ^ __shfl_xor_sync(0xffffffffu, r5, 16); // 14 shfl r3 = r3 ^ __shfl_xor_sync(0xffffffffu, r5, 1); // 15 shfl r2 = r2 | r7; // 16 or @@ -64,9 +64,9 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -79,26 +79,26 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add r7 = r7 ^ __shfl_xor_sync(0xffffffffu, r3, 4); // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = __umulhi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add r0 = r0 ^ __shfl_xor_sync(0xffffffffu, r7, 4); // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = __umulhi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or r5 = r5 ^ __shfl_xor_sync(0xffffffffu, r4, 8); // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint32_t sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program.h b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program.h index 797566612..88b5cdd3b 100644 --- a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program.h +++ b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program.h @@ -15,7 +15,7 @@ #define IGNEUM_SEED_BYTES_HEX "edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07" #define IGNEUM_GENERATOR 4 #define IGNEUM_PROGRAM_ATTEMPT 0 -#define IGNEUM_PROGRAM_ID 0xc120d7963abdcd96ull +#define IGNEUM_PROGRAM_ID 0x1a4230699a6b9c60ull #define IGNEUM_DAY_STRING "bytes:69676e65756d2d6461792ffa50000000000000" #define IGNEUM_DAY_BYTES_HEX "69676e65756d2d6461792ffa50000000000000" #define IGNEUM_DAY0 0xceed56d7u @@ -32,6 +32,7 @@ // latency-shadow block (IGNEUM_SHADOW_INSTRS x IGNEUM_SHADOW_REPS per iteration); a worker that runs another class // refuses this pack, and a job line names the class it wants (class=v4 era=). #define IGNEUM_PROGRAM_CLASS "v4" +#define IGNEUM_PROGRAM_SUBVERSION 1 #define IGNEUM_ERA_SEED_HEX "edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07" // Class v3 construction (Counter ASIC 2.0, 5 October 2026, docs/plans/mixer-x4.md): version 2 loads; the dataset item // derivation applies the mixer IGNEUM_MIXER_MULT times per round (memhard.h), and the cache follows the growth rule. diff --git a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program.json b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program.json index 0df7ca434..c069b8389 100644 --- a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program.json +++ b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program.json @@ -2,7 +2,7 @@ "format": "igneum-program-pack-3", "generator": 4, "attempt": 0, - "program_id": "0xc120d7963abdcd96", + "program_id": "0x1a4230699a6b9c60", "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", "dataset_mode": "memory-hard", "seed": "igneum-epoch/edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07/day/69676e65756d2d6461792ffa50000000000000", @@ -16,6 +16,7 @@ "instruction_count": 64, "loads_per_hash": 128, "program_class": "v4", + "sub_version": 1, "era_seed_bytes": "edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07", "load_class": "mx8-erad810f22d+sh256x27", "mixer_mult": 8, @@ -350,7 +351,7 @@ {"i": 10, "op": "load", "dst": 7, "src": 0, "src2": 2, "imm": "0xe075297c", "imm2": "0x5779c44c", "rot": 10, "bit": 22, "mask": 2, "width": 1, "win": 1, "off": 1}, {"i": 11, "op": "load", "dst": 7, "src": 1, "src2": 6, "imm": "0x65aa4311", "imm2": "0x4fe48ea9", "rot": 15, "bit": 9, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 12, "op": "mul", "dst": 5, "src": 4, "src2": 2, "imm": "0x1383d3ad", "imm2": "0xf3094b29", "rot": 8, "bit": 9, "mask": 2, "width": 1, "win": 0, "off": 0}, - {"i": 13, "op": "load", "dst": 7, "src": 6, "src2": 2, "imm": "0xed8a496f", "imm2": "0x3072c3c6", "rot": 28, "bit": 19, "mask": 8, "width": 1, "win": 1, "off": 1}, + {"i": 13, "op": "load", "dst": 7, "src": 3, "src2": 2, "imm": "0xed8a496f", "imm2": "0x3072c3c6", "rot": 28, "bit": 19, "mask": 8, "width": 1, "win": 1, "off": 1}, {"i": 14, "op": "shfl", "dst": 6, "src": 5, "src2": 0, "imm": "0x8b965b57", "imm2": "0xcfeca6c1", "rot": 12, "bit": 27, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 15, "op": "shfl", "dst": 3, "src": 5, "src2": 3, "imm": "0x877c7586", "imm2": "0xa9cb2a03", "rot": 2, "bit": 29, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 16, "op": "or", "dst": 2, "src": 7, "src2": 3, "imm": "0xb740221a", "imm2": "0x89d38d6d", "rot": 6, "bit": 31, "mask": 8, "width": 1, "win": 0, "off": 0}, @@ -366,9 +367,9 @@ {"i": 26, "op": "rotr", "dst": 7, "src": 0, "src2": 1, "imm": "0xd89ef484", "imm2": "0x20be3846", "rot": 12, "bit": 9, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 27, "op": "mad", "dst": 4, "src": 5, "src2": 7, "imm": "0xb48420ae", "imm2": "0x3d1f2485", "rot": 14, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 28, "op": "mad", "dst": 3, "src": 2, "src2": 4, "imm": "0xc5c46d76", "imm2": "0x700044b5", "rot": 22, "bit": 10, "mask": 2, "width": 1, "win": 0, "off": 0}, - {"i": 29, "op": "load", "dst": 1, "src": 4, "src2": 3, "imm": "0x0fbaf177", "imm2": "0xfff4f2ed", "rot": 20, "bit": 31, "mask": 2, "width": 1, "win": 0, "off": 0}, + {"i": 29, "op": "load", "dst": 1, "src": 6, "src2": 3, "imm": "0x0fbaf177", "imm2": "0xfff4f2ed", "rot": 20, "bit": 31, "mask": 2, "width": 1, "win": 0, "off": 0}, {"i": 30, "op": "load", "dst": 2, "src": 3, "src2": 0, "imm": "0xe90eb2e5", "imm2": "0xb0f9eb79", "rot": 27, "bit": 14, "mask": 4, "width": 1, "win": 2, "off": 2}, - {"i": 31, "op": "load", "dst": 1, "src": 5, "src2": 2, "imm": "0x97ba3fc3", "imm2": "0x7894e657", "rot": 3, "bit": 30, "mask": 16, "width": 1, "win": 1, "off": 1}, + {"i": 31, "op": "load", "dst": 1, "src": 4, "src2": 2, "imm": "0x97ba3fc3", "imm2": "0x7894e657", "rot": 3, "bit": 30, "mask": 16, "width": 1, "win": 1, "off": 1}, {"i": 32, "op": "add", "dst": 7, "src": 2, "src2": 7, "imm": "0x070888a8", "imm2": "0xe403240e", "rot": 2, "bit": 16, "mask": 2, "width": 1, "win": 0, "off": 0}, {"i": 33, "op": "add", "dst": 2, "src": 0, "src2": 5, "imm": "0xf2e46d55", "imm2": "0x29701828", "rot": 31, "bit": 28, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 34, "op": "add", "dst": 2, "src": 3, "src2": 0, "imm": "0x58f75b87", "imm2": "0x343b7aee", "rot": 12, "bit": 14, "mask": 4, "width": 1, "win": 0, "off": 0}, @@ -381,25 +382,25 @@ {"i": 41, "op": "sub", "dst": 7, "src": 0, "src2": 2, "imm": "0x0daf96ea", "imm2": "0x36f37be1", "rot": 5, "bit": 0, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 42, "op": "add", "dst": 4, "src": 3, "src2": 6, "imm": "0x6ced15b7", "imm2": "0x6df7aed4", "rot": 19, "bit": 4, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 43, "op": "shfl", "dst": 7, "src": 3, "src2": 5, "imm": "0x8ace05f3", "imm2": "0xd378ec12", "rot": 23, "bit": 10, "mask": 4, "width": 1, "win": 0, "off": 0}, - {"i": 44, "op": "load", "dst": 0, "src": 7, "src2": 4, "imm": "0xb0607786", "imm2": "0xc4acabbc", "rot": 13, "bit": 7, "mask": 16, "width": 1, "win": 1, "off": 1}, + {"i": 44, "op": "load", "dst": 0, "src": 2, "src2": 4, "imm": "0xb0607786", "imm2": "0xc4acabbc", "rot": 13, "bit": 7, "mask": 16, "width": 1, "win": 1, "off": 1}, {"i": 45, "op": "add", "dst": 1, "src": 6, "src2": 5, "imm": "0xe09f54e9", "imm2": "0x83e825bf", "rot": 23, "bit": 14, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 46, "op": "load", "dst": 3, "src": 1, "src2": 0, "imm": "0x63cc1e4e", "imm2": "0xa1be8118", "rot": 12, "bit": 6, "mask": 2, "width": 1, "win": 2, "off": 0}, - {"i": 47, "op": "load", "dst": 6, "src": 3, "src2": 7, "imm": "0x353f1d79", "imm2": "0x3b2e7456", "rot": 18, "bit": 18, "mask": 1, "width": 1, "win": 0, "off": 0}, + {"i": 46, "op": "load", "dst": 3, "src": 0, "src2": 0, "imm": "0x63cc1e4e", "imm2": "0xa1be8118", "rot": 12, "bit": 6, "mask": 2, "width": 1, "win": 2, "off": 0}, + {"i": 47, "op": "load", "dst": 6, "src": 4, "src2": 7, "imm": "0x353f1d79", "imm2": "0x3b2e7456", "rot": 18, "bit": 18, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 48, "op": "mulhi", "dst": 4, "src": 2, "src2": 7, "imm": "0x00d8a3cd", "imm2": "0x231866d2", "rot": 21, "bit": 20, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 49, "op": "add", "dst": 5, "src": 0, "src2": 2, "imm": "0xa8bae6df", "imm2": "0xf572bdb9", "rot": 14, "bit": 7, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 50, "op": "shfl", "dst": 0, "src": 7, "src2": 7, "imm": "0x81ef22e1", "imm2": "0x74438fc5", "rot": 28, "bit": 18, "mask": 4, "width": 1, "win": 0, "off": 0}, {"i": 51, "op": "add", "dst": 6, "src": 0, "src2": 6, "imm": "0x383b9260", "imm2": "0x11e17c61", "rot": 12, "bit": 19, "mask": 16, "width": 1, "win": 0, "off": 0}, - {"i": 52, "op": "load", "dst": 5, "src": 2, "src2": 2, "imm": "0xfb84f451", "imm2": "0x11cd863e", "rot": 21, "bit": 20, "mask": 8, "width": 1, "win": 0, "off": 0}, + {"i": 52, "op": "load", "dst": 5, "src": 0, "src2": 2, "imm": "0xfb84f451", "imm2": "0x11cd863e", "rot": 21, "bit": 20, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 53, "op": "rotl", "dst": 6, "src": 5, "src2": 4, "imm": "0xb1a7db6b", "imm2": "0x76686b9b", "rot": 12, "bit": 4, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 54, "op": "rotl", "dst": 3, "src": 6, "src2": 3, "imm": "0x6f981f52", "imm2": "0xd99aeba2", "rot": 12, "bit": 27, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 55, "op": "add", "dst": 2, "src": 1, "src2": 2, "imm": "0xac6be8e3", "imm2": "0x18d67dbb", "rot": 26, "bit": 10, "mask": 4, "width": 1, "win": 0, "off": 0}, - {"i": 56, "op": "load", "dst": 1, "src": 4, "src2": 0, "imm": "0x7e7f6a00", "imm2": "0x6f0747da", "rot": 25, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, + {"i": 56, "op": "load", "dst": 1, "src": 6, "src2": 0, "imm": "0x7e7f6a00", "imm2": "0x6f0747da", "rot": 25, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 57, "op": "add", "dst": 5, "src": 0, "src2": 4, "imm": "0xf03673fe", "imm2": "0xa75cd60d", "rot": 16, "bit": 12, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 58, "op": "load", "dst": 5, "src": 0, "src2": 2, "imm": "0x227f94a6", "imm2": "0x0e8344f9", "rot": 20, "bit": 10, "mask": 2, "width": 1, "win": 2, "off": 0}, + {"i": 58, "op": "load", "dst": 5, "src": 7, "src2": 2, "imm": "0x227f94a6", "imm2": "0x0e8344f9", "rot": 20, "bit": 10, "mask": 2, "width": 1, "win": 2, "off": 0}, {"i": 59, "op": "add", "dst": 1, "src": 4, "src2": 3, "imm": "0xdecd4794", "imm2": "0x8dfb96bb", "rot": 21, "bit": 7, "mask": 4, "width": 1, "win": 0, "off": 0}, {"i": 60, "op": "mulhi", "dst": 3, "src": 2, "src2": 2, "imm": "0x0dd268e0", "imm2": "0x53034ca9", "rot": 1, "bit": 8, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 61, "op": "or", "dst": 6, "src": 4, "src2": 7, "imm": "0x3a45a321", "imm2": "0x9bc59a5f", "rot": 25, "bit": 11, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 62, "op": "shfl", "dst": 5, "src": 4, "src2": 2, "imm": "0x8f229cc1", "imm2": "0xcaac64a2", "rot": 17, "bit": 13, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 63, "op": "load", "dst": 3, "src": 6, "src2": 6, "imm": "0xb2574178", "imm2": "0xcbcc798d", "rot": 28, "bit": 0, "mask": 16, "width": 1, "win": 1, "off": 1} + {"i": 63, "op": "load", "dst": 3, "src": 2, "src2": 6, "imm": "0xb2574178", "imm2": "0xcbcc798d", "rot": 28, "bit": 0, "mask": 16, "width": 1, "win": 1, "off": 1} ] } diff --git a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program.metal b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program.metal index 695629bf9..f2736ab8f 100644 --- a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program.metal +++ b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program.metal @@ -51,7 +51,7 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = r7 ^ dataset[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 10 r7 = r7 ^ dataset[((rotl_imm(r1 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 11 r5 = r5 * r4; // 12 - r7 = r7 ^ dataset[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 + r7 = r7 ^ dataset[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 r6 = r6 ^ simd_shuffle_xor(r5, (ushort)16); // 14 r3 = r3 ^ simd_shuffle_xor(r5, (ushort)1); // 15 r2 = r2 | r7; // 16 @@ -67,9 +67,9 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = rotr_var(r7, r0); // 26 r4 = r5 * r7 + r4; // 27 r3 = r2 * r4 + r3; // 28 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 r2 = r2 ^ dataset[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x08000000u) & MASK]; // 30 - r1 = r1 ^ dataset[((rotl_imm(r5 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 + r1 = r1 ^ dataset[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 r7 = r7 + r2 + select(0x070888a8u, 0xe403240eu, ((sel >> 16u) & 1u) != 0u); // 32 r2 = r2 + r0 + select(0xf2e46d55u, 0x29701828u, ((sel >> 28u) & 1u) != 0u); // 33 r2 = r2 + r3 + select(0x58f75b87u, 0x343b7aeeu, ((sel >> 14u) & 1u) != 0u); // 34 @@ -82,26 +82,26 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = r7 - r0; // 41 r4 = r4 + r3 + select(0x6ced15b7u, 0x6df7aed4u, ((sel >> 4u) & 1u) != 0u); // 42 r7 = r7 ^ simd_shuffle_xor(r3, (ushort)4); // 43 - r0 = r0 ^ dataset[((rotl_imm(r7 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 + r0 = r0 ^ dataset[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 r1 = r1 + r6 + select(0xe09f54e9u, 0x83e825bfu, ((sel >> 14u) & 1u) != 0u); // 45 - r3 = r3 ^ dataset[((rotl_imm(r1 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 - r6 = r6 ^ dataset[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 + r3 = r3 ^ dataset[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 + r6 = r6 ^ dataset[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 r4 = mulhi(r4, r2); // 48 r5 = r5 + r0 + select(0xa8bae6dfu, 0xf572bdb9u, ((sel >> 7u) & 1u) != 0u); // 49 r0 = r0 ^ simd_shuffle_xor(r7, (ushort)4); // 50 r6 = r6 + r0 + select(0x383b9260u, 0x11e17c61u, ((sel >> 19u) & 1u) != 0u); // 51 - r5 = r5 ^ dataset[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 + r5 = r5 ^ dataset[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 r6 = rotl_imm(r6, 12u); // 53 r3 = rotl_imm(r3, 12u); // 54 r2 = r2 + r1 + select(0xac6be8e3u, 0x18d67dbbu, ((sel >> 10u) & 1u) != 0u); // 55 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 r5 = r5 + r0 + select(0xf03673feu, 0xa75cd60du, ((sel >> 12u) & 1u) != 0u); // 57 - r5 = r5 ^ dataset[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 + r5 = r5 ^ dataset[((rotl_imm(r7 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 r1 = r1 + r4 + select(0xdecd4794u, 0x8dfb96bbu, ((sel >> 7u) & 1u) != 0u); // 59 r3 = mulhi(r3, r2); // 60 r6 = r6 | r4; // 61 r5 = r5 ^ simd_shuffle_xor(r4, (ushort)8); // 62 - r3 = r3 ^ dataset[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 + r3 = r3 ^ dataset[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program_bound.metal b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program_bound.metal index 8378806cd..c859d15eb 100644 --- a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program_bound.metal +++ b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/program_bound.metal @@ -53,7 +53,7 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = r7 ^ dataset[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 10 r7 = r7 ^ dataset[((rotl_imm(r1 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 11 r5 = r5 * r4; // 12 - r7 = r7 ^ dataset[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 + r7 = r7 ^ dataset[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 r6 = r6 ^ simd_shuffle_xor(r5, (ushort)16); // 14 r3 = r3 ^ simd_shuffle_xor(r5, (ushort)1); // 15 r2 = r2 | r7; // 16 @@ -69,9 +69,9 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = rotr_var(r7, r0); // 26 r4 = r5 * r7 + r4; // 27 r3 = r2 * r4 + r3; // 28 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 r2 = r2 ^ dataset[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x08000000u) & MASK]; // 30 - r1 = r1 ^ dataset[((rotl_imm(r5 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 + r1 = r1 ^ dataset[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 r7 = r7 + r2 + select(0x070888a8u, 0xe403240eu, ((sel >> 16u) & 1u) != 0u); // 32 r2 = r2 + r0 + select(0xf2e46d55u, 0x29701828u, ((sel >> 28u) & 1u) != 0u); // 33 r2 = r2 + r3 + select(0x58f75b87u, 0x343b7aeeu, ((sel >> 14u) & 1u) != 0u); // 34 @@ -84,26 +84,26 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = r7 - r0; // 41 r4 = r4 + r3 + select(0x6ced15b7u, 0x6df7aed4u, ((sel >> 4u) & 1u) != 0u); // 42 r7 = r7 ^ simd_shuffle_xor(r3, (ushort)4); // 43 - r0 = r0 ^ dataset[((rotl_imm(r7 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 + r0 = r0 ^ dataset[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 r1 = r1 + r6 + select(0xe09f54e9u, 0x83e825bfu, ((sel >> 14u) & 1u) != 0u); // 45 - r3 = r3 ^ dataset[((rotl_imm(r1 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 - r6 = r6 ^ dataset[((rotl_imm(r3 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 + r3 = r3 ^ dataset[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 + r6 = r6 ^ dataset[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 r4 = mulhi(r4, r2); // 48 r5 = r5 + r0 + select(0xa8bae6dfu, 0xf572bdb9u, ((sel >> 7u) & 1u) != 0u); // 49 r0 = r0 ^ simd_shuffle_xor(r7, (ushort)4); // 50 r6 = r6 + r0 + select(0x383b9260u, 0x11e17c61u, ((sel >> 19u) & 1u) != 0u); // 51 - r5 = r5 ^ dataset[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 + r5 = r5 ^ dataset[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 r6 = rotl_imm(r6, 12u); // 53 r3 = rotl_imm(r3, 12u); // 54 r2 = r2 + r1 + select(0xac6be8e3u, 0x18d67dbbu, ((sel >> 10u) & 1u) != 0u); // 55 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 r5 = r5 + r0 + select(0xf03673feu, 0xa75cd60du, ((sel >> 12u) & 1u) != 0u); // 57 - r5 = r5 ^ dataset[((rotl_imm(r0 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 + r5 = r5 ^ dataset[((rotl_imm(r7 * 0x9ad30d99u, 29u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 r1 = r1 + r4 + select(0xdecd4794u, 0x8dfb96bbu, ((sel >> 7u) & 1u) != 0u); // 59 r3 = mulhi(r3, r2); // 60 r6 = r6 | r4; // 61 r5 = r5 ^ simd_shuffle_xor(r4, (ushort)8); // 62 - r3 = r3 ^ dataset[((rotl_imm(r6 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 + r3 = r3 ^ dataset[((rotl_imm(r2 * 0x9ad30d99u, 29u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/vectors.h b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/vectors.h index 15de69d34..b4b1987b9 100644 --- a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/vectors.h +++ b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/vectors.h @@ -11,22 +11,22 @@ static const uint32_t IGNEUM_VEC_BASE[IGNEUM_VEC_WARPS] = { 0u, 4096u, 1000000u }; static const uint64_t IGNEUM_VEC_OUT[IGNEUM_VEC_WARPS][32] = { { // base nonce 0 - 0xcefc114b62c2013bull, 0x82df54bee88f1fa9ull, 0x94ed24d32cecf436ull, 0x8a9bd67e3fed0c5bull, 0x7c1a21514ebe42b7ull, 0x0edd5b084c5815edull, 0x077927721192da87ull, 0x28e26e3eb72cd8c4ull, - 0xbc7f3f9fd6f31019ull, 0x9760c30962c54b67ull, 0x1d3973217b0f60e9ull, 0xb9dce5f8dbc47f84ull, 0xf48230bc1c38a8a6ull, 0xab2be58a952ee580ull, 0x063033462d39b5faull, 0x63ca56a0425cd505ull, - 0xc8c1e7342452a6d5ull, 0xe936506b6f9c5859ull, 0xbe73aaebab23a47dull, 0x185855356357c704ull, 0x8e4d10d9f929e4c6ull, 0x8162627beec866c7ull, 0x5bfae763cdba41f4ull, 0xbd133821e099c624ull, - 0x11a8f07f88a424aaull, 0x9f872faaa642d022ull, 0xe02e4e5a55e161bbull, 0xec4674b8e19443a3ull, 0xcb09ce61d2a7a482ull, 0x246fc454a58d9623ull, 0xe4e9d962e94f9d44ull, 0xea8f7e5f79b3cd6cull + 0x837032e82d96966eull, 0xe400757e57712a79ull, 0x7afb27f5eff8d4a9ull, 0x690f90c80f28d5aaull, 0x60351a57093c2f5dull, 0xd546a50ab88c2c20ull, 0x1d41c04480f2929dull, 0xce52b5688638299bull, + 0x950bce60d327a06eull, 0xe36c974f18915af7ull, 0xfee59c8e8282e192ull, 0x2695391e5f751be0ull, 0xab6f0a8ef7e26d64ull, 0xe798d2429e3e407full, 0x5642d72903cc92c6ull, 0xb32014567a8e89aeull, + 0x24755f41b337f39full, 0xf5bdea70c8f0cd68ull, 0xdce45b09663303a1ull, 0x6305fe683263beb6ull, 0xc147804cd12811deull, 0xda9489cee95ea55dull, 0x2b4da4c979259f4eull, 0x9265d4dfd994d505ull, + 0x430a9a3cc8b4e9f9ull, 0xe6a4aae26704d9e3ull, 0x85f97c529602e55cull, 0xd7fc2ee9fc4e9bb9ull, 0x05ca6ed316003925ull, 0x9d5b430772de1152ull, 0xc3ce9fccd2e85d2full, 0x46060d971ee45f28ull }, { // base nonce 4096 - 0x72369740c7e914faull, 0x4e26670191e736b1ull, 0xfd0539ebd2476ba2ull, 0xbe026940c9b9b0cfull, 0x173cb4ffa35536dbull, 0x7a8c9f39fee473c8ull, 0xf1edbc92d4cf8fa7ull, 0x94cafcf8fe4d3484ull, - 0xaf52574e663f35d4ull, 0x3bfb83843cd530d1ull, 0x2276280eeb130699ull, 0x15363890a20c32c8ull, 0xfef7c4da969248c5ull, 0x53a0e23bb0180cbbull, 0x282baa859711bdcfull, 0x6b4175f6beb71cddull, - 0xa4e2f89843daa5b2ull, 0x9869cfcd682cb892ull, 0x8cb61b6583116468ull, 0x6a229c5101f56038ull, 0x16879e17e3a67e45ull, 0x0bfd173dfec23e7dull, 0x163009720a7cbe26ull, 0xc981a122be3e093eull, - 0xc8b10d937fd4fd68ull, 0x046db9ec4d476d23ull, 0x24d7d036955fc12aull, 0x6d4a7f64498eb506ull, 0x4bc021381be82d8dull, 0x8b53fe60b02ff39eull, 0x4f4aa55e80356ed4ull, 0xb87adc5371e0d7f3ull + 0x159824e1eeb921d2ull, 0x084629fc02b9d0deull, 0x22b9febf128a349cull, 0x090f3f649ac2ae79ull, 0x0d528956fb08ddc3ull, 0x99ac0576f36f43b8ull, 0x54610fcd8c439558ull, 0x6807c21b6e22727full, + 0xbd400a465ea10758ull, 0x6013d747c402d1eaull, 0x0c67d5e8760e32b9ull, 0x6d8ea819e938e96eull, 0xb61bbd97c43c615bull, 0xecf0b98e5d994f71ull, 0xd4891674382ab27eull, 0xd6a03a6e264d7bb9ull, + 0xe07185cd8828eac4ull, 0x11542c89f6340637ull, 0xda33d26e75cf619bull, 0xe6978aae3c70e560ull, 0xb4db0f0a6a047345ull, 0x5cc439b113cf73e4ull, 0x1296de8959046d5full, 0x131bfa7fc911b7ecull, + 0x7b9f4b82a5aa30a6ull, 0x24a302d88719d9f3ull, 0x952e426ba403805dull, 0x4f367471bb100c89ull, 0xbf2766e605a78bf3ull, 0x93c8bd18dc344accull, 0x331281075a9a6c50ull, 0x47f36d248de951bbull }, { // base nonce 1000000 - 0xed8dab53b5e8e8edull, 0xa9094d1bb25a004eull, 0x26ec1cf0f7dbc177ull, 0x27a48a41c3b4e0d4ull, 0x56e048da75af2d13ull, 0xfedf9d48b3ed20d4ull, 0x68ab0258d0717aa6ull, 0x350a3144bf94e1c1ull, - 0x001a69003600a82full, 0x14ad260948d3e939ull, 0x5e255b44fd3e47b7ull, 0x53b5103bdee253beull, 0xc8cf96e4e28c7827ull, 0x10714ce66ccdbf82ull, 0x970092db360dd3c8ull, 0x0910d973b2114663ull, - 0x5755d28da59e923full, 0x867d702953278b8eull, 0x24d34058189ed262ull, 0xa38e73420b9e0405ull, 0xfdb7f7ceb03ae23bull, 0xf0e19d50f68941fdull, 0x0745a1fbcd7c081bull, 0xf56202c4322ddc9full, - 0x7754d69c1e232baeull, 0x8f769e87329523f7ull, 0x72005edcdb8bbe99ull, 0x1cc4600ef8652eb6ull, 0x9edcc4a4a846dd5cull, 0x16d2ba401de9992cull, 0x41ea900971c6a4f4ull, 0xc06178510e3ce787ull + 0x5be98dadb4171fadull, 0x096a01476342df27ull, 0xeeb669c1de4abe93ull, 0x51a0347c77e6d2bfull, 0xab08f1d6b3869387ull, 0x1ca5db9504f59e6bull, 0x8af8e8a147e6b899ull, 0xaa24d17ade936730ull, + 0x282599079c4d7f67ull, 0x22ca5f2967fa11cbull, 0x02c666545cab030eull, 0xb780105ca9815792ull, 0xe1ad6ea2a5027b12ull, 0xc5af9bce86a8295bull, 0x1051ae97c227548cull, 0x9fa2aa166beaa9d5ull, + 0xe56fbb9c5e51d135ull, 0x33ae0e1f818b6cadull, 0x8d061e05986ddbafull, 0xc18ff71984aff2d4ull, 0xd4a9156a12f9b2f7ull, 0x03e1a178fb252186ull, 0xc521acdd97d2eacfull, 0x14c2a451696d092dull, + 0x9d4f0da649eff67cull, 0xef1e861bcf9c4304ull, 0x0b9fcc86fbe4578aull, 0xcf3edce409dc534bull, 0x1a1a196970baf6ebull, 0x2d4e02b51c9e03cdull, 0x851be67d4f7a99e7ull, 0x9c4d76d2a79f8d87ull } }; diff --git a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/vectors.json b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/vectors.json index 91635da08..c5e4ab323 100644 --- a/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/vectors.json +++ b/proto-cuda/packs-ca3-v4/v4-devnet-epoch0/vectors.json @@ -8,22 +8,22 @@ "source": "igneum-pow (Rust) CPU interpreter, generator v4, memory-hard dataset", "warps": [ {"base_nonce": 0, "expected": [ - "0xcefc114b62c2013b", "0x82df54bee88f1fa9", "0x94ed24d32cecf436", "0x8a9bd67e3fed0c5b", "0x7c1a21514ebe42b7", "0x0edd5b084c5815ed", "0x077927721192da87", "0x28e26e3eb72cd8c4", - "0xbc7f3f9fd6f31019", "0x9760c30962c54b67", "0x1d3973217b0f60e9", "0xb9dce5f8dbc47f84", "0xf48230bc1c38a8a6", "0xab2be58a952ee580", "0x063033462d39b5fa", "0x63ca56a0425cd505", - "0xc8c1e7342452a6d5", "0xe936506b6f9c5859", "0xbe73aaebab23a47d", "0x185855356357c704", "0x8e4d10d9f929e4c6", "0x8162627beec866c7", "0x5bfae763cdba41f4", "0xbd133821e099c624", - "0x11a8f07f88a424aa", "0x9f872faaa642d022", "0xe02e4e5a55e161bb", "0xec4674b8e19443a3", "0xcb09ce61d2a7a482", "0x246fc454a58d9623", "0xe4e9d962e94f9d44", "0xea8f7e5f79b3cd6c" + "0x837032e82d96966e", "0xe400757e57712a79", "0x7afb27f5eff8d4a9", "0x690f90c80f28d5aa", "0x60351a57093c2f5d", "0xd546a50ab88c2c20", "0x1d41c04480f2929d", "0xce52b5688638299b", + "0x950bce60d327a06e", "0xe36c974f18915af7", "0xfee59c8e8282e192", "0x2695391e5f751be0", "0xab6f0a8ef7e26d64", "0xe798d2429e3e407f", "0x5642d72903cc92c6", "0xb32014567a8e89ae", + "0x24755f41b337f39f", "0xf5bdea70c8f0cd68", "0xdce45b09663303a1", "0x6305fe683263beb6", "0xc147804cd12811de", "0xda9489cee95ea55d", "0x2b4da4c979259f4e", "0x9265d4dfd994d505", + "0x430a9a3cc8b4e9f9", "0xe6a4aae26704d9e3", "0x85f97c529602e55c", "0xd7fc2ee9fc4e9bb9", "0x05ca6ed316003925", "0x9d5b430772de1152", "0xc3ce9fccd2e85d2f", "0x46060d971ee45f28" ]}, {"base_nonce": 4096, "expected": [ - "0x72369740c7e914fa", "0x4e26670191e736b1", "0xfd0539ebd2476ba2", "0xbe026940c9b9b0cf", "0x173cb4ffa35536db", "0x7a8c9f39fee473c8", "0xf1edbc92d4cf8fa7", "0x94cafcf8fe4d3484", - "0xaf52574e663f35d4", "0x3bfb83843cd530d1", "0x2276280eeb130699", "0x15363890a20c32c8", "0xfef7c4da969248c5", "0x53a0e23bb0180cbb", "0x282baa859711bdcf", "0x6b4175f6beb71cdd", - "0xa4e2f89843daa5b2", "0x9869cfcd682cb892", "0x8cb61b6583116468", "0x6a229c5101f56038", "0x16879e17e3a67e45", "0x0bfd173dfec23e7d", "0x163009720a7cbe26", "0xc981a122be3e093e", - "0xc8b10d937fd4fd68", "0x046db9ec4d476d23", "0x24d7d036955fc12a", "0x6d4a7f64498eb506", "0x4bc021381be82d8d", "0x8b53fe60b02ff39e", "0x4f4aa55e80356ed4", "0xb87adc5371e0d7f3" + "0x159824e1eeb921d2", "0x084629fc02b9d0de", "0x22b9febf128a349c", "0x090f3f649ac2ae79", "0x0d528956fb08ddc3", "0x99ac0576f36f43b8", "0x54610fcd8c439558", "0x6807c21b6e22727f", + "0xbd400a465ea10758", "0x6013d747c402d1ea", "0x0c67d5e8760e32b9", "0x6d8ea819e938e96e", "0xb61bbd97c43c615b", "0xecf0b98e5d994f71", "0xd4891674382ab27e", "0xd6a03a6e264d7bb9", + "0xe07185cd8828eac4", "0x11542c89f6340637", "0xda33d26e75cf619b", "0xe6978aae3c70e560", "0xb4db0f0a6a047345", "0x5cc439b113cf73e4", "0x1296de8959046d5f", "0x131bfa7fc911b7ec", + "0x7b9f4b82a5aa30a6", "0x24a302d88719d9f3", "0x952e426ba403805d", "0x4f367471bb100c89", "0xbf2766e605a78bf3", "0x93c8bd18dc344acc", "0x331281075a9a6c50", "0x47f36d248de951bb" ]}, {"base_nonce": 1000000, "expected": [ - "0xed8dab53b5e8e8ed", "0xa9094d1bb25a004e", "0x26ec1cf0f7dbc177", "0x27a48a41c3b4e0d4", "0x56e048da75af2d13", "0xfedf9d48b3ed20d4", "0x68ab0258d0717aa6", "0x350a3144bf94e1c1", - "0x001a69003600a82f", "0x14ad260948d3e939", "0x5e255b44fd3e47b7", "0x53b5103bdee253be", "0xc8cf96e4e28c7827", "0x10714ce66ccdbf82", "0x970092db360dd3c8", "0x0910d973b2114663", - "0x5755d28da59e923f", "0x867d702953278b8e", "0x24d34058189ed262", "0xa38e73420b9e0405", "0xfdb7f7ceb03ae23b", "0xf0e19d50f68941fd", "0x0745a1fbcd7c081b", "0xf56202c4322ddc9f", - "0x7754d69c1e232bae", "0x8f769e87329523f7", "0x72005edcdb8bbe99", "0x1cc4600ef8652eb6", "0x9edcc4a4a846dd5c", "0x16d2ba401de9992c", "0x41ea900971c6a4f4", "0xc06178510e3ce787" + "0x5be98dadb4171fad", "0x096a01476342df27", "0xeeb669c1de4abe93", "0x51a0347c77e6d2bf", "0xab08f1d6b3869387", "0x1ca5db9504f59e6b", "0x8af8e8a147e6b899", "0xaa24d17ade936730", + "0x282599079c4d7f67", "0x22ca5f2967fa11cb", "0x02c666545cab030e", "0xb780105ca9815792", "0xe1ad6ea2a5027b12", "0xc5af9bce86a8295b", "0x1051ae97c227548c", "0x9fa2aa166beaa9d5", + "0xe56fbb9c5e51d135", "0x33ae0e1f818b6cad", "0x8d061e05986ddbaf", "0xc18ff71984aff2d4", "0xd4a9156a12f9b2f7", "0x03e1a178fb252186", "0xc521acdd97d2eacf", "0x14c2a451696d092d", + "0x9d4f0da649eff67c", "0xef1e861bcf9c4304", "0x0b9fcc86fbe4578a", "0xcf3edce409dc534b", "0x1a1a196970baf6eb", "0x2d4e02b51c9e03cd", "0x851be67d4f7a99e7", "0x9c4d76d2a79f8d87" ]} ], "dataset_head": ["0x19c6837f", "0xdf3adfb8", "0xbd3f6aed", "0xb8bede0d", "0xc5f0629f", "0x03e38ae8", "0xc435a60e", "0xfadee916", "0x827e59af", "0x8cf592f5", "0x60286061", "0x5d9abc1c", "0xa85d0c39", "0x4247a100", "0xd41a5b0d", "0x3f33dc64"], diff --git a/proto-cuda/packs-ca3-v4/v4-era-0/kernel.cl b/proto-cuda/packs-ca3-v4/v4-era-0/kernel.cl index ec346a73c..a24e74e24 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-0/kernel.cl +++ b/proto-cuda/packs-ca3-v4/v4-era-0/kernel.cl @@ -215,7 +215,7 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -231,9 +231,9 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -246,26 +246,26 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-0/kernel.cu b/proto-cuda/packs-ca3-v4/v4-era-0/kernel.cu index 3b7fe1322..e2378e1df 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-0/kernel.cu +++ b/proto-cuda/packs-ca3-v4/v4-era-0/kernel.cu @@ -71,7 +71,7 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = r7 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load r6 = r6 ^ __shfl_xor_sync(0xffffffffu, r5, 16); // 14 shfl r3 = r3 ^ __shfl_xor_sync(0xffffffffu, r5, 1); // 15 shfl r2 = r2 | r7; // 16 or @@ -87,9 +87,9 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -102,26 +102,26 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add r7 = r7 ^ __shfl_xor_sync(0xffffffffu, r3, 4); // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = __umulhi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add r0 = r0 ^ __shfl_xor_sync(0xffffffffu, r7, 4); // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = __umulhi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or r5 = r5 ^ __shfl_xor_sync(0xffffffffu, r4, 8); // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint32_t sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-0/kernel_bound.cl b/proto-cuda/packs-ca3-v4/v4-era-0/kernel_bound.cl index f68444176..805c5a41b 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-0/kernel_bound.cl +++ b/proto-cuda/packs-ca3-v4/v4-era-0/kernel_bound.cl @@ -215,7 +215,7 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -231,9 +231,9 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -246,26 +246,26 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul @@ -577,7 +577,7 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = r7 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -593,9 +593,9 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -608,26 +608,26 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-0/kernel_bound.cu b/proto-cuda/packs-ca3-v4/v4-era-0/kernel_bound.cu index 60bfb1fc7..b6847f10e 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-0/kernel_bound.cu +++ b/proto-cuda/packs-ca3-v4/v4-era-0/kernel_bound.cu @@ -48,7 +48,7 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = r7 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load r6 = r6 ^ __shfl_xor_sync(0xffffffffu, r5, 16); // 14 shfl r3 = r3 ^ __shfl_xor_sync(0xffffffffu, r5, 1); // 15 shfl r2 = r2 | r7; // 16 or @@ -64,9 +64,9 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -79,26 +79,26 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add r7 = r7 ^ __shfl_xor_sync(0xffffffffu, r3, 4); // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = __umulhi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add r0 = r0 ^ __shfl_xor_sync(0xffffffffu, r7, 4); // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = __umulhi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or r5 = r5 ^ __shfl_xor_sync(0xffffffffu, r4, 8); // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint32_t sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-0/program.h b/proto-cuda/packs-ca3-v4/v4-era-0/program.h index 12e272815..708a389f6 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-0/program.h +++ b/proto-cuda/packs-ca3-v4/v4-era-0/program.h @@ -15,7 +15,7 @@ #define IGNEUM_SEED_BYTES_HEX "edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07" #define IGNEUM_GENERATOR 4 #define IGNEUM_PROGRAM_ATTEMPT 0 -#define IGNEUM_PROGRAM_ID 0xc120d7963abdcd96ull +#define IGNEUM_PROGRAM_ID 0x1a4230699a6b9c60ull #define IGNEUM_DAY_STRING "bytes:69676e65756d2d6461792ffa50000000000000" #define IGNEUM_DAY_BYTES_HEX "69676e65756d2d6461792ffa50000000000000" #define IGNEUM_DAY0 0xceed56d7u @@ -32,6 +32,7 @@ // latency-shadow block (IGNEUM_SHADOW_INSTRS x IGNEUM_SHADOW_REPS per iteration); a worker that runs another class // refuses this pack, and a job line names the class it wants (class=v4 era=). #define IGNEUM_PROGRAM_CLASS "v4" +#define IGNEUM_PROGRAM_SUBVERSION 1 #define IGNEUM_ERA_SEED_HEX "8bffdd3366b9c3ffe89c1231e91538d531cfa717307df5c48ccba43096e17212" // Class v3 construction (Counter ASIC 2.0, 5 October 2026, docs/plans/mixer-x4.md): version 2 loads; the dataset item // derivation applies the mixer IGNEUM_MIXER_MULT times per round (memhard.h), and the cache follows the growth rule. diff --git a/proto-cuda/packs-ca3-v4/v4-era-0/program.json b/proto-cuda/packs-ca3-v4/v4-era-0/program.json index 0f1becba3..092263f49 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-0/program.json +++ b/proto-cuda/packs-ca3-v4/v4-era-0/program.json @@ -2,7 +2,7 @@ "format": "igneum-program-pack-3", "generator": 4, "attempt": 0, - "program_id": "0xc120d7963abdcd96", + "program_id": "0x1a4230699a6b9c60", "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", "dataset_mode": "memory-hard", "seed": "igneum-epoch/edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07/day/69676e65756d2d6461792ffa50000000000000", @@ -16,6 +16,7 @@ "instruction_count": 64, "loads_per_hash": 128, "program_class": "v4", + "sub_version": 1, "era_seed_bytes": "8bffdd3366b9c3ffe89c1231e91538d531cfa717307df5c48ccba43096e17212", "load_class": "mx8-erab2ed8a89+sh256x27", "mixer_mult": 8, @@ -350,7 +351,7 @@ {"i": 10, "op": "load", "dst": 7, "src": 0, "src2": 2, "imm": "0xe075297c", "imm2": "0x5779c44c", "rot": 10, "bit": 22, "mask": 2, "width": 1, "win": 1, "off": 1}, {"i": 11, "op": "load", "dst": 7, "src": 1, "src2": 6, "imm": "0x65aa4311", "imm2": "0x4fe48ea9", "rot": 15, "bit": 9, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 12, "op": "mul", "dst": 5, "src": 4, "src2": 2, "imm": "0x1383d3ad", "imm2": "0xf3094b29", "rot": 8, "bit": 9, "mask": 2, "width": 1, "win": 0, "off": 0}, - {"i": 13, "op": "load", "dst": 7, "src": 6, "src2": 2, "imm": "0xed8a496f", "imm2": "0x3072c3c6", "rot": 28, "bit": 19, "mask": 8, "width": 1, "win": 1, "off": 1}, + {"i": 13, "op": "load", "dst": 7, "src": 3, "src2": 2, "imm": "0xed8a496f", "imm2": "0x3072c3c6", "rot": 28, "bit": 19, "mask": 8, "width": 1, "win": 1, "off": 1}, {"i": 14, "op": "shfl", "dst": 6, "src": 5, "src2": 0, "imm": "0x8b965b57", "imm2": "0xcfeca6c1", "rot": 12, "bit": 27, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 15, "op": "shfl", "dst": 3, "src": 5, "src2": 3, "imm": "0x877c7586", "imm2": "0xa9cb2a03", "rot": 2, "bit": 29, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 16, "op": "or", "dst": 2, "src": 7, "src2": 3, "imm": "0xb740221a", "imm2": "0x89d38d6d", "rot": 6, "bit": 31, "mask": 8, "width": 1, "win": 0, "off": 0}, @@ -366,9 +367,9 @@ {"i": 26, "op": "rotr", "dst": 7, "src": 0, "src2": 1, "imm": "0xd89ef484", "imm2": "0x20be3846", "rot": 12, "bit": 9, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 27, "op": "mad", "dst": 4, "src": 5, "src2": 7, "imm": "0xb48420ae", "imm2": "0x3d1f2485", "rot": 14, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 28, "op": "mad", "dst": 3, "src": 2, "src2": 4, "imm": "0xc5c46d76", "imm2": "0x700044b5", "rot": 22, "bit": 10, "mask": 2, "width": 1, "win": 0, "off": 0}, - {"i": 29, "op": "load", "dst": 1, "src": 4, "src2": 3, "imm": "0x0fbaf177", "imm2": "0xfff4f2ed", "rot": 20, "bit": 31, "mask": 2, "width": 1, "win": 0, "off": 0}, + {"i": 29, "op": "load", "dst": 1, "src": 6, "src2": 3, "imm": "0x0fbaf177", "imm2": "0xfff4f2ed", "rot": 20, "bit": 31, "mask": 2, "width": 1, "win": 0, "off": 0}, {"i": 30, "op": "load", "dst": 2, "src": 3, "src2": 0, "imm": "0xe90eb2e5", "imm2": "0xb0f9eb79", "rot": 27, "bit": 14, "mask": 4, "width": 1, "win": 2, "off": 2}, - {"i": 31, "op": "load", "dst": 1, "src": 5, "src2": 2, "imm": "0x97ba3fc3", "imm2": "0x7894e657", "rot": 3, "bit": 30, "mask": 16, "width": 1, "win": 1, "off": 1}, + {"i": 31, "op": "load", "dst": 1, "src": 4, "src2": 2, "imm": "0x97ba3fc3", "imm2": "0x7894e657", "rot": 3, "bit": 30, "mask": 16, "width": 1, "win": 1, "off": 1}, {"i": 32, "op": "add", "dst": 7, "src": 2, "src2": 7, "imm": "0x070888a8", "imm2": "0xe403240e", "rot": 2, "bit": 16, "mask": 2, "width": 1, "win": 0, "off": 0}, {"i": 33, "op": "add", "dst": 2, "src": 0, "src2": 5, "imm": "0xf2e46d55", "imm2": "0x29701828", "rot": 31, "bit": 28, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 34, "op": "add", "dst": 2, "src": 3, "src2": 0, "imm": "0x58f75b87", "imm2": "0x343b7aee", "rot": 12, "bit": 14, "mask": 4, "width": 1, "win": 0, "off": 0}, @@ -381,25 +382,25 @@ {"i": 41, "op": "sub", "dst": 7, "src": 0, "src2": 2, "imm": "0x0daf96ea", "imm2": "0x36f37be1", "rot": 5, "bit": 0, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 42, "op": "add", "dst": 4, "src": 3, "src2": 6, "imm": "0x6ced15b7", "imm2": "0x6df7aed4", "rot": 19, "bit": 4, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 43, "op": "shfl", "dst": 7, "src": 3, "src2": 5, "imm": "0x8ace05f3", "imm2": "0xd378ec12", "rot": 23, "bit": 10, "mask": 4, "width": 1, "win": 0, "off": 0}, - {"i": 44, "op": "load", "dst": 0, "src": 7, "src2": 4, "imm": "0xb0607786", "imm2": "0xc4acabbc", "rot": 13, "bit": 7, "mask": 16, "width": 1, "win": 1, "off": 1}, + {"i": 44, "op": "load", "dst": 0, "src": 2, "src2": 4, "imm": "0xb0607786", "imm2": "0xc4acabbc", "rot": 13, "bit": 7, "mask": 16, "width": 1, "win": 1, "off": 1}, {"i": 45, "op": "add", "dst": 1, "src": 6, "src2": 5, "imm": "0xe09f54e9", "imm2": "0x83e825bf", "rot": 23, "bit": 14, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 46, "op": "load", "dst": 3, "src": 1, "src2": 0, "imm": "0x63cc1e4e", "imm2": "0xa1be8118", "rot": 12, "bit": 6, "mask": 2, "width": 1, "win": 2, "off": 0}, - {"i": 47, "op": "load", "dst": 6, "src": 3, "src2": 7, "imm": "0x353f1d79", "imm2": "0x3b2e7456", "rot": 18, "bit": 18, "mask": 1, "width": 1, "win": 0, "off": 0}, + {"i": 46, "op": "load", "dst": 3, "src": 0, "src2": 0, "imm": "0x63cc1e4e", "imm2": "0xa1be8118", "rot": 12, "bit": 6, "mask": 2, "width": 1, "win": 2, "off": 0}, + {"i": 47, "op": "load", "dst": 6, "src": 4, "src2": 7, "imm": "0x353f1d79", "imm2": "0x3b2e7456", "rot": 18, "bit": 18, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 48, "op": "mulhi", "dst": 4, "src": 2, "src2": 7, "imm": "0x00d8a3cd", "imm2": "0x231866d2", "rot": 21, "bit": 20, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 49, "op": "add", "dst": 5, "src": 0, "src2": 2, "imm": "0xa8bae6df", "imm2": "0xf572bdb9", "rot": 14, "bit": 7, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 50, "op": "shfl", "dst": 0, "src": 7, "src2": 7, "imm": "0x81ef22e1", "imm2": "0x74438fc5", "rot": 28, "bit": 18, "mask": 4, "width": 1, "win": 0, "off": 0}, {"i": 51, "op": "add", "dst": 6, "src": 0, "src2": 6, "imm": "0x383b9260", "imm2": "0x11e17c61", "rot": 12, "bit": 19, "mask": 16, "width": 1, "win": 0, "off": 0}, - {"i": 52, "op": "load", "dst": 5, "src": 2, "src2": 2, "imm": "0xfb84f451", "imm2": "0x11cd863e", "rot": 21, "bit": 20, "mask": 8, "width": 1, "win": 0, "off": 0}, + {"i": 52, "op": "load", "dst": 5, "src": 0, "src2": 2, "imm": "0xfb84f451", "imm2": "0x11cd863e", "rot": 21, "bit": 20, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 53, "op": "rotl", "dst": 6, "src": 5, "src2": 4, "imm": "0xb1a7db6b", "imm2": "0x76686b9b", "rot": 12, "bit": 4, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 54, "op": "rotl", "dst": 3, "src": 6, "src2": 3, "imm": "0x6f981f52", "imm2": "0xd99aeba2", "rot": 12, "bit": 27, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 55, "op": "add", "dst": 2, "src": 1, "src2": 2, "imm": "0xac6be8e3", "imm2": "0x18d67dbb", "rot": 26, "bit": 10, "mask": 4, "width": 1, "win": 0, "off": 0}, - {"i": 56, "op": "load", "dst": 1, "src": 4, "src2": 0, "imm": "0x7e7f6a00", "imm2": "0x6f0747da", "rot": 25, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, + {"i": 56, "op": "load", "dst": 1, "src": 6, "src2": 0, "imm": "0x7e7f6a00", "imm2": "0x6f0747da", "rot": 25, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 57, "op": "add", "dst": 5, "src": 0, "src2": 4, "imm": "0xf03673fe", "imm2": "0xa75cd60d", "rot": 16, "bit": 12, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 58, "op": "load", "dst": 5, "src": 0, "src2": 2, "imm": "0x227f94a6", "imm2": "0x0e8344f9", "rot": 20, "bit": 10, "mask": 2, "width": 1, "win": 2, "off": 0}, + {"i": 58, "op": "load", "dst": 5, "src": 7, "src2": 2, "imm": "0x227f94a6", "imm2": "0x0e8344f9", "rot": 20, "bit": 10, "mask": 2, "width": 1, "win": 2, "off": 0}, {"i": 59, "op": "add", "dst": 1, "src": 4, "src2": 3, "imm": "0xdecd4794", "imm2": "0x8dfb96bb", "rot": 21, "bit": 7, "mask": 4, "width": 1, "win": 0, "off": 0}, {"i": 60, "op": "mulhi", "dst": 3, "src": 2, "src2": 2, "imm": "0x0dd268e0", "imm2": "0x53034ca9", "rot": 1, "bit": 8, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 61, "op": "or", "dst": 6, "src": 4, "src2": 7, "imm": "0x3a45a321", "imm2": "0x9bc59a5f", "rot": 25, "bit": 11, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 62, "op": "shfl", "dst": 5, "src": 4, "src2": 2, "imm": "0x8f229cc1", "imm2": "0xcaac64a2", "rot": 17, "bit": 13, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 63, "op": "load", "dst": 3, "src": 6, "src2": 6, "imm": "0xb2574178", "imm2": "0xcbcc798d", "rot": 28, "bit": 0, "mask": 16, "width": 1, "win": 1, "off": 1} + {"i": 63, "op": "load", "dst": 3, "src": 2, "src2": 6, "imm": "0xb2574178", "imm2": "0xcbcc798d", "rot": 28, "bit": 0, "mask": 16, "width": 1, "win": 1, "off": 1} ] } diff --git a/proto-cuda/packs-ca3-v4/v4-era-0/program.metal b/proto-cuda/packs-ca3-v4/v4-era-0/program.metal index 8eb97ed01..b6a5891fb 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-0/program.metal +++ b/proto-cuda/packs-ca3-v4/v4-era-0/program.metal @@ -51,7 +51,7 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = r7 ^ dataset[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 10 r7 = r7 ^ dataset[((rotl_imm(r1 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 11 r5 = r5 * r4; // 12 - r7 = r7 ^ dataset[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 + r7 = r7 ^ dataset[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 r6 = r6 ^ simd_shuffle_xor(r5, (ushort)16); // 14 r3 = r3 ^ simd_shuffle_xor(r5, (ushort)1); // 15 r2 = r2 | r7; // 16 @@ -67,9 +67,9 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = rotr_var(r7, r0); // 26 r4 = r5 * r7 + r4; // 27 r3 = r2 * r4 + r3; // 28 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 r2 = r2 ^ dataset[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x08000000u) & MASK]; // 30 - r1 = r1 ^ dataset[((rotl_imm(r5 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 + r1 = r1 ^ dataset[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 r7 = r7 + r2 + select(0x070888a8u, 0xe403240eu, ((sel >> 16u) & 1u) != 0u); // 32 r2 = r2 + r0 + select(0xf2e46d55u, 0x29701828u, ((sel >> 28u) & 1u) != 0u); // 33 r2 = r2 + r3 + select(0x58f75b87u, 0x343b7aeeu, ((sel >> 14u) & 1u) != 0u); // 34 @@ -82,26 +82,26 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = r7 - r0; // 41 r4 = r4 + r3 + select(0x6ced15b7u, 0x6df7aed4u, ((sel >> 4u) & 1u) != 0u); // 42 r7 = r7 ^ simd_shuffle_xor(r3, (ushort)4); // 43 - r0 = r0 ^ dataset[((rotl_imm(r7 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 + r0 = r0 ^ dataset[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 r1 = r1 + r6 + select(0xe09f54e9u, 0x83e825bfu, ((sel >> 14u) & 1u) != 0u); // 45 - r3 = r3 ^ dataset[((rotl_imm(r1 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 - r6 = r6 ^ dataset[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 + r3 = r3 ^ dataset[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 + r6 = r6 ^ dataset[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 r4 = mulhi(r4, r2); // 48 r5 = r5 + r0 + select(0xa8bae6dfu, 0xf572bdb9u, ((sel >> 7u) & 1u) != 0u); // 49 r0 = r0 ^ simd_shuffle_xor(r7, (ushort)4); // 50 r6 = r6 + r0 + select(0x383b9260u, 0x11e17c61u, ((sel >> 19u) & 1u) != 0u); // 51 - r5 = r5 ^ dataset[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 + r5 = r5 ^ dataset[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 r6 = rotl_imm(r6, 12u); // 53 r3 = rotl_imm(r3, 12u); // 54 r2 = r2 + r1 + select(0xac6be8e3u, 0x18d67dbbu, ((sel >> 10u) & 1u) != 0u); // 55 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 r5 = r5 + r0 + select(0xf03673feu, 0xa75cd60du, ((sel >> 12u) & 1u) != 0u); // 57 - r5 = r5 ^ dataset[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 + r5 = r5 ^ dataset[((rotl_imm(r7 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 r1 = r1 + r4 + select(0xdecd4794u, 0x8dfb96bbu, ((sel >> 7u) & 1u) != 0u); // 59 r3 = mulhi(r3, r2); // 60 r6 = r6 | r4; // 61 r5 = r5 ^ simd_shuffle_xor(r4, (ushort)8); // 62 - r3 = r3 ^ dataset[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 + r3 = r3 ^ dataset[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-0/program_bound.metal b/proto-cuda/packs-ca3-v4/v4-era-0/program_bound.metal index a273a20c9..99f7e0ac8 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-0/program_bound.metal +++ b/proto-cuda/packs-ca3-v4/v4-era-0/program_bound.metal @@ -53,7 +53,7 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = r7 ^ dataset[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 10 r7 = r7 ^ dataset[((rotl_imm(r1 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 11 r5 = r5 * r4; // 12 - r7 = r7 ^ dataset[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 + r7 = r7 ^ dataset[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 r6 = r6 ^ simd_shuffle_xor(r5, (ushort)16); // 14 r3 = r3 ^ simd_shuffle_xor(r5, (ushort)1); // 15 r2 = r2 | r7; // 16 @@ -69,9 +69,9 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = rotr_var(r7, r0); // 26 r4 = r5 * r7 + r4; // 27 r3 = r2 * r4 + r3; // 28 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 r2 = r2 ^ dataset[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x08000000u) & MASK]; // 30 - r1 = r1 ^ dataset[((rotl_imm(r5 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 + r1 = r1 ^ dataset[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 r7 = r7 + r2 + select(0x070888a8u, 0xe403240eu, ((sel >> 16u) & 1u) != 0u); // 32 r2 = r2 + r0 + select(0xf2e46d55u, 0x29701828u, ((sel >> 28u) & 1u) != 0u); // 33 r2 = r2 + r3 + select(0x58f75b87u, 0x343b7aeeu, ((sel >> 14u) & 1u) != 0u); // 34 @@ -84,26 +84,26 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = r7 - r0; // 41 r4 = r4 + r3 + select(0x6ced15b7u, 0x6df7aed4u, ((sel >> 4u) & 1u) != 0u); // 42 r7 = r7 ^ simd_shuffle_xor(r3, (ushort)4); // 43 - r0 = r0 ^ dataset[((rotl_imm(r7 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 + r0 = r0 ^ dataset[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 r1 = r1 + r6 + select(0xe09f54e9u, 0x83e825bfu, ((sel >> 14u) & 1u) != 0u); // 45 - r3 = r3 ^ dataset[((rotl_imm(r1 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 - r6 = r6 ^ dataset[((rotl_imm(r3 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 + r3 = r3 ^ dataset[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 + r6 = r6 ^ dataset[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 r4 = mulhi(r4, r2); // 48 r5 = r5 + r0 + select(0xa8bae6dfu, 0xf572bdb9u, ((sel >> 7u) & 1u) != 0u); // 49 r0 = r0 ^ simd_shuffle_xor(r7, (ushort)4); // 50 r6 = r6 + r0 + select(0x383b9260u, 0x11e17c61u, ((sel >> 19u) & 1u) != 0u); // 51 - r5 = r5 ^ dataset[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 + r5 = r5 ^ dataset[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 r6 = rotl_imm(r6, 12u); // 53 r3 = rotl_imm(r3, 12u); // 54 r2 = r2 + r1 + select(0xac6be8e3u, 0x18d67dbbu, ((sel >> 10u) & 1u) != 0u); // 55 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 r5 = r5 + r0 + select(0xf03673feu, 0xa75cd60du, ((sel >> 12u) & 1u) != 0u); // 57 - r5 = r5 ^ dataset[((rotl_imm(r0 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 + r5 = r5 ^ dataset[((rotl_imm(r7 * 0x625e5ab3u, 19u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 r1 = r1 + r4 + select(0xdecd4794u, 0x8dfb96bbu, ((sel >> 7u) & 1u) != 0u); // 59 r3 = mulhi(r3, r2); // 60 r6 = r6 | r4; // 61 r5 = r5 ^ simd_shuffle_xor(r4, (ushort)8); // 62 - r3 = r3 ^ dataset[((rotl_imm(r6 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 + r3 = r3 ^ dataset[((rotl_imm(r2 * 0x625e5ab3u, 19u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-0/vectors.h b/proto-cuda/packs-ca3-v4/v4-era-0/vectors.h index 84254f8d6..61b05b558 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-0/vectors.h +++ b/proto-cuda/packs-ca3-v4/v4-era-0/vectors.h @@ -11,22 +11,22 @@ static const uint32_t IGNEUM_VEC_BASE[IGNEUM_VEC_WARPS] = { 0u, 4096u, 1000000u }; static const uint64_t IGNEUM_VEC_OUT[IGNEUM_VEC_WARPS][32] = { { // base nonce 0 - 0xc6ac65d8c667c94bull, 0x423ba68373b366fbull, 0x21eb7c55ad8be449ull, 0x241e717cf2ab882aull, 0xa615906f3f9be2ceull, 0xce309393aa36b7efull, 0x6243ddb51a337304ull, 0xe0495ce514ee4267ull, - 0xf479942a15b82d19ull, 0x3484f32ff6dcf936ull, 0x3d485cd36298b5daull, 0xcdb8c5017040e9edull, 0xed23ab1ee79266d1ull, 0x1a56ee16d69ad2a3ull, 0x0646e3397a174f83ull, 0x98ea781f02a5071aull, - 0x8c77f5c840d7762full, 0x4720419c079f4b89ull, 0xa9b0e2c3c07d9885ull, 0x612ecd1ff4ecd3c5ull, 0x254f3b36ad521004ull, 0x46d1f55d10cac72dull, 0xd7a5ba62b5d9315dull, 0xeac91757fb066b5full, - 0x84f6904c2da56898ull, 0x06efd77b90561e3cull, 0x9e152e00cd51627bull, 0x708c82cc2f545ca5ull, 0x7fb90cbb65b09681ull, 0x1a170cf306c6b81cull, 0x3d5fa555658bc6bfull, 0xb1dbc3e905378746ull + 0x3dd0c5d231aa501eull, 0xd6fac2cabd2d6f6dull, 0x94dd1d52f3cbde69ull, 0x382eecd03346f247ull, 0xce02ff223174b2d5ull, 0x86133c87300c6004ull, 0xdeff000d067516a7ull, 0x132937b3de51eaa5ull, + 0xee969d32009c357dull, 0x26c96fe5ece24f40ull, 0x5a6731206c31015cull, 0x52485bb69394bd45ull, 0x84a3d088549fb18cull, 0x73490ad1812a5787ull, 0xb8a899ed79de5745ull, 0xf5942bba1013aae3ull, + 0x9904fc45e408f9c8ull, 0x461cc234f82e6148ull, 0x89efc3ae79151634ull, 0x1da4085d6534f05dull, 0xcfca19af8c07e328ull, 0xdce057431e0745d1ull, 0x995257cf023bcdd8ull, 0x557647f1a9f4a9dfull, + 0xdeeff4ed4e9c7d77ull, 0xb88c4f6a98a7ea79ull, 0x3305dfd9d4330bdbull, 0xc0c9d98a57213bedull, 0x53a31b13526a2ac9ull, 0x66573ca57c48cd25ull, 0x4da452bb061408b0ull, 0x460bb36b6fd504d8ull }, { // base nonce 4096 - 0x3be623a0f075d1f3ull, 0x2552e70de3533e93ull, 0x4c58e7fac79e754dull, 0x4c6ce1acd35693f6ull, 0x9c356bcd5f1d4639ull, 0x29361be2e3fa88efull, 0x8a1878dfba4b4637ull, 0x9289b157d1a01a8cull, - 0x70a4b5646d471b8eull, 0xcf1595ab96209aa0ull, 0xe83503a00680799aull, 0x7c1179b26025fcb4ull, 0x5a7aa05cd428f182ull, 0x02466e4a89473e34ull, 0xbd379fafb5889deeull, 0x914679b7d4a92eceull, - 0x71b1611d70b03bd4ull, 0x9b6ec7ca5afd24dbull, 0x955f2305b288ef17ull, 0x456aeb62e25e0a8cull, 0x40724ed4d6c72cc7ull, 0xf520227cecca4067ull, 0x92146b6c5d82408full, 0xbacdfeaa3693bba5ull, - 0xb50a632febcaff29ull, 0x60bfffcb8b540752ull, 0x3eb9dbc42fc7b9d9ull, 0x73fd73c129763cd9ull, 0x701a9ec7130c5833ull, 0x02845e3260dbb636ull, 0x3b15ad42edfd3e74ull, 0x531d777ef600ee58ull + 0x039cc30b8c031a48ull, 0xf9bfd6b480657c03ull, 0xaf13478481593783ull, 0x872ea5b7d73b8925ull, 0x889bfedd51045247ull, 0xe1ab81c6dcd69ff3ull, 0x2507dd502da1b9daull, 0x7567a01889f83134ull, + 0xde7d8f2cac60920eull, 0x0e0a63d966799441ull, 0x9d98775713c4a0e4ull, 0x47209fdd7ae001b7ull, 0x05c0d79abf0af16dull, 0xb94aa6292dd13bbcull, 0x63cb6d147242c41dull, 0x2ea7910c292d7444ull, + 0xdd482ea897c1996eull, 0xe84344303344b919ull, 0xe82c94a23d2bfba5ull, 0xe9d885013e70dcecull, 0xc4bb99afe28e20a5ull, 0x3f176b1b1ec2d0fcull, 0xd192d3f4b4198535ull, 0x7efd10fb18a3aed8ull, + 0x2aae74311fd49683ull, 0x84d188bc8cf911abull, 0x692d0a7500eed484ull, 0x227b6a6a62221e2cull, 0x6e7d05153c894e6full, 0x33e8b228c6751367ull, 0xbaa37d348728a2e8ull, 0x518f7da3478e7e74ull }, { // base nonce 1000000 - 0xde8458bcb18fb637ull, 0x0206b58b1f067ff0ull, 0xe107cdd0e87d28aeull, 0x49fef7f22bc586d4ull, 0xff64163d017070ccull, 0x968adfe921ccec1bull, 0xe9560f8a3fa830daull, 0x5d6f239c97224957ull, - 0xcc2f980c31f7c7e5ull, 0x4d7cd09c7b731241ull, 0x5b1841dcfa517b45ull, 0xabd19c355dd4723full, 0x316eaf5ba7e30331ull, 0xec8156a374468b8dull, 0x0e3505a1ec9fe2a1ull, 0x5f1f5a94a69a1178ull, - 0xd4e6f7fda43c5056ull, 0x5ce560511eddb335ull, 0x88180b5ce94621cfull, 0xb1095ce2dc071b55ull, 0xded0110936b4cf80ull, 0x43d2bbff72e231bcull, 0xdd2bae28dbc4a9feull, 0x1c5055680fc7bca6ull, - 0x1917e8e4e79db0adull, 0xb4f64af4d8f8a7c2ull, 0xd6df5b0607279b60ull, 0x3da81ec2899f8314ull, 0x384c998c46ab8b80ull, 0x7c8ada8b7ca44cd5ull, 0x1346a6394b7e4e05ull, 0x4e9868001eb79a14ull + 0xff3704a4b4a39d74ull, 0x67ce2a95ff7f485eull, 0x0bc692d8d7c4b47bull, 0x91713025b7bfdad7ull, 0x01e28c92dacef958ull, 0xbe8d553dd7e4c987ull, 0x34ce4c7529ec9b1aull, 0xe2b3cbde7b2ff12eull, + 0xe05d9ff4895ab93eull, 0x09654827998a3e1aull, 0xd12e8d8776c76dadull, 0x96b916349effd9cfull, 0x6bf979214e05b755ull, 0x3082bfd6379b2b4dull, 0x283bec328ba13c9dull, 0x9f1b34dd7d719254ull, + 0x62429fc39f085fa0ull, 0x8e0e3bf0a74eab65ull, 0x12c89e7a7f7e27a3ull, 0xf4685da8ff6d84a6ull, 0xd2ac7b54e4f6ec1aull, 0x8bdf7f5fa3c211b1ull, 0x2cf20f105f8fd9f4ull, 0xd838f3668d715762ull, + 0x3cecb064b01bb2d6ull, 0x07a6fb3335e1f1aaull, 0x3d46b9036720b74aull, 0xeb6a68cdbc2a4efcull, 0xab1b29e32b4b9c37ull, 0x8023aae06ffaa42bull, 0x1a9eb7b38f4aa48eull, 0x21ee84e150b406a8ull } }; diff --git a/proto-cuda/packs-ca3-v4/v4-era-0/vectors.json b/proto-cuda/packs-ca3-v4/v4-era-0/vectors.json index 832538fa7..5c1923009 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-0/vectors.json +++ b/proto-cuda/packs-ca3-v4/v4-era-0/vectors.json @@ -8,22 +8,22 @@ "source": "igneum-pow (Rust) CPU interpreter, generator v4, memory-hard dataset", "warps": [ {"base_nonce": 0, "expected": [ - "0xc6ac65d8c667c94b", "0x423ba68373b366fb", "0x21eb7c55ad8be449", "0x241e717cf2ab882a", "0xa615906f3f9be2ce", "0xce309393aa36b7ef", "0x6243ddb51a337304", "0xe0495ce514ee4267", - "0xf479942a15b82d19", "0x3484f32ff6dcf936", "0x3d485cd36298b5da", "0xcdb8c5017040e9ed", "0xed23ab1ee79266d1", "0x1a56ee16d69ad2a3", "0x0646e3397a174f83", "0x98ea781f02a5071a", - "0x8c77f5c840d7762f", "0x4720419c079f4b89", "0xa9b0e2c3c07d9885", "0x612ecd1ff4ecd3c5", "0x254f3b36ad521004", "0x46d1f55d10cac72d", "0xd7a5ba62b5d9315d", "0xeac91757fb066b5f", - "0x84f6904c2da56898", "0x06efd77b90561e3c", "0x9e152e00cd51627b", "0x708c82cc2f545ca5", "0x7fb90cbb65b09681", "0x1a170cf306c6b81c", "0x3d5fa555658bc6bf", "0xb1dbc3e905378746" + "0x3dd0c5d231aa501e", "0xd6fac2cabd2d6f6d", "0x94dd1d52f3cbde69", "0x382eecd03346f247", "0xce02ff223174b2d5", "0x86133c87300c6004", "0xdeff000d067516a7", "0x132937b3de51eaa5", + "0xee969d32009c357d", "0x26c96fe5ece24f40", "0x5a6731206c31015c", "0x52485bb69394bd45", "0x84a3d088549fb18c", "0x73490ad1812a5787", "0xb8a899ed79de5745", "0xf5942bba1013aae3", + "0x9904fc45e408f9c8", "0x461cc234f82e6148", "0x89efc3ae79151634", "0x1da4085d6534f05d", "0xcfca19af8c07e328", "0xdce057431e0745d1", "0x995257cf023bcdd8", "0x557647f1a9f4a9df", + "0xdeeff4ed4e9c7d77", "0xb88c4f6a98a7ea79", "0x3305dfd9d4330bdb", "0xc0c9d98a57213bed", "0x53a31b13526a2ac9", "0x66573ca57c48cd25", "0x4da452bb061408b0", "0x460bb36b6fd504d8" ]}, {"base_nonce": 4096, "expected": [ - "0x3be623a0f075d1f3", "0x2552e70de3533e93", "0x4c58e7fac79e754d", "0x4c6ce1acd35693f6", "0x9c356bcd5f1d4639", "0x29361be2e3fa88ef", "0x8a1878dfba4b4637", "0x9289b157d1a01a8c", - "0x70a4b5646d471b8e", "0xcf1595ab96209aa0", "0xe83503a00680799a", "0x7c1179b26025fcb4", "0x5a7aa05cd428f182", "0x02466e4a89473e34", "0xbd379fafb5889dee", "0x914679b7d4a92ece", - "0x71b1611d70b03bd4", "0x9b6ec7ca5afd24db", "0x955f2305b288ef17", "0x456aeb62e25e0a8c", "0x40724ed4d6c72cc7", "0xf520227cecca4067", "0x92146b6c5d82408f", "0xbacdfeaa3693bba5", - "0xb50a632febcaff29", "0x60bfffcb8b540752", "0x3eb9dbc42fc7b9d9", "0x73fd73c129763cd9", "0x701a9ec7130c5833", "0x02845e3260dbb636", "0x3b15ad42edfd3e74", "0x531d777ef600ee58" + "0x039cc30b8c031a48", "0xf9bfd6b480657c03", "0xaf13478481593783", "0x872ea5b7d73b8925", "0x889bfedd51045247", "0xe1ab81c6dcd69ff3", "0x2507dd502da1b9da", "0x7567a01889f83134", + "0xde7d8f2cac60920e", "0x0e0a63d966799441", "0x9d98775713c4a0e4", "0x47209fdd7ae001b7", "0x05c0d79abf0af16d", "0xb94aa6292dd13bbc", "0x63cb6d147242c41d", "0x2ea7910c292d7444", + "0xdd482ea897c1996e", "0xe84344303344b919", "0xe82c94a23d2bfba5", "0xe9d885013e70dcec", "0xc4bb99afe28e20a5", "0x3f176b1b1ec2d0fc", "0xd192d3f4b4198535", "0x7efd10fb18a3aed8", + "0x2aae74311fd49683", "0x84d188bc8cf911ab", "0x692d0a7500eed484", "0x227b6a6a62221e2c", "0x6e7d05153c894e6f", "0x33e8b228c6751367", "0xbaa37d348728a2e8", "0x518f7da3478e7e74" ]}, {"base_nonce": 1000000, "expected": [ - "0xde8458bcb18fb637", "0x0206b58b1f067ff0", "0xe107cdd0e87d28ae", "0x49fef7f22bc586d4", "0xff64163d017070cc", "0x968adfe921ccec1b", "0xe9560f8a3fa830da", "0x5d6f239c97224957", - "0xcc2f980c31f7c7e5", "0x4d7cd09c7b731241", "0x5b1841dcfa517b45", "0xabd19c355dd4723f", "0x316eaf5ba7e30331", "0xec8156a374468b8d", "0x0e3505a1ec9fe2a1", "0x5f1f5a94a69a1178", - "0xd4e6f7fda43c5056", "0x5ce560511eddb335", "0x88180b5ce94621cf", "0xb1095ce2dc071b55", "0xded0110936b4cf80", "0x43d2bbff72e231bc", "0xdd2bae28dbc4a9fe", "0x1c5055680fc7bca6", - "0x1917e8e4e79db0ad", "0xb4f64af4d8f8a7c2", "0xd6df5b0607279b60", "0x3da81ec2899f8314", "0x384c998c46ab8b80", "0x7c8ada8b7ca44cd5", "0x1346a6394b7e4e05", "0x4e9868001eb79a14" + "0xff3704a4b4a39d74", "0x67ce2a95ff7f485e", "0x0bc692d8d7c4b47b", "0x91713025b7bfdad7", "0x01e28c92dacef958", "0xbe8d553dd7e4c987", "0x34ce4c7529ec9b1a", "0xe2b3cbde7b2ff12e", + "0xe05d9ff4895ab93e", "0x09654827998a3e1a", "0xd12e8d8776c76dad", "0x96b916349effd9cf", "0x6bf979214e05b755", "0x3082bfd6379b2b4d", "0x283bec328ba13c9d", "0x9f1b34dd7d719254", + "0x62429fc39f085fa0", "0x8e0e3bf0a74eab65", "0x12c89e7a7f7e27a3", "0xf4685da8ff6d84a6", "0xd2ac7b54e4f6ec1a", "0x8bdf7f5fa3c211b1", "0x2cf20f105f8fd9f4", "0xd838f3668d715762", + "0x3cecb064b01bb2d6", "0x07a6fb3335e1f1aa", "0x3d46b9036720b74a", "0xeb6a68cdbc2a4efc", "0xab1b29e32b4b9c37", "0x8023aae06ffaa42b", "0x1a9eb7b38f4aa48e", "0x21ee84e150b406a8" ]} ], "dataset_head": ["0x19c6837f", "0xdf3adfb8", "0xbd3f6aed", "0xb8bede0d", "0xc5f0629f", "0x03e38ae8", "0xc435a60e", "0xfadee916", "0x827e59af", "0x8cf592f5", "0x60286061", "0x5d9abc1c", "0xa85d0c39", "0x4247a100", "0xd41a5b0d", "0x3f33dc64"], diff --git a/proto-cuda/packs-ca3-v4/v4-era-1/kernel.cl b/proto-cuda/packs-ca3-v4/v4-era-1/kernel.cl index 4393f4742..714bb62e3 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-1/kernel.cl +++ b/proto-cuda/packs-ca3-v4/v4-era-1/kernel.cl @@ -215,7 +215,7 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -231,9 +231,9 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -246,26 +246,26 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-1/kernel.cu b/proto-cuda/packs-ca3-v4/v4-era-1/kernel.cu index 262ddb4ce..2727ae2f7 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-1/kernel.cu +++ b/proto-cuda/packs-ca3-v4/v4-era-1/kernel.cu @@ -71,7 +71,7 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = r7 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load r6 = r6 ^ __shfl_xor_sync(0xffffffffu, r5, 16); // 14 shfl r3 = r3 ^ __shfl_xor_sync(0xffffffffu, r5, 1); // 15 shfl r2 = r2 | r7; // 16 or @@ -87,9 +87,9 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -102,26 +102,26 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add r7 = r7 ^ __shfl_xor_sync(0xffffffffu, r3, 4); // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = __umulhi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add r0 = r0 ^ __shfl_xor_sync(0xffffffffu, r7, 4); // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = __umulhi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or r5 = r5 ^ __shfl_xor_sync(0xffffffffu, r4, 8); // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint32_t sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-1/kernel_bound.cl b/proto-cuda/packs-ca3-v4/v4-era-1/kernel_bound.cl index 6eb871a96..68908f345 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-1/kernel_bound.cl +++ b/proto-cuda/packs-ca3-v4/v4-era-1/kernel_bound.cl @@ -215,7 +215,7 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -231,9 +231,9 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -246,26 +246,26 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul @@ -577,7 +577,7 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = r7 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -593,9 +593,9 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -608,26 +608,26 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-1/kernel_bound.cu b/proto-cuda/packs-ca3-v4/v4-era-1/kernel_bound.cu index fb11f746d..670df8467 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-1/kernel_bound.cu +++ b/proto-cuda/packs-ca3-v4/v4-era-1/kernel_bound.cu @@ -48,7 +48,7 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = r7 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load r6 = r6 ^ __shfl_xor_sync(0xffffffffu, r5, 16); // 14 shfl r3 = r3 ^ __shfl_xor_sync(0xffffffffu, r5, 1); // 15 shfl r2 = r2 | r7; // 16 or @@ -64,9 +64,9 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -79,26 +79,26 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add r7 = r7 ^ __shfl_xor_sync(0xffffffffu, r3, 4); // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = __umulhi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add r0 = r0 ^ __shfl_xor_sync(0xffffffffu, r7, 4); // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = __umulhi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or r5 = r5 ^ __shfl_xor_sync(0xffffffffu, r4, 8); // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint32_t sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-1/program.h b/proto-cuda/packs-ca3-v4/v4-era-1/program.h index 9e205a43b..763a39e52 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-1/program.h +++ b/proto-cuda/packs-ca3-v4/v4-era-1/program.h @@ -15,7 +15,7 @@ #define IGNEUM_SEED_BYTES_HEX "edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07" #define IGNEUM_GENERATOR 4 #define IGNEUM_PROGRAM_ATTEMPT 0 -#define IGNEUM_PROGRAM_ID 0xc120d7963abdcd96ull +#define IGNEUM_PROGRAM_ID 0x1a4230699a6b9c60ull #define IGNEUM_DAY_STRING "bytes:69676e65756d2d6461792ffa50000000000000" #define IGNEUM_DAY_BYTES_HEX "69676e65756d2d6461792ffa50000000000000" #define IGNEUM_DAY0 0xceed56d7u @@ -32,6 +32,7 @@ // latency-shadow block (IGNEUM_SHADOW_INSTRS x IGNEUM_SHADOW_REPS per iteration); a worker that runs another class // refuses this pack, and a job line names the class it wants (class=v4 era=). #define IGNEUM_PROGRAM_CLASS "v4" +#define IGNEUM_PROGRAM_SUBVERSION 1 #define IGNEUM_ERA_SEED_HEX "ff87ad96a1b53f367a95d5ca123bab64211bd9aa57fc7ad3c5e2d496c20138d4" // Class v3 construction (Counter ASIC 2.0, 5 October 2026, docs/plans/mixer-x4.md): version 2 loads; the dataset item // derivation applies the mixer IGNEUM_MIXER_MULT times per round (memhard.h), and the cache follows the growth rule. diff --git a/proto-cuda/packs-ca3-v4/v4-era-1/program.json b/proto-cuda/packs-ca3-v4/v4-era-1/program.json index 8c26983fd..69b9adf80 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-1/program.json +++ b/proto-cuda/packs-ca3-v4/v4-era-1/program.json @@ -2,7 +2,7 @@ "format": "igneum-program-pack-3", "generator": 4, "attempt": 0, - "program_id": "0xc120d7963abdcd96", + "program_id": "0x1a4230699a6b9c60", "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", "dataset_mode": "memory-hard", "seed": "igneum-epoch/edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07/day/69676e65756d2d6461792ffa50000000000000", @@ -16,6 +16,7 @@ "instruction_count": 64, "loads_per_hash": 128, "program_class": "v4", + "sub_version": 1, "era_seed_bytes": "ff87ad96a1b53f367a95d5ca123bab64211bd9aa57fc7ad3c5e2d496c20138d4", "load_class": "mx8-era676a17fc+sh256x27", "mixer_mult": 8, @@ -350,7 +351,7 @@ {"i": 10, "op": "load", "dst": 7, "src": 0, "src2": 2, "imm": "0xe075297c", "imm2": "0x5779c44c", "rot": 10, "bit": 22, "mask": 2, "width": 1, "win": 1, "off": 1}, {"i": 11, "op": "load", "dst": 7, "src": 1, "src2": 6, "imm": "0x65aa4311", "imm2": "0x4fe48ea9", "rot": 15, "bit": 9, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 12, "op": "mul", "dst": 5, "src": 4, "src2": 2, "imm": "0x1383d3ad", "imm2": "0xf3094b29", "rot": 8, "bit": 9, "mask": 2, "width": 1, "win": 0, "off": 0}, - {"i": 13, "op": "load", "dst": 7, "src": 6, "src2": 2, "imm": "0xed8a496f", "imm2": "0x3072c3c6", "rot": 28, "bit": 19, "mask": 8, "width": 1, "win": 1, "off": 1}, + {"i": 13, "op": "load", "dst": 7, "src": 3, "src2": 2, "imm": "0xed8a496f", "imm2": "0x3072c3c6", "rot": 28, "bit": 19, "mask": 8, "width": 1, "win": 1, "off": 1}, {"i": 14, "op": "shfl", "dst": 6, "src": 5, "src2": 0, "imm": "0x8b965b57", "imm2": "0xcfeca6c1", "rot": 12, "bit": 27, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 15, "op": "shfl", "dst": 3, "src": 5, "src2": 3, "imm": "0x877c7586", "imm2": "0xa9cb2a03", "rot": 2, "bit": 29, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 16, "op": "or", "dst": 2, "src": 7, "src2": 3, "imm": "0xb740221a", "imm2": "0x89d38d6d", "rot": 6, "bit": 31, "mask": 8, "width": 1, "win": 0, "off": 0}, @@ -366,9 +367,9 @@ {"i": 26, "op": "rotr", "dst": 7, "src": 0, "src2": 1, "imm": "0xd89ef484", "imm2": "0x20be3846", "rot": 12, "bit": 9, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 27, "op": "mad", "dst": 4, "src": 5, "src2": 7, "imm": "0xb48420ae", "imm2": "0x3d1f2485", "rot": 14, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 28, "op": "mad", "dst": 3, "src": 2, "src2": 4, "imm": "0xc5c46d76", "imm2": "0x700044b5", "rot": 22, "bit": 10, "mask": 2, "width": 1, "win": 0, "off": 0}, - {"i": 29, "op": "load", "dst": 1, "src": 4, "src2": 3, "imm": "0x0fbaf177", "imm2": "0xfff4f2ed", "rot": 20, "bit": 31, "mask": 2, "width": 1, "win": 0, "off": 0}, + {"i": 29, "op": "load", "dst": 1, "src": 6, "src2": 3, "imm": "0x0fbaf177", "imm2": "0xfff4f2ed", "rot": 20, "bit": 31, "mask": 2, "width": 1, "win": 0, "off": 0}, {"i": 30, "op": "load", "dst": 2, "src": 3, "src2": 0, "imm": "0xe90eb2e5", "imm2": "0xb0f9eb79", "rot": 27, "bit": 14, "mask": 4, "width": 1, "win": 2, "off": 2}, - {"i": 31, "op": "load", "dst": 1, "src": 5, "src2": 2, "imm": "0x97ba3fc3", "imm2": "0x7894e657", "rot": 3, "bit": 30, "mask": 16, "width": 1, "win": 1, "off": 1}, + {"i": 31, "op": "load", "dst": 1, "src": 4, "src2": 2, "imm": "0x97ba3fc3", "imm2": "0x7894e657", "rot": 3, "bit": 30, "mask": 16, "width": 1, "win": 1, "off": 1}, {"i": 32, "op": "add", "dst": 7, "src": 2, "src2": 7, "imm": "0x070888a8", "imm2": "0xe403240e", "rot": 2, "bit": 16, "mask": 2, "width": 1, "win": 0, "off": 0}, {"i": 33, "op": "add", "dst": 2, "src": 0, "src2": 5, "imm": "0xf2e46d55", "imm2": "0x29701828", "rot": 31, "bit": 28, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 34, "op": "add", "dst": 2, "src": 3, "src2": 0, "imm": "0x58f75b87", "imm2": "0x343b7aee", "rot": 12, "bit": 14, "mask": 4, "width": 1, "win": 0, "off": 0}, @@ -381,25 +382,25 @@ {"i": 41, "op": "sub", "dst": 7, "src": 0, "src2": 2, "imm": "0x0daf96ea", "imm2": "0x36f37be1", "rot": 5, "bit": 0, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 42, "op": "add", "dst": 4, "src": 3, "src2": 6, "imm": "0x6ced15b7", "imm2": "0x6df7aed4", "rot": 19, "bit": 4, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 43, "op": "shfl", "dst": 7, "src": 3, "src2": 5, "imm": "0x8ace05f3", "imm2": "0xd378ec12", "rot": 23, "bit": 10, "mask": 4, "width": 1, "win": 0, "off": 0}, - {"i": 44, "op": "load", "dst": 0, "src": 7, "src2": 4, "imm": "0xb0607786", "imm2": "0xc4acabbc", "rot": 13, "bit": 7, "mask": 16, "width": 1, "win": 1, "off": 1}, + {"i": 44, "op": "load", "dst": 0, "src": 2, "src2": 4, "imm": "0xb0607786", "imm2": "0xc4acabbc", "rot": 13, "bit": 7, "mask": 16, "width": 1, "win": 1, "off": 1}, {"i": 45, "op": "add", "dst": 1, "src": 6, "src2": 5, "imm": "0xe09f54e9", "imm2": "0x83e825bf", "rot": 23, "bit": 14, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 46, "op": "load", "dst": 3, "src": 1, "src2": 0, "imm": "0x63cc1e4e", "imm2": "0xa1be8118", "rot": 12, "bit": 6, "mask": 2, "width": 1, "win": 2, "off": 0}, - {"i": 47, "op": "load", "dst": 6, "src": 3, "src2": 7, "imm": "0x353f1d79", "imm2": "0x3b2e7456", "rot": 18, "bit": 18, "mask": 1, "width": 1, "win": 0, "off": 0}, + {"i": 46, "op": "load", "dst": 3, "src": 0, "src2": 0, "imm": "0x63cc1e4e", "imm2": "0xa1be8118", "rot": 12, "bit": 6, "mask": 2, "width": 1, "win": 2, "off": 0}, + {"i": 47, "op": "load", "dst": 6, "src": 4, "src2": 7, "imm": "0x353f1d79", "imm2": "0x3b2e7456", "rot": 18, "bit": 18, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 48, "op": "mulhi", "dst": 4, "src": 2, "src2": 7, "imm": "0x00d8a3cd", "imm2": "0x231866d2", "rot": 21, "bit": 20, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 49, "op": "add", "dst": 5, "src": 0, "src2": 2, "imm": "0xa8bae6df", "imm2": "0xf572bdb9", "rot": 14, "bit": 7, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 50, "op": "shfl", "dst": 0, "src": 7, "src2": 7, "imm": "0x81ef22e1", "imm2": "0x74438fc5", "rot": 28, "bit": 18, "mask": 4, "width": 1, "win": 0, "off": 0}, {"i": 51, "op": "add", "dst": 6, "src": 0, "src2": 6, "imm": "0x383b9260", "imm2": "0x11e17c61", "rot": 12, "bit": 19, "mask": 16, "width": 1, "win": 0, "off": 0}, - {"i": 52, "op": "load", "dst": 5, "src": 2, "src2": 2, "imm": "0xfb84f451", "imm2": "0x11cd863e", "rot": 21, "bit": 20, "mask": 8, "width": 1, "win": 0, "off": 0}, + {"i": 52, "op": "load", "dst": 5, "src": 0, "src2": 2, "imm": "0xfb84f451", "imm2": "0x11cd863e", "rot": 21, "bit": 20, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 53, "op": "rotl", "dst": 6, "src": 5, "src2": 4, "imm": "0xb1a7db6b", "imm2": "0x76686b9b", "rot": 12, "bit": 4, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 54, "op": "rotl", "dst": 3, "src": 6, "src2": 3, "imm": "0x6f981f52", "imm2": "0xd99aeba2", "rot": 12, "bit": 27, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 55, "op": "add", "dst": 2, "src": 1, "src2": 2, "imm": "0xac6be8e3", "imm2": "0x18d67dbb", "rot": 26, "bit": 10, "mask": 4, "width": 1, "win": 0, "off": 0}, - {"i": 56, "op": "load", "dst": 1, "src": 4, "src2": 0, "imm": "0x7e7f6a00", "imm2": "0x6f0747da", "rot": 25, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, + {"i": 56, "op": "load", "dst": 1, "src": 6, "src2": 0, "imm": "0x7e7f6a00", "imm2": "0x6f0747da", "rot": 25, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 57, "op": "add", "dst": 5, "src": 0, "src2": 4, "imm": "0xf03673fe", "imm2": "0xa75cd60d", "rot": 16, "bit": 12, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 58, "op": "load", "dst": 5, "src": 0, "src2": 2, "imm": "0x227f94a6", "imm2": "0x0e8344f9", "rot": 20, "bit": 10, "mask": 2, "width": 1, "win": 2, "off": 0}, + {"i": 58, "op": "load", "dst": 5, "src": 7, "src2": 2, "imm": "0x227f94a6", "imm2": "0x0e8344f9", "rot": 20, "bit": 10, "mask": 2, "width": 1, "win": 2, "off": 0}, {"i": 59, "op": "add", "dst": 1, "src": 4, "src2": 3, "imm": "0xdecd4794", "imm2": "0x8dfb96bb", "rot": 21, "bit": 7, "mask": 4, "width": 1, "win": 0, "off": 0}, {"i": 60, "op": "mulhi", "dst": 3, "src": 2, "src2": 2, "imm": "0x0dd268e0", "imm2": "0x53034ca9", "rot": 1, "bit": 8, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 61, "op": "or", "dst": 6, "src": 4, "src2": 7, "imm": "0x3a45a321", "imm2": "0x9bc59a5f", "rot": 25, "bit": 11, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 62, "op": "shfl", "dst": 5, "src": 4, "src2": 2, "imm": "0x8f229cc1", "imm2": "0xcaac64a2", "rot": 17, "bit": 13, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 63, "op": "load", "dst": 3, "src": 6, "src2": 6, "imm": "0xb2574178", "imm2": "0xcbcc798d", "rot": 28, "bit": 0, "mask": 16, "width": 1, "win": 1, "off": 1} + {"i": 63, "op": "load", "dst": 3, "src": 2, "src2": 6, "imm": "0xb2574178", "imm2": "0xcbcc798d", "rot": 28, "bit": 0, "mask": 16, "width": 1, "win": 1, "off": 1} ] } diff --git a/proto-cuda/packs-ca3-v4/v4-era-1/program.metal b/proto-cuda/packs-ca3-v4/v4-era-1/program.metal index 0ff6abf37..c45c6db8b 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-1/program.metal +++ b/proto-cuda/packs-ca3-v4/v4-era-1/program.metal @@ -51,7 +51,7 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = r7 ^ dataset[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 10 r7 = r7 ^ dataset[((rotl_imm(r1 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 11 r5 = r5 * r4; // 12 - r7 = r7 ^ dataset[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 + r7 = r7 ^ dataset[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 r6 = r6 ^ simd_shuffle_xor(r5, (ushort)16); // 14 r3 = r3 ^ simd_shuffle_xor(r5, (ushort)1); // 15 r2 = r2 | r7; // 16 @@ -67,9 +67,9 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = rotr_var(r7, r0); // 26 r4 = r5 * r7 + r4; // 27 r3 = r2 * r4 + r3; // 28 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 r2 = r2 ^ dataset[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x08000000u) & MASK]; // 30 - r1 = r1 ^ dataset[((rotl_imm(r5 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 + r1 = r1 ^ dataset[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 r7 = r7 + r2 + select(0x070888a8u, 0xe403240eu, ((sel >> 16u) & 1u) != 0u); // 32 r2 = r2 + r0 + select(0xf2e46d55u, 0x29701828u, ((sel >> 28u) & 1u) != 0u); // 33 r2 = r2 + r3 + select(0x58f75b87u, 0x343b7aeeu, ((sel >> 14u) & 1u) != 0u); // 34 @@ -82,26 +82,26 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = r7 - r0; // 41 r4 = r4 + r3 + select(0x6ced15b7u, 0x6df7aed4u, ((sel >> 4u) & 1u) != 0u); // 42 r7 = r7 ^ simd_shuffle_xor(r3, (ushort)4); // 43 - r0 = r0 ^ dataset[((rotl_imm(r7 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 + r0 = r0 ^ dataset[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 r1 = r1 + r6 + select(0xe09f54e9u, 0x83e825bfu, ((sel >> 14u) & 1u) != 0u); // 45 - r3 = r3 ^ dataset[((rotl_imm(r1 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 - r6 = r6 ^ dataset[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 + r3 = r3 ^ dataset[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 + r6 = r6 ^ dataset[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 r4 = mulhi(r4, r2); // 48 r5 = r5 + r0 + select(0xa8bae6dfu, 0xf572bdb9u, ((sel >> 7u) & 1u) != 0u); // 49 r0 = r0 ^ simd_shuffle_xor(r7, (ushort)4); // 50 r6 = r6 + r0 + select(0x383b9260u, 0x11e17c61u, ((sel >> 19u) & 1u) != 0u); // 51 - r5 = r5 ^ dataset[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 + r5 = r5 ^ dataset[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 r6 = rotl_imm(r6, 12u); // 53 r3 = rotl_imm(r3, 12u); // 54 r2 = r2 + r1 + select(0xac6be8e3u, 0x18d67dbbu, ((sel >> 10u) & 1u) != 0u); // 55 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 r5 = r5 + r0 + select(0xf03673feu, 0xa75cd60du, ((sel >> 12u) & 1u) != 0u); // 57 - r5 = r5 ^ dataset[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 + r5 = r5 ^ dataset[((rotl_imm(r7 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 r1 = r1 + r4 + select(0xdecd4794u, 0x8dfb96bbu, ((sel >> 7u) & 1u) != 0u); // 59 r3 = mulhi(r3, r2); // 60 r6 = r6 | r4; // 61 r5 = r5 ^ simd_shuffle_xor(r4, (ushort)8); // 62 - r3 = r3 ^ dataset[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 + r3 = r3 ^ dataset[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-1/program_bound.metal b/proto-cuda/packs-ca3-v4/v4-era-1/program_bound.metal index e315d069f..40fff038d 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-1/program_bound.metal +++ b/proto-cuda/packs-ca3-v4/v4-era-1/program_bound.metal @@ -53,7 +53,7 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = r7 ^ dataset[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 10 r7 = r7 ^ dataset[((rotl_imm(r1 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 11 r5 = r5 * r4; // 12 - r7 = r7 ^ dataset[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 + r7 = r7 ^ dataset[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 r6 = r6 ^ simd_shuffle_xor(r5, (ushort)16); // 14 r3 = r3 ^ simd_shuffle_xor(r5, (ushort)1); // 15 r2 = r2 | r7; // 16 @@ -69,9 +69,9 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = rotr_var(r7, r0); // 26 r4 = r5 * r7 + r4; // 27 r3 = r2 * r4 + r3; // 28 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 r2 = r2 ^ dataset[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x08000000u) & MASK]; // 30 - r1 = r1 ^ dataset[((rotl_imm(r5 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 + r1 = r1 ^ dataset[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 r7 = r7 + r2 + select(0x070888a8u, 0xe403240eu, ((sel >> 16u) & 1u) != 0u); // 32 r2 = r2 + r0 + select(0xf2e46d55u, 0x29701828u, ((sel >> 28u) & 1u) != 0u); // 33 r2 = r2 + r3 + select(0x58f75b87u, 0x343b7aeeu, ((sel >> 14u) & 1u) != 0u); // 34 @@ -84,26 +84,26 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = r7 - r0; // 41 r4 = r4 + r3 + select(0x6ced15b7u, 0x6df7aed4u, ((sel >> 4u) & 1u) != 0u); // 42 r7 = r7 ^ simd_shuffle_xor(r3, (ushort)4); // 43 - r0 = r0 ^ dataset[((rotl_imm(r7 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 + r0 = r0 ^ dataset[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 r1 = r1 + r6 + select(0xe09f54e9u, 0x83e825bfu, ((sel >> 14u) & 1u) != 0u); // 45 - r3 = r3 ^ dataset[((rotl_imm(r1 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 - r6 = r6 ^ dataset[((rotl_imm(r3 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 + r3 = r3 ^ dataset[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 + r6 = r6 ^ dataset[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 r4 = mulhi(r4, r2); // 48 r5 = r5 + r0 + select(0xa8bae6dfu, 0xf572bdb9u, ((sel >> 7u) & 1u) != 0u); // 49 r0 = r0 ^ simd_shuffle_xor(r7, (ushort)4); // 50 r6 = r6 + r0 + select(0x383b9260u, 0x11e17c61u, ((sel >> 19u) & 1u) != 0u); // 51 - r5 = r5 ^ dataset[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 + r5 = r5 ^ dataset[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 r6 = rotl_imm(r6, 12u); // 53 r3 = rotl_imm(r3, 12u); // 54 r2 = r2 + r1 + select(0xac6be8e3u, 0x18d67dbbu, ((sel >> 10u) & 1u) != 0u); // 55 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 r5 = r5 + r0 + select(0xf03673feu, 0xa75cd60du, ((sel >> 12u) & 1u) != 0u); // 57 - r5 = r5 ^ dataset[((rotl_imm(r0 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 + r5 = r5 ^ dataset[((rotl_imm(r7 * 0xb2a9d70du, 6u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 r1 = r1 + r4 + select(0xdecd4794u, 0x8dfb96bbu, ((sel >> 7u) & 1u) != 0u); // 59 r3 = mulhi(r3, r2); // 60 r6 = r6 | r4; // 61 r5 = r5 ^ simd_shuffle_xor(r4, (ushort)8); // 62 - r3 = r3 ^ dataset[((rotl_imm(r6 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 + r3 = r3 ^ dataset[((rotl_imm(r2 * 0xb2a9d70du, 6u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-1/vectors.h b/proto-cuda/packs-ca3-v4/v4-era-1/vectors.h index 5a0861fe4..815058e04 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-1/vectors.h +++ b/proto-cuda/packs-ca3-v4/v4-era-1/vectors.h @@ -11,22 +11,22 @@ static const uint32_t IGNEUM_VEC_BASE[IGNEUM_VEC_WARPS] = { 0u, 4096u, 1000000u }; static const uint64_t IGNEUM_VEC_OUT[IGNEUM_VEC_WARPS][32] = { { // base nonce 0 - 0xbd25be585e9f483aull, 0x42415dc1008bc167ull, 0x808b481a2ba0ee31ull, 0x9482f0d11a102aacull, 0xc8782e4fbd38f71dull, 0xbef02f6193c78dfeull, 0xf790061d0baf0ee2ull, 0x8df707bfebbb5266ull, - 0xd47ebe3648c32aa3ull, 0x8e337e0d74000f5full, 0xa2c1dfcf9bfd9b2bull, 0xbdc82bdf98d937e5ull, 0x6d8c6d41b0556cf1ull, 0x170c6a842bd29f8cull, 0x7cbb60763f8211e9ull, 0x091ae60c8df77ff1ull, - 0x85a309968b859efaull, 0xf917cf6f7e727926ull, 0xfa93a9f444db6381ull, 0x7ce089b8173f1af8ull, 0xdd4a1af297ec79f9ull, 0x3a1b907f25b76559ull, 0x5961a512eae86334ull, 0xf424423457ea3765ull, - 0x29c91de1b47e5cc1ull, 0x42dbeea9049ee394ull, 0xf1e5b7db42c969fcull, 0x05bd552362270025ull, 0xcc9d52e46c34e222ull, 0xea7a8dd12d9b5215ull, 0xb3767e4e3995df68ull, 0xe8ef919d038d88c5ull + 0xd71a9c938925ffc5ull, 0xe2068ed9973175b1ull, 0x53bf04769201d336ull, 0x692097e2c3a02e1aull, 0x4acc97ef5dd45cf2ull, 0x7aacd03e92bbd42bull, 0xcccef5441db823eeull, 0xa72fe9be1bf16bd1ull, + 0xdc1f90c1e2b4c1e0ull, 0x1225647be8a9ebe9ull, 0x13b68a6a501bbc8eull, 0xdf37aa95d989e077ull, 0x564bd0cc60c1f480ull, 0x2f550067c5c93d85ull, 0x13967e860eac50a2ull, 0xec28d64f290f0469ull, + 0x5e82470b3e5c1382ull, 0xeb810b7c8ba35882ull, 0x02dcbd3398745ef5ull, 0x42f89421a1bc4315ull, 0x8759dd657c5fa7aaull, 0x732f1eb6bbcc89dcull, 0xd603786d926cf2e5ull, 0xd3dbea210ef741b0ull, + 0x5acb31140b361861ull, 0x443866341fdb192dull, 0x3ad20321f5fc9739ull, 0x4c80c5b3d7ccf241ull, 0x31a80291eb23d585ull, 0xcab09df2c82b4800ull, 0x1f0b11eee15db929ull, 0x9dffa7b7c2cd0ddfull }, { // base nonce 4096 - 0x3f56bb1287c456ceull, 0x82ea484e42cdc735ull, 0xf23918f44eb4b16bull, 0x35fa0e1461907922ull, 0x8f5ce24039e15677ull, 0xacd1c99175c3d7ecull, 0xd178a7b614ed8146ull, 0x47f918cfd5054696ull, - 0xc563739e8a6f80edull, 0x9e60aeeb9ca06c4eull, 0x857d4b51b3d98e10ull, 0xfaf2d0a4f79095ebull, 0x0b71b8fc789ac2ecull, 0x43a232348714b127ull, 0x285acfdac594da71ull, 0x3a7b88c3ce2b8072ull, - 0xa42762355d7a0a94ull, 0x12a5093c741ccfabull, 0x1c9132a046e1ca9full, 0xe88f10a778a1aabeull, 0xb54049c213699dc2ull, 0x3bb616b0bffda6b0ull, 0x2d2f0a25b94ecb3eull, 0x38c41e74a75e5921ull, - 0x631515adfa1edd4full, 0x80a01b3952ea1c95ull, 0x00afd63a2d4afcc2ull, 0x00fa1532253d3ea2ull, 0x76a824e91f58ad63ull, 0x15f3aa3ce283008bull, 0x8c4593b01e90cf5bull, 0x9b772227f63f5c1dull + 0xfc3d10a85cc5ce73ull, 0xd257f42d9fffc2a7ull, 0xb0b0065f25077172ull, 0x18b19b153e1e4240ull, 0x73bed5b1d3a47f4eull, 0x53ba261c0bfb9e5full, 0xedce185f5aaa1ec9ull, 0x9682fe851d8a7a1cull, + 0x594f71d3527835ecull, 0xb89b599b249bb490ull, 0xfca03d106efbf8bbull, 0xdbaba87c5269d5a3ull, 0x71f07379c3c2cf84ull, 0xb1605dc3784fac57ull, 0xfe5279a927fcbaa9ull, 0xa432c36395ae21e3ull, + 0x96760abd985c2a8dull, 0xafdb18def7e83f04ull, 0xf8b684dd887be464ull, 0x0409eb13a8c9b719ull, 0x3596c63a5bc1e647ull, 0x968e62e10bd4edc2ull, 0xf114d327832cdb98ull, 0xcf3f82e413c86937ull, + 0xd03e55ac5b486972ull, 0x8a89b8420ef05ca0ull, 0x789fd563db56779dull, 0x6d421d92c32f5817ull, 0x50f1c0278d793854ull, 0xac0e75d4e1d570a4ull, 0x183ef024ef55febcull, 0x7c43d95124150b23ull }, { // base nonce 1000000 - 0xffc8d9c97d88e620ull, 0x1d7ee1acd496f181ull, 0xdff243b4a319c51aull, 0x1fd170c09f160fe3ull, 0xf67e0b69767852b0ull, 0x472912b4be99cdcdull, 0x5fad91fd832b3b61ull, 0xa5c9c1359d6aa74eull, - 0x6954523bb04ee9afull, 0xb048141f79726eb7ull, 0xe0c3182a16efb402ull, 0x39a09b038893b946ull, 0x2755e09f37d5efe2ull, 0x1e3338adcbbbaa5eull, 0x9036ec64d8816dbeull, 0xb6f6ffa4a73b774eull, - 0x514532b888255135ull, 0xc201f3dad4148ea0ull, 0x48cbcb6a4c9ba357ull, 0xf199b90384342df7ull, 0x9657e131356782d8ull, 0x5aa6f64a15b174f9ull, 0x6442f6fc30cd2f6cull, 0xdbd16862aff1b9b5ull, - 0xf62576ff01a1e6d6ull, 0xc3f654831ee4d08full, 0xbbe065fb2695bdffull, 0x1b9851d988309c48ull, 0x8474d21940bcc812ull, 0xa90030c199ad1c6bull, 0xb0752b8985cb7723ull, 0x2e5049d028c84c43ull + 0x0c0fd4bf3ba9ebd8ull, 0xa3c8d78474ec5dcfull, 0x28333f922209fad1ull, 0x0e15b3e0995e2ca9ull, 0xb0967681c36eb5deull, 0xbbc1e57ae64565a2ull, 0x6a91b4a3a6edcbb9ull, 0x3509e92f541acba2ull, + 0x5fadee87d1501340ull, 0x35e27ab61631cb03ull, 0x22022df945199137ull, 0x71b5c4d85fe4ee45ull, 0xf24af5e76a9b1bb9ull, 0xf6990011b3789453ull, 0xe6baa4d5afe8eeb3ull, 0xe04f6cee293a3f16ull, + 0x2becc5d55390595dull, 0x3f20d8bc7d2be74cull, 0xf37637a3a86909ffull, 0x399ff1a872b187eaull, 0x53d02cfc83562378ull, 0x0bf3ca7e0407b8daull, 0x5f8604b7f2c64f82ull, 0xd28865d9c1680184ull, + 0x88b8d07d2efd810cull, 0xa5f681e6857afe09ull, 0x3cb93a309b4885c6ull, 0x924ff9a6c6cecc50ull, 0x74fe2925e0abee88ull, 0x434871c5b84af89dull, 0x6ecf62d69b8eb98full, 0xdb4cdab409bc66ecull } }; diff --git a/proto-cuda/packs-ca3-v4/v4-era-1/vectors.json b/proto-cuda/packs-ca3-v4/v4-era-1/vectors.json index d3d40ed6a..967372ed2 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-1/vectors.json +++ b/proto-cuda/packs-ca3-v4/v4-era-1/vectors.json @@ -8,22 +8,22 @@ "source": "igneum-pow (Rust) CPU interpreter, generator v4, memory-hard dataset", "warps": [ {"base_nonce": 0, "expected": [ - "0xbd25be585e9f483a", "0x42415dc1008bc167", "0x808b481a2ba0ee31", "0x9482f0d11a102aac", "0xc8782e4fbd38f71d", "0xbef02f6193c78dfe", "0xf790061d0baf0ee2", "0x8df707bfebbb5266", - "0xd47ebe3648c32aa3", "0x8e337e0d74000f5f", "0xa2c1dfcf9bfd9b2b", "0xbdc82bdf98d937e5", "0x6d8c6d41b0556cf1", "0x170c6a842bd29f8c", "0x7cbb60763f8211e9", "0x091ae60c8df77ff1", - "0x85a309968b859efa", "0xf917cf6f7e727926", "0xfa93a9f444db6381", "0x7ce089b8173f1af8", "0xdd4a1af297ec79f9", "0x3a1b907f25b76559", "0x5961a512eae86334", "0xf424423457ea3765", - "0x29c91de1b47e5cc1", "0x42dbeea9049ee394", "0xf1e5b7db42c969fc", "0x05bd552362270025", "0xcc9d52e46c34e222", "0xea7a8dd12d9b5215", "0xb3767e4e3995df68", "0xe8ef919d038d88c5" + "0xd71a9c938925ffc5", "0xe2068ed9973175b1", "0x53bf04769201d336", "0x692097e2c3a02e1a", "0x4acc97ef5dd45cf2", "0x7aacd03e92bbd42b", "0xcccef5441db823ee", "0xa72fe9be1bf16bd1", + "0xdc1f90c1e2b4c1e0", "0x1225647be8a9ebe9", "0x13b68a6a501bbc8e", "0xdf37aa95d989e077", "0x564bd0cc60c1f480", "0x2f550067c5c93d85", "0x13967e860eac50a2", "0xec28d64f290f0469", + "0x5e82470b3e5c1382", "0xeb810b7c8ba35882", "0x02dcbd3398745ef5", "0x42f89421a1bc4315", "0x8759dd657c5fa7aa", "0x732f1eb6bbcc89dc", "0xd603786d926cf2e5", "0xd3dbea210ef741b0", + "0x5acb31140b361861", "0x443866341fdb192d", "0x3ad20321f5fc9739", "0x4c80c5b3d7ccf241", "0x31a80291eb23d585", "0xcab09df2c82b4800", "0x1f0b11eee15db929", "0x9dffa7b7c2cd0ddf" ]}, {"base_nonce": 4096, "expected": [ - "0x3f56bb1287c456ce", "0x82ea484e42cdc735", "0xf23918f44eb4b16b", "0x35fa0e1461907922", "0x8f5ce24039e15677", "0xacd1c99175c3d7ec", "0xd178a7b614ed8146", "0x47f918cfd5054696", - "0xc563739e8a6f80ed", "0x9e60aeeb9ca06c4e", "0x857d4b51b3d98e10", "0xfaf2d0a4f79095eb", "0x0b71b8fc789ac2ec", "0x43a232348714b127", "0x285acfdac594da71", "0x3a7b88c3ce2b8072", - "0xa42762355d7a0a94", "0x12a5093c741ccfab", "0x1c9132a046e1ca9f", "0xe88f10a778a1aabe", "0xb54049c213699dc2", "0x3bb616b0bffda6b0", "0x2d2f0a25b94ecb3e", "0x38c41e74a75e5921", - "0x631515adfa1edd4f", "0x80a01b3952ea1c95", "0x00afd63a2d4afcc2", "0x00fa1532253d3ea2", "0x76a824e91f58ad63", "0x15f3aa3ce283008b", "0x8c4593b01e90cf5b", "0x9b772227f63f5c1d" + "0xfc3d10a85cc5ce73", "0xd257f42d9fffc2a7", "0xb0b0065f25077172", "0x18b19b153e1e4240", "0x73bed5b1d3a47f4e", "0x53ba261c0bfb9e5f", "0xedce185f5aaa1ec9", "0x9682fe851d8a7a1c", + "0x594f71d3527835ec", "0xb89b599b249bb490", "0xfca03d106efbf8bb", "0xdbaba87c5269d5a3", "0x71f07379c3c2cf84", "0xb1605dc3784fac57", "0xfe5279a927fcbaa9", "0xa432c36395ae21e3", + "0x96760abd985c2a8d", "0xafdb18def7e83f04", "0xf8b684dd887be464", "0x0409eb13a8c9b719", "0x3596c63a5bc1e647", "0x968e62e10bd4edc2", "0xf114d327832cdb98", "0xcf3f82e413c86937", + "0xd03e55ac5b486972", "0x8a89b8420ef05ca0", "0x789fd563db56779d", "0x6d421d92c32f5817", "0x50f1c0278d793854", "0xac0e75d4e1d570a4", "0x183ef024ef55febc", "0x7c43d95124150b23" ]}, {"base_nonce": 1000000, "expected": [ - "0xffc8d9c97d88e620", "0x1d7ee1acd496f181", "0xdff243b4a319c51a", "0x1fd170c09f160fe3", "0xf67e0b69767852b0", "0x472912b4be99cdcd", "0x5fad91fd832b3b61", "0xa5c9c1359d6aa74e", - "0x6954523bb04ee9af", "0xb048141f79726eb7", "0xe0c3182a16efb402", "0x39a09b038893b946", "0x2755e09f37d5efe2", "0x1e3338adcbbbaa5e", "0x9036ec64d8816dbe", "0xb6f6ffa4a73b774e", - "0x514532b888255135", "0xc201f3dad4148ea0", "0x48cbcb6a4c9ba357", "0xf199b90384342df7", "0x9657e131356782d8", "0x5aa6f64a15b174f9", "0x6442f6fc30cd2f6c", "0xdbd16862aff1b9b5", - "0xf62576ff01a1e6d6", "0xc3f654831ee4d08f", "0xbbe065fb2695bdff", "0x1b9851d988309c48", "0x8474d21940bcc812", "0xa90030c199ad1c6b", "0xb0752b8985cb7723", "0x2e5049d028c84c43" + "0x0c0fd4bf3ba9ebd8", "0xa3c8d78474ec5dcf", "0x28333f922209fad1", "0x0e15b3e0995e2ca9", "0xb0967681c36eb5de", "0xbbc1e57ae64565a2", "0x6a91b4a3a6edcbb9", "0x3509e92f541acba2", + "0x5fadee87d1501340", "0x35e27ab61631cb03", "0x22022df945199137", "0x71b5c4d85fe4ee45", "0xf24af5e76a9b1bb9", "0xf6990011b3789453", "0xe6baa4d5afe8eeb3", "0xe04f6cee293a3f16", + "0x2becc5d55390595d", "0x3f20d8bc7d2be74c", "0xf37637a3a86909ff", "0x399ff1a872b187ea", "0x53d02cfc83562378", "0x0bf3ca7e0407b8da", "0x5f8604b7f2c64f82", "0xd28865d9c1680184", + "0x88b8d07d2efd810c", "0xa5f681e6857afe09", "0x3cb93a309b4885c6", "0x924ff9a6c6cecc50", "0x74fe2925e0abee88", "0x434871c5b84af89d", "0x6ecf62d69b8eb98f", "0xdb4cdab409bc66ec" ]} ], "dataset_head": ["0x19c6837f", "0xbd3f6aed", "0xdf3adfb8", "0xb8bede0d", "0x827e59af", "0x60286061", "0x8cf592f5", "0x5d9abc1c", "0xc5f0629f", "0xc435a60e", "0x03e38ae8", "0xfadee916", "0xa85d0c39", "0xd41a5b0d", "0x4247a100", "0x3f33dc64"], diff --git a/proto-cuda/packs-ca3-v4/v4-era-2/kernel.cl b/proto-cuda/packs-ca3-v4/v4-era-2/kernel.cl index 6f8d2196e..0c7f67ab3 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-2/kernel.cl +++ b/proto-cuda/packs-ca3-v4/v4-era-2/kernel.cl @@ -215,7 +215,7 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -231,9 +231,9 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -246,26 +246,26 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-2/kernel.cu b/proto-cuda/packs-ca3-v4/v4-era-2/kernel.cu index 519c701df..b2e7c7074 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-2/kernel.cu +++ b/proto-cuda/packs-ca3-v4/v4-era-2/kernel.cu @@ -71,7 +71,7 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = r7 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load r6 = r6 ^ __shfl_xor_sync(0xffffffffu, r5, 16); // 14 shfl r3 = r3 ^ __shfl_xor_sync(0xffffffffu, r5, 1); // 15 shfl r2 = r2 | r7; // 16 or @@ -87,9 +87,9 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -102,26 +102,26 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add r7 = r7 ^ __shfl_xor_sync(0xffffffffu, r3, 4); // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = __umulhi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add r0 = r0 ^ __shfl_xor_sync(0xffffffffu, r7, 4); // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = __umulhi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or r5 = r5 ^ __shfl_xor_sync(0xffffffffu, r4, 8); // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint32_t sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-2/kernel_bound.cl b/proto-cuda/packs-ca3-v4/v4-era-2/kernel_bound.cl index 94eab846c..a0c9ff883 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-2/kernel_bound.cl +++ b/proto-cuda/packs-ca3-v4/v4-era-2/kernel_bound.cl @@ -215,7 +215,7 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -231,9 +231,9 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -246,26 +246,26 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul @@ -577,7 +577,7 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = r7 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -593,9 +593,9 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -608,26 +608,26 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-2/kernel_bound.cu b/proto-cuda/packs-ca3-v4/v4-era-2/kernel_bound.cu index 0c0e9413f..a72b6023c 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-2/kernel_bound.cu +++ b/proto-cuda/packs-ca3-v4/v4-era-2/kernel_bound.cu @@ -48,7 +48,7 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = r7 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load r6 = r6 ^ __shfl_xor_sync(0xffffffffu, r5, 16); // 14 shfl r3 = r3 ^ __shfl_xor_sync(0xffffffffu, r5, 1); // 15 shfl r2 = r2 | r7; // 16 or @@ -64,9 +64,9 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -79,26 +79,26 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add r7 = r7 ^ __shfl_xor_sync(0xffffffffu, r3, 4); // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = __umulhi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add r0 = r0 ^ __shfl_xor_sync(0xffffffffu, r7, 4); // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = __umulhi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or r5 = r5 ^ __shfl_xor_sync(0xffffffffu, r4, 8); // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint32_t sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-2/program.h b/proto-cuda/packs-ca3-v4/v4-era-2/program.h index 8a962d87e..b94334648 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-2/program.h +++ b/proto-cuda/packs-ca3-v4/v4-era-2/program.h @@ -15,7 +15,7 @@ #define IGNEUM_SEED_BYTES_HEX "edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07" #define IGNEUM_GENERATOR 4 #define IGNEUM_PROGRAM_ATTEMPT 0 -#define IGNEUM_PROGRAM_ID 0xc120d7963abdcd96ull +#define IGNEUM_PROGRAM_ID 0x1a4230699a6b9c60ull #define IGNEUM_DAY_STRING "bytes:69676e65756d2d6461792ffa50000000000000" #define IGNEUM_DAY_BYTES_HEX "69676e65756d2d6461792ffa50000000000000" #define IGNEUM_DAY0 0xceed56d7u @@ -32,6 +32,7 @@ // latency-shadow block (IGNEUM_SHADOW_INSTRS x IGNEUM_SHADOW_REPS per iteration); a worker that runs another class // refuses this pack, and a job line names the class it wants (class=v4 era=). #define IGNEUM_PROGRAM_CLASS "v4" +#define IGNEUM_PROGRAM_SUBVERSION 1 #define IGNEUM_ERA_SEED_HEX "df57136f2ad5f410e6145023090eea148c1342ccef5a5f541afa590be7e44745" // Class v3 construction (Counter ASIC 2.0, 5 October 2026, docs/plans/mixer-x4.md): version 2 loads; the dataset item // derivation applies the mixer IGNEUM_MIXER_MULT times per round (memhard.h), and the cache follows the growth rule. diff --git a/proto-cuda/packs-ca3-v4/v4-era-2/program.json b/proto-cuda/packs-ca3-v4/v4-era-2/program.json index 554430aa9..27b9483c1 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-2/program.json +++ b/proto-cuda/packs-ca3-v4/v4-era-2/program.json @@ -2,7 +2,7 @@ "format": "igneum-program-pack-3", "generator": 4, "attempt": 0, - "program_id": "0xc120d7963abdcd96", + "program_id": "0x1a4230699a6b9c60", "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", "dataset_mode": "memory-hard", "seed": "igneum-epoch/edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07/day/69676e65756d2d6461792ffa50000000000000", @@ -16,6 +16,7 @@ "instruction_count": 64, "loads_per_hash": 128, "program_class": "v4", + "sub_version": 1, "era_seed_bytes": "df57136f2ad5f410e6145023090eea148c1342ccef5a5f541afa590be7e44745", "load_class": "mx8-era843155d7+sh256x27", "mixer_mult": 8, @@ -350,7 +351,7 @@ {"i": 10, "op": "load", "dst": 7, "src": 0, "src2": 2, "imm": "0xe075297c", "imm2": "0x5779c44c", "rot": 10, "bit": 22, "mask": 2, "width": 1, "win": 1, "off": 1}, {"i": 11, "op": "load", "dst": 7, "src": 1, "src2": 6, "imm": "0x65aa4311", "imm2": "0x4fe48ea9", "rot": 15, "bit": 9, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 12, "op": "mul", "dst": 5, "src": 4, "src2": 2, "imm": "0x1383d3ad", "imm2": "0xf3094b29", "rot": 8, "bit": 9, "mask": 2, "width": 1, "win": 0, "off": 0}, - {"i": 13, "op": "load", "dst": 7, "src": 6, "src2": 2, "imm": "0xed8a496f", "imm2": "0x3072c3c6", "rot": 28, "bit": 19, "mask": 8, "width": 1, "win": 1, "off": 1}, + {"i": 13, "op": "load", "dst": 7, "src": 3, "src2": 2, "imm": "0xed8a496f", "imm2": "0x3072c3c6", "rot": 28, "bit": 19, "mask": 8, "width": 1, "win": 1, "off": 1}, {"i": 14, "op": "shfl", "dst": 6, "src": 5, "src2": 0, "imm": "0x8b965b57", "imm2": "0xcfeca6c1", "rot": 12, "bit": 27, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 15, "op": "shfl", "dst": 3, "src": 5, "src2": 3, "imm": "0x877c7586", "imm2": "0xa9cb2a03", "rot": 2, "bit": 29, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 16, "op": "or", "dst": 2, "src": 7, "src2": 3, "imm": "0xb740221a", "imm2": "0x89d38d6d", "rot": 6, "bit": 31, "mask": 8, "width": 1, "win": 0, "off": 0}, @@ -366,9 +367,9 @@ {"i": 26, "op": "rotr", "dst": 7, "src": 0, "src2": 1, "imm": "0xd89ef484", "imm2": "0x20be3846", "rot": 12, "bit": 9, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 27, "op": "mad", "dst": 4, "src": 5, "src2": 7, "imm": "0xb48420ae", "imm2": "0x3d1f2485", "rot": 14, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 28, "op": "mad", "dst": 3, "src": 2, "src2": 4, "imm": "0xc5c46d76", "imm2": "0x700044b5", "rot": 22, "bit": 10, "mask": 2, "width": 1, "win": 0, "off": 0}, - {"i": 29, "op": "load", "dst": 1, "src": 4, "src2": 3, "imm": "0x0fbaf177", "imm2": "0xfff4f2ed", "rot": 20, "bit": 31, "mask": 2, "width": 1, "win": 0, "off": 0}, + {"i": 29, "op": "load", "dst": 1, "src": 6, "src2": 3, "imm": "0x0fbaf177", "imm2": "0xfff4f2ed", "rot": 20, "bit": 31, "mask": 2, "width": 1, "win": 0, "off": 0}, {"i": 30, "op": "load", "dst": 2, "src": 3, "src2": 0, "imm": "0xe90eb2e5", "imm2": "0xb0f9eb79", "rot": 27, "bit": 14, "mask": 4, "width": 1, "win": 2, "off": 2}, - {"i": 31, "op": "load", "dst": 1, "src": 5, "src2": 2, "imm": "0x97ba3fc3", "imm2": "0x7894e657", "rot": 3, "bit": 30, "mask": 16, "width": 1, "win": 1, "off": 1}, + {"i": 31, "op": "load", "dst": 1, "src": 4, "src2": 2, "imm": "0x97ba3fc3", "imm2": "0x7894e657", "rot": 3, "bit": 30, "mask": 16, "width": 1, "win": 1, "off": 1}, {"i": 32, "op": "add", "dst": 7, "src": 2, "src2": 7, "imm": "0x070888a8", "imm2": "0xe403240e", "rot": 2, "bit": 16, "mask": 2, "width": 1, "win": 0, "off": 0}, {"i": 33, "op": "add", "dst": 2, "src": 0, "src2": 5, "imm": "0xf2e46d55", "imm2": "0x29701828", "rot": 31, "bit": 28, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 34, "op": "add", "dst": 2, "src": 3, "src2": 0, "imm": "0x58f75b87", "imm2": "0x343b7aee", "rot": 12, "bit": 14, "mask": 4, "width": 1, "win": 0, "off": 0}, @@ -381,25 +382,25 @@ {"i": 41, "op": "sub", "dst": 7, "src": 0, "src2": 2, "imm": "0x0daf96ea", "imm2": "0x36f37be1", "rot": 5, "bit": 0, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 42, "op": "add", "dst": 4, "src": 3, "src2": 6, "imm": "0x6ced15b7", "imm2": "0x6df7aed4", "rot": 19, "bit": 4, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 43, "op": "shfl", "dst": 7, "src": 3, "src2": 5, "imm": "0x8ace05f3", "imm2": "0xd378ec12", "rot": 23, "bit": 10, "mask": 4, "width": 1, "win": 0, "off": 0}, - {"i": 44, "op": "load", "dst": 0, "src": 7, "src2": 4, "imm": "0xb0607786", "imm2": "0xc4acabbc", "rot": 13, "bit": 7, "mask": 16, "width": 1, "win": 1, "off": 1}, + {"i": 44, "op": "load", "dst": 0, "src": 2, "src2": 4, "imm": "0xb0607786", "imm2": "0xc4acabbc", "rot": 13, "bit": 7, "mask": 16, "width": 1, "win": 1, "off": 1}, {"i": 45, "op": "add", "dst": 1, "src": 6, "src2": 5, "imm": "0xe09f54e9", "imm2": "0x83e825bf", "rot": 23, "bit": 14, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 46, "op": "load", "dst": 3, "src": 1, "src2": 0, "imm": "0x63cc1e4e", "imm2": "0xa1be8118", "rot": 12, "bit": 6, "mask": 2, "width": 1, "win": 2, "off": 0}, - {"i": 47, "op": "load", "dst": 6, "src": 3, "src2": 7, "imm": "0x353f1d79", "imm2": "0x3b2e7456", "rot": 18, "bit": 18, "mask": 1, "width": 1, "win": 0, "off": 0}, + {"i": 46, "op": "load", "dst": 3, "src": 0, "src2": 0, "imm": "0x63cc1e4e", "imm2": "0xa1be8118", "rot": 12, "bit": 6, "mask": 2, "width": 1, "win": 2, "off": 0}, + {"i": 47, "op": "load", "dst": 6, "src": 4, "src2": 7, "imm": "0x353f1d79", "imm2": "0x3b2e7456", "rot": 18, "bit": 18, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 48, "op": "mulhi", "dst": 4, "src": 2, "src2": 7, "imm": "0x00d8a3cd", "imm2": "0x231866d2", "rot": 21, "bit": 20, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 49, "op": "add", "dst": 5, "src": 0, "src2": 2, "imm": "0xa8bae6df", "imm2": "0xf572bdb9", "rot": 14, "bit": 7, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 50, "op": "shfl", "dst": 0, "src": 7, "src2": 7, "imm": "0x81ef22e1", "imm2": "0x74438fc5", "rot": 28, "bit": 18, "mask": 4, "width": 1, "win": 0, "off": 0}, {"i": 51, "op": "add", "dst": 6, "src": 0, "src2": 6, "imm": "0x383b9260", "imm2": "0x11e17c61", "rot": 12, "bit": 19, "mask": 16, "width": 1, "win": 0, "off": 0}, - {"i": 52, "op": "load", "dst": 5, "src": 2, "src2": 2, "imm": "0xfb84f451", "imm2": "0x11cd863e", "rot": 21, "bit": 20, "mask": 8, "width": 1, "win": 0, "off": 0}, + {"i": 52, "op": "load", "dst": 5, "src": 0, "src2": 2, "imm": "0xfb84f451", "imm2": "0x11cd863e", "rot": 21, "bit": 20, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 53, "op": "rotl", "dst": 6, "src": 5, "src2": 4, "imm": "0xb1a7db6b", "imm2": "0x76686b9b", "rot": 12, "bit": 4, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 54, "op": "rotl", "dst": 3, "src": 6, "src2": 3, "imm": "0x6f981f52", "imm2": "0xd99aeba2", "rot": 12, "bit": 27, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 55, "op": "add", "dst": 2, "src": 1, "src2": 2, "imm": "0xac6be8e3", "imm2": "0x18d67dbb", "rot": 26, "bit": 10, "mask": 4, "width": 1, "win": 0, "off": 0}, - {"i": 56, "op": "load", "dst": 1, "src": 4, "src2": 0, "imm": "0x7e7f6a00", "imm2": "0x6f0747da", "rot": 25, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, + {"i": 56, "op": "load", "dst": 1, "src": 6, "src2": 0, "imm": "0x7e7f6a00", "imm2": "0x6f0747da", "rot": 25, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 57, "op": "add", "dst": 5, "src": 0, "src2": 4, "imm": "0xf03673fe", "imm2": "0xa75cd60d", "rot": 16, "bit": 12, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 58, "op": "load", "dst": 5, "src": 0, "src2": 2, "imm": "0x227f94a6", "imm2": "0x0e8344f9", "rot": 20, "bit": 10, "mask": 2, "width": 1, "win": 2, "off": 0}, + {"i": 58, "op": "load", "dst": 5, "src": 7, "src2": 2, "imm": "0x227f94a6", "imm2": "0x0e8344f9", "rot": 20, "bit": 10, "mask": 2, "width": 1, "win": 2, "off": 0}, {"i": 59, "op": "add", "dst": 1, "src": 4, "src2": 3, "imm": "0xdecd4794", "imm2": "0x8dfb96bb", "rot": 21, "bit": 7, "mask": 4, "width": 1, "win": 0, "off": 0}, {"i": 60, "op": "mulhi", "dst": 3, "src": 2, "src2": 2, "imm": "0x0dd268e0", "imm2": "0x53034ca9", "rot": 1, "bit": 8, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 61, "op": "or", "dst": 6, "src": 4, "src2": 7, "imm": "0x3a45a321", "imm2": "0x9bc59a5f", "rot": 25, "bit": 11, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 62, "op": "shfl", "dst": 5, "src": 4, "src2": 2, "imm": "0x8f229cc1", "imm2": "0xcaac64a2", "rot": 17, "bit": 13, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 63, "op": "load", "dst": 3, "src": 6, "src2": 6, "imm": "0xb2574178", "imm2": "0xcbcc798d", "rot": 28, "bit": 0, "mask": 16, "width": 1, "win": 1, "off": 1} + {"i": 63, "op": "load", "dst": 3, "src": 2, "src2": 6, "imm": "0xb2574178", "imm2": "0xcbcc798d", "rot": 28, "bit": 0, "mask": 16, "width": 1, "win": 1, "off": 1} ] } diff --git a/proto-cuda/packs-ca3-v4/v4-era-2/program.metal b/proto-cuda/packs-ca3-v4/v4-era-2/program.metal index c3d2819c4..8e0e0f956 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-2/program.metal +++ b/proto-cuda/packs-ca3-v4/v4-era-2/program.metal @@ -51,7 +51,7 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = r7 ^ dataset[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 10 r7 = r7 ^ dataset[((rotl_imm(r1 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 11 r5 = r5 * r4; // 12 - r7 = r7 ^ dataset[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 + r7 = r7 ^ dataset[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 r6 = r6 ^ simd_shuffle_xor(r5, (ushort)16); // 14 r3 = r3 ^ simd_shuffle_xor(r5, (ushort)1); // 15 r2 = r2 | r7; // 16 @@ -67,9 +67,9 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = rotr_var(r7, r0); // 26 r4 = r5 * r7 + r4; // 27 r3 = r2 * r4 + r3; // 28 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 r2 = r2 ^ dataset[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x08000000u) & MASK]; // 30 - r1 = r1 ^ dataset[((rotl_imm(r5 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 + r1 = r1 ^ dataset[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 r7 = r7 + r2 + select(0x070888a8u, 0xe403240eu, ((sel >> 16u) & 1u) != 0u); // 32 r2 = r2 + r0 + select(0xf2e46d55u, 0x29701828u, ((sel >> 28u) & 1u) != 0u); // 33 r2 = r2 + r3 + select(0x58f75b87u, 0x343b7aeeu, ((sel >> 14u) & 1u) != 0u); // 34 @@ -82,26 +82,26 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = r7 - r0; // 41 r4 = r4 + r3 + select(0x6ced15b7u, 0x6df7aed4u, ((sel >> 4u) & 1u) != 0u); // 42 r7 = r7 ^ simd_shuffle_xor(r3, (ushort)4); // 43 - r0 = r0 ^ dataset[((rotl_imm(r7 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 + r0 = r0 ^ dataset[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 r1 = r1 + r6 + select(0xe09f54e9u, 0x83e825bfu, ((sel >> 14u) & 1u) != 0u); // 45 - r3 = r3 ^ dataset[((rotl_imm(r1 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 - r6 = r6 ^ dataset[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 + r3 = r3 ^ dataset[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 + r6 = r6 ^ dataset[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 r4 = mulhi(r4, r2); // 48 r5 = r5 + r0 + select(0xa8bae6dfu, 0xf572bdb9u, ((sel >> 7u) & 1u) != 0u); // 49 r0 = r0 ^ simd_shuffle_xor(r7, (ushort)4); // 50 r6 = r6 + r0 + select(0x383b9260u, 0x11e17c61u, ((sel >> 19u) & 1u) != 0u); // 51 - r5 = r5 ^ dataset[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 + r5 = r5 ^ dataset[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 r6 = rotl_imm(r6, 12u); // 53 r3 = rotl_imm(r3, 12u); // 54 r2 = r2 + r1 + select(0xac6be8e3u, 0x18d67dbbu, ((sel >> 10u) & 1u) != 0u); // 55 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 r5 = r5 + r0 + select(0xf03673feu, 0xa75cd60du, ((sel >> 12u) & 1u) != 0u); // 57 - r5 = r5 ^ dataset[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 + r5 = r5 ^ dataset[((rotl_imm(r7 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 r1 = r1 + r4 + select(0xdecd4794u, 0x8dfb96bbu, ((sel >> 7u) & 1u) != 0u); // 59 r3 = mulhi(r3, r2); // 60 r6 = r6 | r4; // 61 r5 = r5 ^ simd_shuffle_xor(r4, (ushort)8); // 62 - r3 = r3 ^ dataset[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 + r3 = r3 ^ dataset[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-2/program_bound.metal b/proto-cuda/packs-ca3-v4/v4-era-2/program_bound.metal index 2d3430e65..ea8911857 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-2/program_bound.metal +++ b/proto-cuda/packs-ca3-v4/v4-era-2/program_bound.metal @@ -53,7 +53,7 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = r7 ^ dataset[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 10 r7 = r7 ^ dataset[((rotl_imm(r1 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 11 r5 = r5 * r4; // 12 - r7 = r7 ^ dataset[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 + r7 = r7 ^ dataset[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 r6 = r6 ^ simd_shuffle_xor(r5, (ushort)16); // 14 r3 = r3 ^ simd_shuffle_xor(r5, (ushort)1); // 15 r2 = r2 | r7; // 16 @@ -69,9 +69,9 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = rotr_var(r7, r0); // 26 r4 = r5 * r7 + r4; // 27 r3 = r2 * r4 + r3; // 28 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 r2 = r2 ^ dataset[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x08000000u) & MASK]; // 30 - r1 = r1 ^ dataset[((rotl_imm(r5 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 + r1 = r1 ^ dataset[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 r7 = r7 + r2 + select(0x070888a8u, 0xe403240eu, ((sel >> 16u) & 1u) != 0u); // 32 r2 = r2 + r0 + select(0xf2e46d55u, 0x29701828u, ((sel >> 28u) & 1u) != 0u); // 33 r2 = r2 + r3 + select(0x58f75b87u, 0x343b7aeeu, ((sel >> 14u) & 1u) != 0u); // 34 @@ -84,26 +84,26 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = r7 - r0; // 41 r4 = r4 + r3 + select(0x6ced15b7u, 0x6df7aed4u, ((sel >> 4u) & 1u) != 0u); // 42 r7 = r7 ^ simd_shuffle_xor(r3, (ushort)4); // 43 - r0 = r0 ^ dataset[((rotl_imm(r7 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 + r0 = r0 ^ dataset[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 r1 = r1 + r6 + select(0xe09f54e9u, 0x83e825bfu, ((sel >> 14u) & 1u) != 0u); // 45 - r3 = r3 ^ dataset[((rotl_imm(r1 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 - r6 = r6 ^ dataset[((rotl_imm(r3 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 + r3 = r3 ^ dataset[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 + r6 = r6 ^ dataset[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 r4 = mulhi(r4, r2); // 48 r5 = r5 + r0 + select(0xa8bae6dfu, 0xf572bdb9u, ((sel >> 7u) & 1u) != 0u); // 49 r0 = r0 ^ simd_shuffle_xor(r7, (ushort)4); // 50 r6 = r6 + r0 + select(0x383b9260u, 0x11e17c61u, ((sel >> 19u) & 1u) != 0u); // 51 - r5 = r5 ^ dataset[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 + r5 = r5 ^ dataset[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 r6 = rotl_imm(r6, 12u); // 53 r3 = rotl_imm(r3, 12u); // 54 r2 = r2 + r1 + select(0xac6be8e3u, 0x18d67dbbu, ((sel >> 10u) & 1u) != 0u); // 55 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 r5 = r5 + r0 + select(0xf03673feu, 0xa75cd60du, ((sel >> 12u) & 1u) != 0u); // 57 - r5 = r5 ^ dataset[((rotl_imm(r0 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 + r5 = r5 ^ dataset[((rotl_imm(r7 * 0x2b4a5b97u, 28u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 r1 = r1 + r4 + select(0xdecd4794u, 0x8dfb96bbu, ((sel >> 7u) & 1u) != 0u); // 59 r3 = mulhi(r3, r2); // 60 r6 = r6 | r4; // 61 r5 = r5 ^ simd_shuffle_xor(r4, (ushort)8); // 62 - r3 = r3 ^ dataset[((rotl_imm(r6 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 + r3 = r3 ^ dataset[((rotl_imm(r2 * 0x2b4a5b97u, 28u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-2/vectors.h b/proto-cuda/packs-ca3-v4/v4-era-2/vectors.h index 78a83a960..316bf7428 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-2/vectors.h +++ b/proto-cuda/packs-ca3-v4/v4-era-2/vectors.h @@ -11,22 +11,22 @@ static const uint32_t IGNEUM_VEC_BASE[IGNEUM_VEC_WARPS] = { 0u, 4096u, 1000000u }; static const uint64_t IGNEUM_VEC_OUT[IGNEUM_VEC_WARPS][32] = { { // base nonce 0 - 0xd15f7638ecab0638ull, 0xf71dc04ca33f9049ull, 0xdda27e825b83045full, 0x0babd54b6eb42cb6ull, 0x22b4cafe1d3a82d7ull, 0x1ded091e583999c8ull, 0x9445769b44b82cbdull, 0xbd850d3ec7937586ull, - 0xd503809c85e89628ull, 0xe1c06157f7c30353ull, 0xd60623d3d7eea552ull, 0x7d893fab4009c4d4ull, 0xa153fbc5e57b66a5ull, 0xd60055d442ad5f10ull, 0xd68537a9835ef4d5ull, 0xf904817a6a8188d3ull, - 0x024eef8355667005ull, 0x498b0d273a1f70d3ull, 0x04719bd1c8633f5bull, 0x153f8f65912540caull, 0x5d19c2cb32a9be86ull, 0x68a1791304d4c616ull, 0x65cee64ecdd50cf8ull, 0xd14b2d91df1e6c36ull, - 0x0a9f67bd86a20bcaull, 0x99068e67d3d9da10ull, 0x84c845b2f4a99b52ull, 0xb2d622100c4cb3c9ull, 0x312854dbc455f269ull, 0x6bfd7d56844bd049ull, 0x654be06144c8aaabull, 0xb97c033d13ff45b9ull + 0xa50fd84e469c0299ull, 0x956a02cc6e55e39bull, 0xcff98bd1ba125752ull, 0xfd349e2bf2f95bf0ull, 0xa23ab74a855d48aeull, 0x458cfd86913fe839ull, 0x4fc6bead2a788db4ull, 0x41f36429a69d0572ull, + 0x7db8bc5d0c153350ull, 0xf2e335084a646321ull, 0x14051b39d8eff830ull, 0x55605759b5fd1407ull, 0x833a24b656a37de7ull, 0xc7c10530d9b2771eull, 0xd52124942abf9662ull, 0x0832ecb41cb3f419ull, + 0x1b5b65afb35e979cull, 0x3fe3dc64a66f0c98ull, 0x8b0593a03d879943ull, 0x4d07ac8898ea5099ull, 0x0e1e7e456d0bde69ull, 0x07169a25e5e94c3dull, 0x0dbdec2f9a6271f0ull, 0x0fad105f526a4113ull, + 0x25476fe23461e7eaull, 0xd5cdecbab3c48dfeull, 0xff63fa1aa4ed8e17ull, 0x5e514d66699dcafdull, 0xd0e26e96e4906d4eull, 0xf65f5cd6b3c031cdull, 0x704eeffeff76efceull, 0xb55b9666e0e0ba2eull }, { // base nonce 4096 - 0xca511aa94bb7de28ull, 0xf50562fbd930d7cbull, 0x90d1d21d286f4526ull, 0xf7dd004498042c76ull, 0x4015a3dedf539b30ull, 0xbf188aa13bf0d0b0ull, 0x3562a5190ceb5c0eull, 0x6d8fc479c085e14bull, - 0x0c028bae78f97b7aull, 0x83438623fdef4ab5ull, 0x12d046bb02e00e62ull, 0x70ec066026f7e35aull, 0x593aa049f2d1a94aull, 0x8ca00d8f621627adull, 0x6e1ca47c67a11a4aull, 0x44b0e6fba37093ceull, - 0x26557f61f6b46af6ull, 0xa8fb8acbd4f447f9ull, 0x8b5d5d8fea192771ull, 0x05319f2d2a379723ull, 0xea48c6831e5c4e09ull, 0x77dc8af07fbffad6ull, 0xf73f12c67ee72439ull, 0xbd6ca871de1f5a15ull, - 0xfa023ce22a449fcdull, 0x4d10b2e249f230c7ull, 0x8eb20cbc44bb4cd3ull, 0x0f6a25ef75994a9cull, 0xf3e2b830c7268634ull, 0xbb9b9d9cb45a3ba7ull, 0xe1a7cfda15d5d859ull, 0x469597ce101451dcull + 0x78d57bbfd2640ee5ull, 0xcd26544ec614acc0ull, 0x9a930f1faa1c820bull, 0x5bfeb2782647ac97ull, 0x8ef56bc0d1957fc3ull, 0x51b67fce32055b2cull, 0xa7958e73431bc372ull, 0x20a0384a77190463ull, + 0xdbc235471dc95936ull, 0x257d434ad4569f03ull, 0xe0e8b08d3c1f8cbdull, 0x2c1a7374af2fe448ull, 0x182975ab5388ca07ull, 0xe28f02e67a3a6322ull, 0x22a5af1129deb478ull, 0x8ada05248b23a133ull, + 0x9f8b35c661edb718ull, 0x971c5ffc24662e31ull, 0xb08be1b74e69b848ull, 0xa9e0f65de4cbfa1bull, 0x284c3612c569233aull, 0xb7fa4ffbdb36a5bcull, 0xba5c01642ad7e8e1ull, 0x7f1bf5cd0e5cb632ull, + 0x90a29a6014616cacull, 0x0b0205b1dbbe18c2ull, 0x0d264313d0921abfull, 0xc94597b61719f39full, 0x91890e2a6ff436d7ull, 0xe13596e45c56318dull, 0x750df0b43006dba1ull, 0x470bcdde541c43e1ull }, { // base nonce 1000000 - 0x1b69d837d0e478f9ull, 0x7f4ea76a066e3abfull, 0x877d6e73bc9d55eeull, 0x2ce7115def57d121ull, 0xbaa9996f8db3a59full, 0xaf8f831594ef4cfbull, 0x7e15598c87bd4319ull, 0x5dbf2e8fe7d65335ull, - 0x69de5134b0e4260eull, 0x48f3865c27bdf852ull, 0xe470c56ea8799783ull, 0x3d99bbf38de6d92full, 0x16355adc8947980full, 0xeaf478e9b3c281e9ull, 0x64ad42cd95af5cb0ull, 0x8f3042a5ae75653full, - 0x5bd477dc9ace031bull, 0xe49671e0b12b9c88ull, 0xc2af87b389841379ull, 0x5f24587ff2b07510ull, 0xec5862ebad445432ull, 0x53a1995450693ed4ull, 0x62dacf7f2f8020cdull, 0x30cb5459c52a6779ull, - 0x616ba82cf713a033ull, 0x2ab4f3fc72d72c9eull, 0xd095040ca4fd494dull, 0x9cbf315db4bee964ull, 0xb3288c63109bd0d5ull, 0x7a8122aca003c5c5ull, 0x5e7054016621ab58ull, 0x116981c856dd2a2dull + 0xb763a5e3ff117e76ull, 0x3908a3516a0c716dull, 0xa126e19fe2d95edcull, 0x396a194582db520cull, 0x8dc2b83423861f29ull, 0xfd6c8913ee257ff5ull, 0xfdebf75bfd35e456ull, 0x44d41b818c660f54ull, + 0x7f9a83b8e543d325ull, 0xe81f73cc9c1ea9c3ull, 0x5f2cf4556e5f8426ull, 0x600c60bf03182500ull, 0x1d344ca28ebef75cull, 0xc68ba93ff35c8feaull, 0x73cfc027eeb5538cull, 0x5e8a88ffd4b73153ull, + 0x1ed548903f93eac5ull, 0x27085af02aaa8062ull, 0x92b54202359248c5ull, 0xda425e78da758280ull, 0x125471a0bc0b61ceull, 0x26efb3377cec9defull, 0x6bdb7cf1a5da7220ull, 0x0070ecdf0e84c654ull, + 0xd1b226f4e2eee520ull, 0xb7b13401ffb86790ull, 0x4e2671612852437eull, 0xac55e4a97dad8599ull, 0x269a53ab8606b40eull, 0x42100137c8e7cc3dull, 0x3e8a12ada77f5dfaull, 0x94306761f26d1768ull } }; diff --git a/proto-cuda/packs-ca3-v4/v4-era-2/vectors.json b/proto-cuda/packs-ca3-v4/v4-era-2/vectors.json index 731647a9d..d067685c2 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-2/vectors.json +++ b/proto-cuda/packs-ca3-v4/v4-era-2/vectors.json @@ -8,22 +8,22 @@ "source": "igneum-pow (Rust) CPU interpreter, generator v4, memory-hard dataset", "warps": [ {"base_nonce": 0, "expected": [ - "0xd15f7638ecab0638", "0xf71dc04ca33f9049", "0xdda27e825b83045f", "0x0babd54b6eb42cb6", "0x22b4cafe1d3a82d7", "0x1ded091e583999c8", "0x9445769b44b82cbd", "0xbd850d3ec7937586", - "0xd503809c85e89628", "0xe1c06157f7c30353", "0xd60623d3d7eea552", "0x7d893fab4009c4d4", "0xa153fbc5e57b66a5", "0xd60055d442ad5f10", "0xd68537a9835ef4d5", "0xf904817a6a8188d3", - "0x024eef8355667005", "0x498b0d273a1f70d3", "0x04719bd1c8633f5b", "0x153f8f65912540ca", "0x5d19c2cb32a9be86", "0x68a1791304d4c616", "0x65cee64ecdd50cf8", "0xd14b2d91df1e6c36", - "0x0a9f67bd86a20bca", "0x99068e67d3d9da10", "0x84c845b2f4a99b52", "0xb2d622100c4cb3c9", "0x312854dbc455f269", "0x6bfd7d56844bd049", "0x654be06144c8aaab", "0xb97c033d13ff45b9" + "0xa50fd84e469c0299", "0x956a02cc6e55e39b", "0xcff98bd1ba125752", "0xfd349e2bf2f95bf0", "0xa23ab74a855d48ae", "0x458cfd86913fe839", "0x4fc6bead2a788db4", "0x41f36429a69d0572", + "0x7db8bc5d0c153350", "0xf2e335084a646321", "0x14051b39d8eff830", "0x55605759b5fd1407", "0x833a24b656a37de7", "0xc7c10530d9b2771e", "0xd52124942abf9662", "0x0832ecb41cb3f419", + "0x1b5b65afb35e979c", "0x3fe3dc64a66f0c98", "0x8b0593a03d879943", "0x4d07ac8898ea5099", "0x0e1e7e456d0bde69", "0x07169a25e5e94c3d", "0x0dbdec2f9a6271f0", "0x0fad105f526a4113", + "0x25476fe23461e7ea", "0xd5cdecbab3c48dfe", "0xff63fa1aa4ed8e17", "0x5e514d66699dcafd", "0xd0e26e96e4906d4e", "0xf65f5cd6b3c031cd", "0x704eeffeff76efce", "0xb55b9666e0e0ba2e" ]}, {"base_nonce": 4096, "expected": [ - "0xca511aa94bb7de28", "0xf50562fbd930d7cb", "0x90d1d21d286f4526", "0xf7dd004498042c76", "0x4015a3dedf539b30", "0xbf188aa13bf0d0b0", "0x3562a5190ceb5c0e", "0x6d8fc479c085e14b", - "0x0c028bae78f97b7a", "0x83438623fdef4ab5", "0x12d046bb02e00e62", "0x70ec066026f7e35a", "0x593aa049f2d1a94a", "0x8ca00d8f621627ad", "0x6e1ca47c67a11a4a", "0x44b0e6fba37093ce", - "0x26557f61f6b46af6", "0xa8fb8acbd4f447f9", "0x8b5d5d8fea192771", "0x05319f2d2a379723", "0xea48c6831e5c4e09", "0x77dc8af07fbffad6", "0xf73f12c67ee72439", "0xbd6ca871de1f5a15", - "0xfa023ce22a449fcd", "0x4d10b2e249f230c7", "0x8eb20cbc44bb4cd3", "0x0f6a25ef75994a9c", "0xf3e2b830c7268634", "0xbb9b9d9cb45a3ba7", "0xe1a7cfda15d5d859", "0x469597ce101451dc" + "0x78d57bbfd2640ee5", "0xcd26544ec614acc0", "0x9a930f1faa1c820b", "0x5bfeb2782647ac97", "0x8ef56bc0d1957fc3", "0x51b67fce32055b2c", "0xa7958e73431bc372", "0x20a0384a77190463", + "0xdbc235471dc95936", "0x257d434ad4569f03", "0xe0e8b08d3c1f8cbd", "0x2c1a7374af2fe448", "0x182975ab5388ca07", "0xe28f02e67a3a6322", "0x22a5af1129deb478", "0x8ada05248b23a133", + "0x9f8b35c661edb718", "0x971c5ffc24662e31", "0xb08be1b74e69b848", "0xa9e0f65de4cbfa1b", "0x284c3612c569233a", "0xb7fa4ffbdb36a5bc", "0xba5c01642ad7e8e1", "0x7f1bf5cd0e5cb632", + "0x90a29a6014616cac", "0x0b0205b1dbbe18c2", "0x0d264313d0921abf", "0xc94597b61719f39f", "0x91890e2a6ff436d7", "0xe13596e45c56318d", "0x750df0b43006dba1", "0x470bcdde541c43e1" ]}, {"base_nonce": 1000000, "expected": [ - "0x1b69d837d0e478f9", "0x7f4ea76a066e3abf", "0x877d6e73bc9d55ee", "0x2ce7115def57d121", "0xbaa9996f8db3a59f", "0xaf8f831594ef4cfb", "0x7e15598c87bd4319", "0x5dbf2e8fe7d65335", - "0x69de5134b0e4260e", "0x48f3865c27bdf852", "0xe470c56ea8799783", "0x3d99bbf38de6d92f", "0x16355adc8947980f", "0xeaf478e9b3c281e9", "0x64ad42cd95af5cb0", "0x8f3042a5ae75653f", - "0x5bd477dc9ace031b", "0xe49671e0b12b9c88", "0xc2af87b389841379", "0x5f24587ff2b07510", "0xec5862ebad445432", "0x53a1995450693ed4", "0x62dacf7f2f8020cd", "0x30cb5459c52a6779", - "0x616ba82cf713a033", "0x2ab4f3fc72d72c9e", "0xd095040ca4fd494d", "0x9cbf315db4bee964", "0xb3288c63109bd0d5", "0x7a8122aca003c5c5", "0x5e7054016621ab58", "0x116981c856dd2a2d" + "0xb763a5e3ff117e76", "0x3908a3516a0c716d", "0xa126e19fe2d95edc", "0x396a194582db520c", "0x8dc2b83423861f29", "0xfd6c8913ee257ff5", "0xfdebf75bfd35e456", "0x44d41b818c660f54", + "0x7f9a83b8e543d325", "0xe81f73cc9c1ea9c3", "0x5f2cf4556e5f8426", "0x600c60bf03182500", "0x1d344ca28ebef75c", "0xc68ba93ff35c8fea", "0x73cfc027eeb5538c", "0x5e8a88ffd4b73153", + "0x1ed548903f93eac5", "0x27085af02aaa8062", "0x92b54202359248c5", "0xda425e78da758280", "0x125471a0bc0b61ce", "0x26efb3377cec9def", "0x6bdb7cf1a5da7220", "0x0070ecdf0e84c654", + "0xd1b226f4e2eee520", "0xb7b13401ffb86790", "0x4e2671612852437e", "0xac55e4a97dad8599", "0x269a53ab8606b40e", "0x42100137c8e7cc3d", "0x3e8a12ada77f5dfa", "0x94306761f26d1768" ]} ], "dataset_head": ["0x19c6837f", "0xbd3f6aed", "0xdf3adfb8", "0xb8bede0d", "0x827e59af", "0x60286061", "0x8cf592f5", "0x5d9abc1c", "0xc5f0629f", "0xc435a60e", "0x03e38ae8", "0xfadee916", "0xa85d0c39", "0xd41a5b0d", "0x4247a100", "0x3f33dc64"], diff --git a/proto-cuda/packs-ca3-v4/v4-era-3/kernel.cl b/proto-cuda/packs-ca3-v4/v4-era-3/kernel.cl index f85e305c6..6b30abe29 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-3/kernel.cl +++ b/proto-cuda/packs-ca3-v4/v4-era-3/kernel.cl @@ -215,7 +215,7 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -231,9 +231,9 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -246,26 +246,26 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-3/kernel.cu b/proto-cuda/packs-ca3-v4/v4-era-3/kernel.cu index 55fc0a08f..d8a900319 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-3/kernel.cu +++ b/proto-cuda/packs-ca3-v4/v4-era-3/kernel.cu @@ -71,7 +71,7 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = r7 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load r6 = r6 ^ __shfl_xor_sync(0xffffffffu, r5, 16); // 14 shfl r3 = r3 ^ __shfl_xor_sync(0xffffffffu, r5, 1); // 15 shfl r2 = r2 | r7; // 16 or @@ -87,9 +87,9 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -102,26 +102,26 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add r7 = r7 ^ __shfl_xor_sync(0xffffffffu, r3, 4); // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = __umulhi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add r0 = r0 ^ __shfl_xor_sync(0xffffffffu, r7, 4); // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = __umulhi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or r5 = r5 ^ __shfl_xor_sync(0xffffffffu, r4, 8); // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint32_t sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-3/kernel_bound.cl b/proto-cuda/packs-ca3-v4/v4-era-3/kernel_bound.cl index 126a54ca8..25abbafaf 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-3/kernel_bound.cl +++ b/proto-cuda/packs-ca3-v4/v4-era-3/kernel_bound.cl @@ -215,7 +215,7 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -231,9 +231,9 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -246,26 +246,26 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul @@ -577,7 +577,7 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = r7 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -593,9 +593,9 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -608,26 +608,26 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-3/kernel_bound.cu b/proto-cuda/packs-ca3-v4/v4-era-3/kernel_bound.cu index cc5b36119..29085fe04 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-3/kernel_bound.cu +++ b/proto-cuda/packs-ca3-v4/v4-era-3/kernel_bound.cu @@ -48,7 +48,7 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = r7 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load r6 = r6 ^ __shfl_xor_sync(0xffffffffu, r5, 16); // 14 shfl r3 = r3 ^ __shfl_xor_sync(0xffffffffu, r5, 1); // 15 shfl r2 = r2 | r7; // 16 or @@ -64,9 +64,9 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -79,26 +79,26 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add r7 = r7 ^ __shfl_xor_sync(0xffffffffu, r3, 4); // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = __umulhi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add r0 = r0 ^ __shfl_xor_sync(0xffffffffu, r7, 4); // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = __umulhi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or r5 = r5 ^ __shfl_xor_sync(0xffffffffu, r4, 8); // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint32_t sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-3/program.h b/proto-cuda/packs-ca3-v4/v4-era-3/program.h index 8481a9f52..94ac86de5 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-3/program.h +++ b/proto-cuda/packs-ca3-v4/v4-era-3/program.h @@ -15,7 +15,7 @@ #define IGNEUM_SEED_BYTES_HEX "edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07" #define IGNEUM_GENERATOR 4 #define IGNEUM_PROGRAM_ATTEMPT 0 -#define IGNEUM_PROGRAM_ID 0xc120d7963abdcd96ull +#define IGNEUM_PROGRAM_ID 0x1a4230699a6b9c60ull #define IGNEUM_DAY_STRING "bytes:69676e65756d2d6461792ffa50000000000000" #define IGNEUM_DAY_BYTES_HEX "69676e65756d2d6461792ffa50000000000000" #define IGNEUM_DAY0 0xceed56d7u @@ -32,6 +32,7 @@ // latency-shadow block (IGNEUM_SHADOW_INSTRS x IGNEUM_SHADOW_REPS per iteration); a worker that runs another class // refuses this pack, and a job line names the class it wants (class=v4 era=). #define IGNEUM_PROGRAM_CLASS "v4" +#define IGNEUM_PROGRAM_SUBVERSION 1 #define IGNEUM_ERA_SEED_HEX "e593fc1d48475c88e456632f6aa0a752a5fdbca3c33022afe37680e44b7dfd11" // Class v3 construction (Counter ASIC 2.0, 5 October 2026, docs/plans/mixer-x4.md): version 2 loads; the dataset item // derivation applies the mixer IGNEUM_MIXER_MULT times per round (memhard.h), and the cache follows the growth rule. diff --git a/proto-cuda/packs-ca3-v4/v4-era-3/program.json b/proto-cuda/packs-ca3-v4/v4-era-3/program.json index 09cc22767..359b0af3d 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-3/program.json +++ b/proto-cuda/packs-ca3-v4/v4-era-3/program.json @@ -2,7 +2,7 @@ "format": "igneum-program-pack-3", "generator": 4, "attempt": 0, - "program_id": "0xc120d7963abdcd96", + "program_id": "0x1a4230699a6b9c60", "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", "dataset_mode": "memory-hard", "seed": "igneum-epoch/edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07/day/69676e65756d2d6461792ffa50000000000000", @@ -16,6 +16,7 @@ "instruction_count": 64, "loads_per_hash": 128, "program_class": "v4", + "sub_version": 1, "era_seed_bytes": "e593fc1d48475c88e456632f6aa0a752a5fdbca3c33022afe37680e44b7dfd11", "load_class": "mx8-erad6367bfe+sh256x27", "mixer_mult": 8, @@ -350,7 +351,7 @@ {"i": 10, "op": "load", "dst": 7, "src": 0, "src2": 2, "imm": "0xe075297c", "imm2": "0x5779c44c", "rot": 10, "bit": 22, "mask": 2, "width": 1, "win": 1, "off": 1}, {"i": 11, "op": "load", "dst": 7, "src": 1, "src2": 6, "imm": "0x65aa4311", "imm2": "0x4fe48ea9", "rot": 15, "bit": 9, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 12, "op": "mul", "dst": 5, "src": 4, "src2": 2, "imm": "0x1383d3ad", "imm2": "0xf3094b29", "rot": 8, "bit": 9, "mask": 2, "width": 1, "win": 0, "off": 0}, - {"i": 13, "op": "load", "dst": 7, "src": 6, "src2": 2, "imm": "0xed8a496f", "imm2": "0x3072c3c6", "rot": 28, "bit": 19, "mask": 8, "width": 1, "win": 1, "off": 1}, + {"i": 13, "op": "load", "dst": 7, "src": 3, "src2": 2, "imm": "0xed8a496f", "imm2": "0x3072c3c6", "rot": 28, "bit": 19, "mask": 8, "width": 1, "win": 1, "off": 1}, {"i": 14, "op": "shfl", "dst": 6, "src": 5, "src2": 0, "imm": "0x8b965b57", "imm2": "0xcfeca6c1", "rot": 12, "bit": 27, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 15, "op": "shfl", "dst": 3, "src": 5, "src2": 3, "imm": "0x877c7586", "imm2": "0xa9cb2a03", "rot": 2, "bit": 29, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 16, "op": "or", "dst": 2, "src": 7, "src2": 3, "imm": "0xb740221a", "imm2": "0x89d38d6d", "rot": 6, "bit": 31, "mask": 8, "width": 1, "win": 0, "off": 0}, @@ -366,9 +367,9 @@ {"i": 26, "op": "rotr", "dst": 7, "src": 0, "src2": 1, "imm": "0xd89ef484", "imm2": "0x20be3846", "rot": 12, "bit": 9, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 27, "op": "mad", "dst": 4, "src": 5, "src2": 7, "imm": "0xb48420ae", "imm2": "0x3d1f2485", "rot": 14, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 28, "op": "mad", "dst": 3, "src": 2, "src2": 4, "imm": "0xc5c46d76", "imm2": "0x700044b5", "rot": 22, "bit": 10, "mask": 2, "width": 1, "win": 0, "off": 0}, - {"i": 29, "op": "load", "dst": 1, "src": 4, "src2": 3, "imm": "0x0fbaf177", "imm2": "0xfff4f2ed", "rot": 20, "bit": 31, "mask": 2, "width": 1, "win": 0, "off": 0}, + {"i": 29, "op": "load", "dst": 1, "src": 6, "src2": 3, "imm": "0x0fbaf177", "imm2": "0xfff4f2ed", "rot": 20, "bit": 31, "mask": 2, "width": 1, "win": 0, "off": 0}, {"i": 30, "op": "load", "dst": 2, "src": 3, "src2": 0, "imm": "0xe90eb2e5", "imm2": "0xb0f9eb79", "rot": 27, "bit": 14, "mask": 4, "width": 1, "win": 2, "off": 2}, - {"i": 31, "op": "load", "dst": 1, "src": 5, "src2": 2, "imm": "0x97ba3fc3", "imm2": "0x7894e657", "rot": 3, "bit": 30, "mask": 16, "width": 1, "win": 1, "off": 1}, + {"i": 31, "op": "load", "dst": 1, "src": 4, "src2": 2, "imm": "0x97ba3fc3", "imm2": "0x7894e657", "rot": 3, "bit": 30, "mask": 16, "width": 1, "win": 1, "off": 1}, {"i": 32, "op": "add", "dst": 7, "src": 2, "src2": 7, "imm": "0x070888a8", "imm2": "0xe403240e", "rot": 2, "bit": 16, "mask": 2, "width": 1, "win": 0, "off": 0}, {"i": 33, "op": "add", "dst": 2, "src": 0, "src2": 5, "imm": "0xf2e46d55", "imm2": "0x29701828", "rot": 31, "bit": 28, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 34, "op": "add", "dst": 2, "src": 3, "src2": 0, "imm": "0x58f75b87", "imm2": "0x343b7aee", "rot": 12, "bit": 14, "mask": 4, "width": 1, "win": 0, "off": 0}, @@ -381,25 +382,25 @@ {"i": 41, "op": "sub", "dst": 7, "src": 0, "src2": 2, "imm": "0x0daf96ea", "imm2": "0x36f37be1", "rot": 5, "bit": 0, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 42, "op": "add", "dst": 4, "src": 3, "src2": 6, "imm": "0x6ced15b7", "imm2": "0x6df7aed4", "rot": 19, "bit": 4, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 43, "op": "shfl", "dst": 7, "src": 3, "src2": 5, "imm": "0x8ace05f3", "imm2": "0xd378ec12", "rot": 23, "bit": 10, "mask": 4, "width": 1, "win": 0, "off": 0}, - {"i": 44, "op": "load", "dst": 0, "src": 7, "src2": 4, "imm": "0xb0607786", "imm2": "0xc4acabbc", "rot": 13, "bit": 7, "mask": 16, "width": 1, "win": 1, "off": 1}, + {"i": 44, "op": "load", "dst": 0, "src": 2, "src2": 4, "imm": "0xb0607786", "imm2": "0xc4acabbc", "rot": 13, "bit": 7, "mask": 16, "width": 1, "win": 1, "off": 1}, {"i": 45, "op": "add", "dst": 1, "src": 6, "src2": 5, "imm": "0xe09f54e9", "imm2": "0x83e825bf", "rot": 23, "bit": 14, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 46, "op": "load", "dst": 3, "src": 1, "src2": 0, "imm": "0x63cc1e4e", "imm2": "0xa1be8118", "rot": 12, "bit": 6, "mask": 2, "width": 1, "win": 2, "off": 0}, - {"i": 47, "op": "load", "dst": 6, "src": 3, "src2": 7, "imm": "0x353f1d79", "imm2": "0x3b2e7456", "rot": 18, "bit": 18, "mask": 1, "width": 1, "win": 0, "off": 0}, + {"i": 46, "op": "load", "dst": 3, "src": 0, "src2": 0, "imm": "0x63cc1e4e", "imm2": "0xa1be8118", "rot": 12, "bit": 6, "mask": 2, "width": 1, "win": 2, "off": 0}, + {"i": 47, "op": "load", "dst": 6, "src": 4, "src2": 7, "imm": "0x353f1d79", "imm2": "0x3b2e7456", "rot": 18, "bit": 18, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 48, "op": "mulhi", "dst": 4, "src": 2, "src2": 7, "imm": "0x00d8a3cd", "imm2": "0x231866d2", "rot": 21, "bit": 20, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 49, "op": "add", "dst": 5, "src": 0, "src2": 2, "imm": "0xa8bae6df", "imm2": "0xf572bdb9", "rot": 14, "bit": 7, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 50, "op": "shfl", "dst": 0, "src": 7, "src2": 7, "imm": "0x81ef22e1", "imm2": "0x74438fc5", "rot": 28, "bit": 18, "mask": 4, "width": 1, "win": 0, "off": 0}, {"i": 51, "op": "add", "dst": 6, "src": 0, "src2": 6, "imm": "0x383b9260", "imm2": "0x11e17c61", "rot": 12, "bit": 19, "mask": 16, "width": 1, "win": 0, "off": 0}, - {"i": 52, "op": "load", "dst": 5, "src": 2, "src2": 2, "imm": "0xfb84f451", "imm2": "0x11cd863e", "rot": 21, "bit": 20, "mask": 8, "width": 1, "win": 0, "off": 0}, + {"i": 52, "op": "load", "dst": 5, "src": 0, "src2": 2, "imm": "0xfb84f451", "imm2": "0x11cd863e", "rot": 21, "bit": 20, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 53, "op": "rotl", "dst": 6, "src": 5, "src2": 4, "imm": "0xb1a7db6b", "imm2": "0x76686b9b", "rot": 12, "bit": 4, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 54, "op": "rotl", "dst": 3, "src": 6, "src2": 3, "imm": "0x6f981f52", "imm2": "0xd99aeba2", "rot": 12, "bit": 27, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 55, "op": "add", "dst": 2, "src": 1, "src2": 2, "imm": "0xac6be8e3", "imm2": "0x18d67dbb", "rot": 26, "bit": 10, "mask": 4, "width": 1, "win": 0, "off": 0}, - {"i": 56, "op": "load", "dst": 1, "src": 4, "src2": 0, "imm": "0x7e7f6a00", "imm2": "0x6f0747da", "rot": 25, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, + {"i": 56, "op": "load", "dst": 1, "src": 6, "src2": 0, "imm": "0x7e7f6a00", "imm2": "0x6f0747da", "rot": 25, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 57, "op": "add", "dst": 5, "src": 0, "src2": 4, "imm": "0xf03673fe", "imm2": "0xa75cd60d", "rot": 16, "bit": 12, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 58, "op": "load", "dst": 5, "src": 0, "src2": 2, "imm": "0x227f94a6", "imm2": "0x0e8344f9", "rot": 20, "bit": 10, "mask": 2, "width": 1, "win": 2, "off": 0}, + {"i": 58, "op": "load", "dst": 5, "src": 7, "src2": 2, "imm": "0x227f94a6", "imm2": "0x0e8344f9", "rot": 20, "bit": 10, "mask": 2, "width": 1, "win": 2, "off": 0}, {"i": 59, "op": "add", "dst": 1, "src": 4, "src2": 3, "imm": "0xdecd4794", "imm2": "0x8dfb96bb", "rot": 21, "bit": 7, "mask": 4, "width": 1, "win": 0, "off": 0}, {"i": 60, "op": "mulhi", "dst": 3, "src": 2, "src2": 2, "imm": "0x0dd268e0", "imm2": "0x53034ca9", "rot": 1, "bit": 8, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 61, "op": "or", "dst": 6, "src": 4, "src2": 7, "imm": "0x3a45a321", "imm2": "0x9bc59a5f", "rot": 25, "bit": 11, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 62, "op": "shfl", "dst": 5, "src": 4, "src2": 2, "imm": "0x8f229cc1", "imm2": "0xcaac64a2", "rot": 17, "bit": 13, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 63, "op": "load", "dst": 3, "src": 6, "src2": 6, "imm": "0xb2574178", "imm2": "0xcbcc798d", "rot": 28, "bit": 0, "mask": 16, "width": 1, "win": 1, "off": 1} + {"i": 63, "op": "load", "dst": 3, "src": 2, "src2": 6, "imm": "0xb2574178", "imm2": "0xcbcc798d", "rot": 28, "bit": 0, "mask": 16, "width": 1, "win": 1, "off": 1} ] } diff --git a/proto-cuda/packs-ca3-v4/v4-era-3/program.metal b/proto-cuda/packs-ca3-v4/v4-era-3/program.metal index 5b1ef6401..d3f9b68a3 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-3/program.metal +++ b/proto-cuda/packs-ca3-v4/v4-era-3/program.metal @@ -51,7 +51,7 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = r7 ^ dataset[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 10 r7 = r7 ^ dataset[((rotl_imm(r1 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 11 r5 = r5 * r4; // 12 - r7 = r7 ^ dataset[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 + r7 = r7 ^ dataset[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 r6 = r6 ^ simd_shuffle_xor(r5, (ushort)16); // 14 r3 = r3 ^ simd_shuffle_xor(r5, (ushort)1); // 15 r2 = r2 | r7; // 16 @@ -67,9 +67,9 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = rotr_var(r7, r0); // 26 r4 = r5 * r7 + r4; // 27 r3 = r2 * r4 + r3; // 28 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 r2 = r2 ^ dataset[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x08000000u) & MASK]; // 30 - r1 = r1 ^ dataset[((rotl_imm(r5 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 + r1 = r1 ^ dataset[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 r7 = r7 + r2 + select(0x070888a8u, 0xe403240eu, ((sel >> 16u) & 1u) != 0u); // 32 r2 = r2 + r0 + select(0xf2e46d55u, 0x29701828u, ((sel >> 28u) & 1u) != 0u); // 33 r2 = r2 + r3 + select(0x58f75b87u, 0x343b7aeeu, ((sel >> 14u) & 1u) != 0u); // 34 @@ -82,26 +82,26 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = r7 - r0; // 41 r4 = r4 + r3 + select(0x6ced15b7u, 0x6df7aed4u, ((sel >> 4u) & 1u) != 0u); // 42 r7 = r7 ^ simd_shuffle_xor(r3, (ushort)4); // 43 - r0 = r0 ^ dataset[((rotl_imm(r7 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 + r0 = r0 ^ dataset[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 r1 = r1 + r6 + select(0xe09f54e9u, 0x83e825bfu, ((sel >> 14u) & 1u) != 0u); // 45 - r3 = r3 ^ dataset[((rotl_imm(r1 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 - r6 = r6 ^ dataset[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 + r3 = r3 ^ dataset[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 + r6 = r6 ^ dataset[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 r4 = mulhi(r4, r2); // 48 r5 = r5 + r0 + select(0xa8bae6dfu, 0xf572bdb9u, ((sel >> 7u) & 1u) != 0u); // 49 r0 = r0 ^ simd_shuffle_xor(r7, (ushort)4); // 50 r6 = r6 + r0 + select(0x383b9260u, 0x11e17c61u, ((sel >> 19u) & 1u) != 0u); // 51 - r5 = r5 ^ dataset[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 + r5 = r5 ^ dataset[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 r6 = rotl_imm(r6, 12u); // 53 r3 = rotl_imm(r3, 12u); // 54 r2 = r2 + r1 + select(0xac6be8e3u, 0x18d67dbbu, ((sel >> 10u) & 1u) != 0u); // 55 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 r5 = r5 + r0 + select(0xf03673feu, 0xa75cd60du, ((sel >> 12u) & 1u) != 0u); // 57 - r5 = r5 ^ dataset[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 + r5 = r5 ^ dataset[((rotl_imm(r7 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 r1 = r1 + r4 + select(0xdecd4794u, 0x8dfb96bbu, ((sel >> 7u) & 1u) != 0u); // 59 r3 = mulhi(r3, r2); // 60 r6 = r6 | r4; // 61 r5 = r5 ^ simd_shuffle_xor(r4, (ushort)8); // 62 - r3 = r3 ^ dataset[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 + r3 = r3 ^ dataset[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-3/program_bound.metal b/proto-cuda/packs-ca3-v4/v4-era-3/program_bound.metal index 0e3bcc4e6..39a26e51a 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-3/program_bound.metal +++ b/proto-cuda/packs-ca3-v4/v4-era-3/program_bound.metal @@ -53,7 +53,7 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = r7 ^ dataset[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 10 r7 = r7 ^ dataset[((rotl_imm(r1 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 11 r5 = r5 * r4; // 12 - r7 = r7 ^ dataset[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 + r7 = r7 ^ dataset[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 r6 = r6 ^ simd_shuffle_xor(r5, (ushort)16); // 14 r3 = r3 ^ simd_shuffle_xor(r5, (ushort)1); // 15 r2 = r2 | r7; // 16 @@ -69,9 +69,9 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = rotr_var(r7, r0); // 26 r4 = r5 * r7 + r4; // 27 r3 = r2 * r4 + r3; // 28 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 r2 = r2 ^ dataset[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x08000000u) & MASK]; // 30 - r1 = r1 ^ dataset[((rotl_imm(r5 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 + r1 = r1 ^ dataset[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 r7 = r7 + r2 + select(0x070888a8u, 0xe403240eu, ((sel >> 16u) & 1u) != 0u); // 32 r2 = r2 + r0 + select(0xf2e46d55u, 0x29701828u, ((sel >> 28u) & 1u) != 0u); // 33 r2 = r2 + r3 + select(0x58f75b87u, 0x343b7aeeu, ((sel >> 14u) & 1u) != 0u); // 34 @@ -84,26 +84,26 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = r7 - r0; // 41 r4 = r4 + r3 + select(0x6ced15b7u, 0x6df7aed4u, ((sel >> 4u) & 1u) != 0u); // 42 r7 = r7 ^ simd_shuffle_xor(r3, (ushort)4); // 43 - r0 = r0 ^ dataset[((rotl_imm(r7 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 + r0 = r0 ^ dataset[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 r1 = r1 + r6 + select(0xe09f54e9u, 0x83e825bfu, ((sel >> 14u) & 1u) != 0u); // 45 - r3 = r3 ^ dataset[((rotl_imm(r1 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 - r6 = r6 ^ dataset[((rotl_imm(r3 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 + r3 = r3 ^ dataset[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 + r6 = r6 ^ dataset[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 r4 = mulhi(r4, r2); // 48 r5 = r5 + r0 + select(0xa8bae6dfu, 0xf572bdb9u, ((sel >> 7u) & 1u) != 0u); // 49 r0 = r0 ^ simd_shuffle_xor(r7, (ushort)4); // 50 r6 = r6 + r0 + select(0x383b9260u, 0x11e17c61u, ((sel >> 19u) & 1u) != 0u); // 51 - r5 = r5 ^ dataset[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 + r5 = r5 ^ dataset[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 r6 = rotl_imm(r6, 12u); // 53 r3 = rotl_imm(r3, 12u); // 54 r2 = r2 + r1 + select(0xac6be8e3u, 0x18d67dbbu, ((sel >> 10u) & 1u) != 0u); // 55 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 r5 = r5 + r0 + select(0xf03673feu, 0xa75cd60du, ((sel >> 12u) & 1u) != 0u); // 57 - r5 = r5 ^ dataset[((rotl_imm(r0 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 + r5 = r5 ^ dataset[((rotl_imm(r7 * 0x27ea7effu, 30u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 r1 = r1 + r4 + select(0xdecd4794u, 0x8dfb96bbu, ((sel >> 7u) & 1u) != 0u); // 59 r3 = mulhi(r3, r2); // 60 r6 = r6 | r4; // 61 r5 = r5 ^ simd_shuffle_xor(r4, (ushort)8); // 62 - r3 = r3 ^ dataset[((rotl_imm(r6 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 + r3 = r3 ^ dataset[((rotl_imm(r2 * 0x27ea7effu, 30u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-3/vectors.h b/proto-cuda/packs-ca3-v4/v4-era-3/vectors.h index a2557ab32..210e50e5f 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-3/vectors.h +++ b/proto-cuda/packs-ca3-v4/v4-era-3/vectors.h @@ -11,22 +11,22 @@ static const uint32_t IGNEUM_VEC_BASE[IGNEUM_VEC_WARPS] = { 0u, 4096u, 1000000u }; static const uint64_t IGNEUM_VEC_OUT[IGNEUM_VEC_WARPS][32] = { { // base nonce 0 - 0x40b750d1c8a8070full, 0x0eabee774c28ab59ull, 0xcc13c43e53c39432ull, 0x6a9c15036cd8ea3eull, 0x33632873969d8edeull, 0x598d17a33791fdc9ull, 0x2eff1230b4254f1eull, 0xe94dd51fbd984bceull, - 0xb99fbeb7ee79e111ull, 0xf96bf58191e27007ull, 0x0d0eeb157f2fb140ull, 0xc63153f0272b9855ull, 0x73805af5544b3db0ull, 0x79c1b5a74c8560e9ull, 0x0ea9cca3277890e5ull, 0x1d176fab1cd2973aull, - 0x119ab8f645bf8a2dull, 0xf1c9b6889298e177ull, 0x46f901ebdb35452aull, 0x383a4d749d1ad0e8ull, 0xf4353dc68a21fac5ull, 0xa6c45db77d51deb9ull, 0x82603eb8e3a8df60ull, 0xf8245dd6e5b8de09ull, - 0x3c5ad35824c49228ull, 0xc2ea030a6104da05ull, 0x6059173f71a28844ull, 0x42356c03e7c14337ull, 0xe707beb14ff8afa9ull, 0x0d572180b81363b2ull, 0xbd4479364aaac437ull, 0x3e6fd0864a730c42ull + 0x37153bb806168fe2ull, 0x60f5c68f3450d761ull, 0xe58773158354763aull, 0xc982ec329d077c1bull, 0x9941a2b9c89196bdull, 0xd2b9fe1c2d2708b0ull, 0x1548e3bc5054162aull, 0x6c90433d112dc47dull, + 0x7103d3c3b6c356f0ull, 0x6d214d6bed92ea3bull, 0x68a576c3858eac19ull, 0x86c71bdb16dfc63dull, 0x75fbfb8841591f6aull, 0x62d2f7be3688f885ull, 0xb973b904cc383437ull, 0x30a6b60a33e5f513ull, + 0xf0cb3dbea6f9880cull, 0x8e3350ee3d5cf5efull, 0x280b6e74cf6f728dull, 0x7534c2cabcbd1a74ull, 0x4b1583c09489e3a3ull, 0x3664deb8ab165897ull, 0x129192db3d976bdfull, 0x903a6fe916f06f59ull, + 0x4bc03753c1d0f1ddull, 0xcbc8e21dcf41320dull, 0x5be555c4779de21full, 0x64edc870ef6605c3ull, 0x268a25f14b989ec3ull, 0xa27ab228fc882951ull, 0x668ab91ab515077bull, 0x6e5af942a42cca56ull }, { // base nonce 4096 - 0x0db15f7c616f2d25ull, 0x17b04f540b4846d6ull, 0xcddd5a8ee8a5efe0ull, 0x0cf0cf62d997c83eull, 0xbd5b7795b4dbd26cull, 0x2d7b8aa0a985480full, 0x10d7689b878233c2ull, 0xbeed4790abb65517ull, - 0x22c14a4e0a10eeaeull, 0xcdfa941f2e7960f9ull, 0x879bf9554455ec49ull, 0x5cec926ae13470fdull, 0xad086583b0bccd24ull, 0xa76fa9afc7d6d9f8ull, 0x4dc4e1184adb00c8ull, 0x5410c5c88a875d85ull, - 0x6ba2aed6fc622330ull, 0x4664d893aac13b54ull, 0x94bca09b542c77b6ull, 0x7ac3a74d54d15c2eull, 0x8fd7503272ef64b9ull, 0xd9ffc122880e7432ull, 0xd232c638aba55395ull, 0xf25659961199829cull, - 0xe87691a335d4d5b4ull, 0xc24e26d570d76954ull, 0xc2bf85ff359b2121ull, 0xa4195d2eec65f9c8ull, 0x260b4f6b0a9b6138ull, 0x6b7082ed96379d93ull, 0x7a4d1e4f9cd0276bull, 0x90afe3c042fed6e2ull + 0x15aa64176be3d2b7ull, 0x796085991cf0bc36ull, 0x4159555ce699c553ull, 0x41b7db70937ebff1ull, 0xb7aa5d515f39e98aull, 0xbf65a44a7f9d28fbull, 0xcbe8a4ff4bc229a7ull, 0xb896d2ef4595ef45ull, + 0x4d95f8c4d3682289ull, 0x0e9238d0398c51a5ull, 0xc0071c186ac50324ull, 0x1677c4c8b8143a40ull, 0x7c468c9e658fbd7aull, 0x06f20ab8ff3145b5ull, 0x493dd3161e781c21ull, 0x183408bb838cc8dfull, + 0x9685a6f441083252ull, 0x6e67cbfa06e3e94full, 0x625e299810c789d9ull, 0x0ef9be59f2c83740ull, 0xcc9f24f893fbc87full, 0x2d92a13784beee93ull, 0xced96a43f0c3aec2ull, 0xd381e745a95e0106ull, + 0xe91284aab02ea04dull, 0x1600dcb649b27a02ull, 0x6fcee68b9137f52dull, 0x685bfbdaa2b30404ull, 0xd329c9bbda12bf0eull, 0xffdb6ba911480017ull, 0x8fe5930d6114ae5eull, 0x25c6e5a41abf3065ull }, { // base nonce 1000000 - 0x06897e48ecfdf30dull, 0xc2407e8c2e0a6df7ull, 0xfc7b70f2531fc0efull, 0x747fb0709c82c21bull, 0x2c1b6c10825e53edull, 0x4fc0e3d09485cbc3ull, 0x36a8e3d8a83dcb87ull, 0xa9b04c51829184f8ull, - 0x16c05be25080fcbeull, 0x488eec7576d2a293ull, 0xab03139ccbf27fa0ull, 0x85246c99a37d87d0ull, 0x09b2c5ae915b6eafull, 0x8e0a34f2ec25ba0cull, 0xa5313b7d8a58e010ull, 0x8cb897eb47b626a6ull, - 0x3c06e7453858ef65ull, 0xcee4fc69243cbf1bull, 0xfe2f0b3329d6ef34ull, 0x3a19eccb6a374b0aull, 0xa8848523eb449ec3ull, 0xc84ea452644c79caull, 0x23f77955e2b1c1d8ull, 0x1ec75c6675ca3245ull, - 0xbe1c597e1dc237a3ull, 0x524841798abd82bcull, 0x21c1b17d075c9356ull, 0xbeea164bb5aed2faull, 0x7e8db3ca049cde0eull, 0x1a6f526d31708af9ull, 0x06096e878273cab7ull, 0x707399fc4e364b01ull + 0x4527f5599e3ef95full, 0x669c823cf598aa10ull, 0x0e0752b32f1a3b6cull, 0xbc1d131573a47fe6ull, 0x6016efeaccc5ad4eull, 0x73bde6a8fa03bb96ull, 0x9a0f79f0b5511922ull, 0x9058423b04f21c72ull, + 0x63d699605a596e8full, 0x34fc6307fc5f0721ull, 0x29b3da70e584df80ull, 0x665f23d76ec4525full, 0x5b6457bc4262bc99ull, 0x26dbbfb8288b09baull, 0x33364c2c16437b3aull, 0xb92c3bc1a472ac47ull, + 0xf7aa712b71bd56cdull, 0x049d31aef9d2570dull, 0x98dedb6bd48ff170ull, 0x2eb13790ac614f36ull, 0x600a76d6a6172203ull, 0x13d40013ed68f645ull, 0x68768385cfa4db7eull, 0x6a653712f829585full, + 0x0655fe0286a831b1ull, 0x21f1af4f5b206aaeull, 0xa17d5a7179884645ull, 0x282ac93600858673ull, 0x5198a93cc4deb1b0ull, 0xeed984bfe1c8fa33ull, 0x5b29ecf0552c2f4eull, 0xaee0fa0c181b9a4aull } }; diff --git a/proto-cuda/packs-ca3-v4/v4-era-3/vectors.json b/proto-cuda/packs-ca3-v4/v4-era-3/vectors.json index 7ef3fb872..d0b349861 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-3/vectors.json +++ b/proto-cuda/packs-ca3-v4/v4-era-3/vectors.json @@ -8,22 +8,22 @@ "source": "igneum-pow (Rust) CPU interpreter, generator v4, memory-hard dataset", "warps": [ {"base_nonce": 0, "expected": [ - "0x40b750d1c8a8070f", "0x0eabee774c28ab59", "0xcc13c43e53c39432", "0x6a9c15036cd8ea3e", "0x33632873969d8ede", "0x598d17a33791fdc9", "0x2eff1230b4254f1e", "0xe94dd51fbd984bce", - "0xb99fbeb7ee79e111", "0xf96bf58191e27007", "0x0d0eeb157f2fb140", "0xc63153f0272b9855", "0x73805af5544b3db0", "0x79c1b5a74c8560e9", "0x0ea9cca3277890e5", "0x1d176fab1cd2973a", - "0x119ab8f645bf8a2d", "0xf1c9b6889298e177", "0x46f901ebdb35452a", "0x383a4d749d1ad0e8", "0xf4353dc68a21fac5", "0xa6c45db77d51deb9", "0x82603eb8e3a8df60", "0xf8245dd6e5b8de09", - "0x3c5ad35824c49228", "0xc2ea030a6104da05", "0x6059173f71a28844", "0x42356c03e7c14337", "0xe707beb14ff8afa9", "0x0d572180b81363b2", "0xbd4479364aaac437", "0x3e6fd0864a730c42" + "0x37153bb806168fe2", "0x60f5c68f3450d761", "0xe58773158354763a", "0xc982ec329d077c1b", "0x9941a2b9c89196bd", "0xd2b9fe1c2d2708b0", "0x1548e3bc5054162a", "0x6c90433d112dc47d", + "0x7103d3c3b6c356f0", "0x6d214d6bed92ea3b", "0x68a576c3858eac19", "0x86c71bdb16dfc63d", "0x75fbfb8841591f6a", "0x62d2f7be3688f885", "0xb973b904cc383437", "0x30a6b60a33e5f513", + "0xf0cb3dbea6f9880c", "0x8e3350ee3d5cf5ef", "0x280b6e74cf6f728d", "0x7534c2cabcbd1a74", "0x4b1583c09489e3a3", "0x3664deb8ab165897", "0x129192db3d976bdf", "0x903a6fe916f06f59", + "0x4bc03753c1d0f1dd", "0xcbc8e21dcf41320d", "0x5be555c4779de21f", "0x64edc870ef6605c3", "0x268a25f14b989ec3", "0xa27ab228fc882951", "0x668ab91ab515077b", "0x6e5af942a42cca56" ]}, {"base_nonce": 4096, "expected": [ - "0x0db15f7c616f2d25", "0x17b04f540b4846d6", "0xcddd5a8ee8a5efe0", "0x0cf0cf62d997c83e", "0xbd5b7795b4dbd26c", "0x2d7b8aa0a985480f", "0x10d7689b878233c2", "0xbeed4790abb65517", - "0x22c14a4e0a10eeae", "0xcdfa941f2e7960f9", "0x879bf9554455ec49", "0x5cec926ae13470fd", "0xad086583b0bccd24", "0xa76fa9afc7d6d9f8", "0x4dc4e1184adb00c8", "0x5410c5c88a875d85", - "0x6ba2aed6fc622330", "0x4664d893aac13b54", "0x94bca09b542c77b6", "0x7ac3a74d54d15c2e", "0x8fd7503272ef64b9", "0xd9ffc122880e7432", "0xd232c638aba55395", "0xf25659961199829c", - "0xe87691a335d4d5b4", "0xc24e26d570d76954", "0xc2bf85ff359b2121", "0xa4195d2eec65f9c8", "0x260b4f6b0a9b6138", "0x6b7082ed96379d93", "0x7a4d1e4f9cd0276b", "0x90afe3c042fed6e2" + "0x15aa64176be3d2b7", "0x796085991cf0bc36", "0x4159555ce699c553", "0x41b7db70937ebff1", "0xb7aa5d515f39e98a", "0xbf65a44a7f9d28fb", "0xcbe8a4ff4bc229a7", "0xb896d2ef4595ef45", + "0x4d95f8c4d3682289", "0x0e9238d0398c51a5", "0xc0071c186ac50324", "0x1677c4c8b8143a40", "0x7c468c9e658fbd7a", "0x06f20ab8ff3145b5", "0x493dd3161e781c21", "0x183408bb838cc8df", + "0x9685a6f441083252", "0x6e67cbfa06e3e94f", "0x625e299810c789d9", "0x0ef9be59f2c83740", "0xcc9f24f893fbc87f", "0x2d92a13784beee93", "0xced96a43f0c3aec2", "0xd381e745a95e0106", + "0xe91284aab02ea04d", "0x1600dcb649b27a02", "0x6fcee68b9137f52d", "0x685bfbdaa2b30404", "0xd329c9bbda12bf0e", "0xffdb6ba911480017", "0x8fe5930d6114ae5e", "0x25c6e5a41abf3065" ]}, {"base_nonce": 1000000, "expected": [ - "0x06897e48ecfdf30d", "0xc2407e8c2e0a6df7", "0xfc7b70f2531fc0ef", "0x747fb0709c82c21b", "0x2c1b6c10825e53ed", "0x4fc0e3d09485cbc3", "0x36a8e3d8a83dcb87", "0xa9b04c51829184f8", - "0x16c05be25080fcbe", "0x488eec7576d2a293", "0xab03139ccbf27fa0", "0x85246c99a37d87d0", "0x09b2c5ae915b6eaf", "0x8e0a34f2ec25ba0c", "0xa5313b7d8a58e010", "0x8cb897eb47b626a6", - "0x3c06e7453858ef65", "0xcee4fc69243cbf1b", "0xfe2f0b3329d6ef34", "0x3a19eccb6a374b0a", "0xa8848523eb449ec3", "0xc84ea452644c79ca", "0x23f77955e2b1c1d8", "0x1ec75c6675ca3245", - "0xbe1c597e1dc237a3", "0x524841798abd82bc", "0x21c1b17d075c9356", "0xbeea164bb5aed2fa", "0x7e8db3ca049cde0e", "0x1a6f526d31708af9", "0x06096e878273cab7", "0x707399fc4e364b01" + "0x4527f5599e3ef95f", "0x669c823cf598aa10", "0x0e0752b32f1a3b6c", "0xbc1d131573a47fe6", "0x6016efeaccc5ad4e", "0x73bde6a8fa03bb96", "0x9a0f79f0b5511922", "0x9058423b04f21c72", + "0x63d699605a596e8f", "0x34fc6307fc5f0721", "0x29b3da70e584df80", "0x665f23d76ec4525f", "0x5b6457bc4262bc99", "0x26dbbfb8288b09ba", "0x33364c2c16437b3a", "0xb92c3bc1a472ac47", + "0xf7aa712b71bd56cd", "0x049d31aef9d2570d", "0x98dedb6bd48ff170", "0x2eb13790ac614f36", "0x600a76d6a6172203", "0x13d40013ed68f645", "0x68768385cfa4db7e", "0x6a653712f829585f", + "0x0655fe0286a831b1", "0x21f1af4f5b206aae", "0xa17d5a7179884645", "0x282ac93600858673", "0x5198a93cc4deb1b0", "0xeed984bfe1c8fa33", "0x5b29ecf0552c2f4e", "0xaee0fa0c181b9a4a" ]} ], "dataset_head": ["0x19c6837f", "0xbd3f6aed", "0x827e59af", "0x60286061", "0xdf3adfb8", "0xb8bede0d", "0x8cf592f5", "0x5d9abc1c", "0xc5f0629f", "0xc435a60e", "0xa85d0c39", "0xd41a5b0d", "0x03e38ae8", "0xfadee916", "0x4247a100", "0x3f33dc64"], diff --git a/proto-cuda/packs-ca3-v4/v4-era-4/kernel.cl b/proto-cuda/packs-ca3-v4/v4-era-4/kernel.cl index 70619d9d6..e861859cc 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-4/kernel.cl +++ b/proto-cuda/packs-ca3-v4/v4-era-4/kernel.cl @@ -215,7 +215,7 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -231,9 +231,9 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -246,26 +246,26 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-4/kernel.cu b/proto-cuda/packs-ca3-v4/v4-era-4/kernel.cu index 53f6f0107..38c1cb132 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-4/kernel.cu +++ b/proto-cuda/packs-ca3-v4/v4-era-4/kernel.cu @@ -71,7 +71,7 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = r7 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load r6 = r6 ^ __shfl_xor_sync(0xffffffffu, r5, 16); // 14 shfl r3 = r3 ^ __shfl_xor_sync(0xffffffffu, r5, 1); // 15 shfl r2 = r2 | r7; // 16 or @@ -87,9 +87,9 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -102,26 +102,26 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add r7 = r7 ^ __shfl_xor_sync(0xffffffffu, r3, 4); // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = __umulhi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add r0 = r0 ^ __shfl_xor_sync(0xffffffffu, r7, 4); // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = __umulhi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or r5 = r5 ^ __shfl_xor_sync(0xffffffffu, r4, 8); // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint32_t sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-4/kernel_bound.cl b/proto-cuda/packs-ca3-v4/v4-era-4/kernel_bound.cl index 210e25170..8364497a6 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-4/kernel_bound.cl +++ b/proto-cuda/packs-ca3-v4/v4-era-4/kernel_bound.cl @@ -215,7 +215,7 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -231,9 +231,9 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -246,26 +246,26 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul @@ -577,7 +577,7 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = r7 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -593,9 +593,9 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -608,26 +608,26 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-4/kernel_bound.cu b/proto-cuda/packs-ca3-v4/v4-era-4/kernel_bound.cu index 0cbfd453e..799a7f2af 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-4/kernel_bound.cu +++ b/proto-cuda/packs-ca3-v4/v4-era-4/kernel_bound.cu @@ -48,7 +48,7 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = r7 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load r6 = r6 ^ __shfl_xor_sync(0xffffffffu, r5, 16); // 14 shfl r3 = r3 ^ __shfl_xor_sync(0xffffffffu, r5, 1); // 15 shfl r2 = r2 | r7; // 16 or @@ -64,9 +64,9 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -79,26 +79,26 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add r7 = r7 ^ __shfl_xor_sync(0xffffffffu, r3, 4); // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = __umulhi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add r0 = r0 ^ __shfl_xor_sync(0xffffffffu, r7, 4); // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = __umulhi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or r5 = r5 ^ __shfl_xor_sync(0xffffffffu, r4, 8); // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint32_t sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-4/program.h b/proto-cuda/packs-ca3-v4/v4-era-4/program.h index 0d279daaa..68b2b8b8e 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-4/program.h +++ b/proto-cuda/packs-ca3-v4/v4-era-4/program.h @@ -15,7 +15,7 @@ #define IGNEUM_SEED_BYTES_HEX "edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07" #define IGNEUM_GENERATOR 4 #define IGNEUM_PROGRAM_ATTEMPT 0 -#define IGNEUM_PROGRAM_ID 0xc120d7963abdcd96ull +#define IGNEUM_PROGRAM_ID 0x1a4230699a6b9c60ull #define IGNEUM_DAY_STRING "bytes:69676e65756d2d6461792ffa50000000000000" #define IGNEUM_DAY_BYTES_HEX "69676e65756d2d6461792ffa50000000000000" #define IGNEUM_DAY0 0xceed56d7u @@ -32,6 +32,7 @@ // latency-shadow block (IGNEUM_SHADOW_INSTRS x IGNEUM_SHADOW_REPS per iteration); a worker that runs another class // refuses this pack, and a job line names the class it wants (class=v4 era=). #define IGNEUM_PROGRAM_CLASS "v4" +#define IGNEUM_PROGRAM_SUBVERSION 1 #define IGNEUM_ERA_SEED_HEX "5e0587f455a86e91e4990f5c481a34cca0044d3f3ae519adcae58ddc82885d31" // Class v3 construction (Counter ASIC 2.0, 5 October 2026, docs/plans/mixer-x4.md): version 2 loads; the dataset item // derivation applies the mixer IGNEUM_MIXER_MULT times per round (memhard.h), and the cache follows the growth rule. diff --git a/proto-cuda/packs-ca3-v4/v4-era-4/program.json b/proto-cuda/packs-ca3-v4/v4-era-4/program.json index b3eec7bbf..a0e9f5dbe 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-4/program.json +++ b/proto-cuda/packs-ca3-v4/v4-era-4/program.json @@ -2,7 +2,7 @@ "format": "igneum-program-pack-3", "generator": 4, "attempt": 0, - "program_id": "0xc120d7963abdcd96", + "program_id": "0x1a4230699a6b9c60", "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", "dataset_mode": "memory-hard", "seed": "igneum-epoch/edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07/day/69676e65756d2d6461792ffa50000000000000", @@ -16,6 +16,7 @@ "instruction_count": 64, "loads_per_hash": 128, "program_class": "v4", + "sub_version": 1, "era_seed_bytes": "5e0587f455a86e91e4990f5c481a34cca0044d3f3ae519adcae58ddc82885d31", "load_class": "mx8-era4488f3ed+sh256x27", "mixer_mult": 8, @@ -350,7 +351,7 @@ {"i": 10, "op": "load", "dst": 7, "src": 0, "src2": 2, "imm": "0xe075297c", "imm2": "0x5779c44c", "rot": 10, "bit": 22, "mask": 2, "width": 1, "win": 1, "off": 1}, {"i": 11, "op": "load", "dst": 7, "src": 1, "src2": 6, "imm": "0x65aa4311", "imm2": "0x4fe48ea9", "rot": 15, "bit": 9, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 12, "op": "mul", "dst": 5, "src": 4, "src2": 2, "imm": "0x1383d3ad", "imm2": "0xf3094b29", "rot": 8, "bit": 9, "mask": 2, "width": 1, "win": 0, "off": 0}, - {"i": 13, "op": "load", "dst": 7, "src": 6, "src2": 2, "imm": "0xed8a496f", "imm2": "0x3072c3c6", "rot": 28, "bit": 19, "mask": 8, "width": 1, "win": 1, "off": 1}, + {"i": 13, "op": "load", "dst": 7, "src": 3, "src2": 2, "imm": "0xed8a496f", "imm2": "0x3072c3c6", "rot": 28, "bit": 19, "mask": 8, "width": 1, "win": 1, "off": 1}, {"i": 14, "op": "shfl", "dst": 6, "src": 5, "src2": 0, "imm": "0x8b965b57", "imm2": "0xcfeca6c1", "rot": 12, "bit": 27, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 15, "op": "shfl", "dst": 3, "src": 5, "src2": 3, "imm": "0x877c7586", "imm2": "0xa9cb2a03", "rot": 2, "bit": 29, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 16, "op": "or", "dst": 2, "src": 7, "src2": 3, "imm": "0xb740221a", "imm2": "0x89d38d6d", "rot": 6, "bit": 31, "mask": 8, "width": 1, "win": 0, "off": 0}, @@ -366,9 +367,9 @@ {"i": 26, "op": "rotr", "dst": 7, "src": 0, "src2": 1, "imm": "0xd89ef484", "imm2": "0x20be3846", "rot": 12, "bit": 9, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 27, "op": "mad", "dst": 4, "src": 5, "src2": 7, "imm": "0xb48420ae", "imm2": "0x3d1f2485", "rot": 14, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 28, "op": "mad", "dst": 3, "src": 2, "src2": 4, "imm": "0xc5c46d76", "imm2": "0x700044b5", "rot": 22, "bit": 10, "mask": 2, "width": 1, "win": 0, "off": 0}, - {"i": 29, "op": "load", "dst": 1, "src": 4, "src2": 3, "imm": "0x0fbaf177", "imm2": "0xfff4f2ed", "rot": 20, "bit": 31, "mask": 2, "width": 1, "win": 0, "off": 0}, + {"i": 29, "op": "load", "dst": 1, "src": 6, "src2": 3, "imm": "0x0fbaf177", "imm2": "0xfff4f2ed", "rot": 20, "bit": 31, "mask": 2, "width": 1, "win": 0, "off": 0}, {"i": 30, "op": "load", "dst": 2, "src": 3, "src2": 0, "imm": "0xe90eb2e5", "imm2": "0xb0f9eb79", "rot": 27, "bit": 14, "mask": 4, "width": 1, "win": 2, "off": 2}, - {"i": 31, "op": "load", "dst": 1, "src": 5, "src2": 2, "imm": "0x97ba3fc3", "imm2": "0x7894e657", "rot": 3, "bit": 30, "mask": 16, "width": 1, "win": 1, "off": 1}, + {"i": 31, "op": "load", "dst": 1, "src": 4, "src2": 2, "imm": "0x97ba3fc3", "imm2": "0x7894e657", "rot": 3, "bit": 30, "mask": 16, "width": 1, "win": 1, "off": 1}, {"i": 32, "op": "add", "dst": 7, "src": 2, "src2": 7, "imm": "0x070888a8", "imm2": "0xe403240e", "rot": 2, "bit": 16, "mask": 2, "width": 1, "win": 0, "off": 0}, {"i": 33, "op": "add", "dst": 2, "src": 0, "src2": 5, "imm": "0xf2e46d55", "imm2": "0x29701828", "rot": 31, "bit": 28, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 34, "op": "add", "dst": 2, "src": 3, "src2": 0, "imm": "0x58f75b87", "imm2": "0x343b7aee", "rot": 12, "bit": 14, "mask": 4, "width": 1, "win": 0, "off": 0}, @@ -381,25 +382,25 @@ {"i": 41, "op": "sub", "dst": 7, "src": 0, "src2": 2, "imm": "0x0daf96ea", "imm2": "0x36f37be1", "rot": 5, "bit": 0, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 42, "op": "add", "dst": 4, "src": 3, "src2": 6, "imm": "0x6ced15b7", "imm2": "0x6df7aed4", "rot": 19, "bit": 4, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 43, "op": "shfl", "dst": 7, "src": 3, "src2": 5, "imm": "0x8ace05f3", "imm2": "0xd378ec12", "rot": 23, "bit": 10, "mask": 4, "width": 1, "win": 0, "off": 0}, - {"i": 44, "op": "load", "dst": 0, "src": 7, "src2": 4, "imm": "0xb0607786", "imm2": "0xc4acabbc", "rot": 13, "bit": 7, "mask": 16, "width": 1, "win": 1, "off": 1}, + {"i": 44, "op": "load", "dst": 0, "src": 2, "src2": 4, "imm": "0xb0607786", "imm2": "0xc4acabbc", "rot": 13, "bit": 7, "mask": 16, "width": 1, "win": 1, "off": 1}, {"i": 45, "op": "add", "dst": 1, "src": 6, "src2": 5, "imm": "0xe09f54e9", "imm2": "0x83e825bf", "rot": 23, "bit": 14, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 46, "op": "load", "dst": 3, "src": 1, "src2": 0, "imm": "0x63cc1e4e", "imm2": "0xa1be8118", "rot": 12, "bit": 6, "mask": 2, "width": 1, "win": 2, "off": 0}, - {"i": 47, "op": "load", "dst": 6, "src": 3, "src2": 7, "imm": "0x353f1d79", "imm2": "0x3b2e7456", "rot": 18, "bit": 18, "mask": 1, "width": 1, "win": 0, "off": 0}, + {"i": 46, "op": "load", "dst": 3, "src": 0, "src2": 0, "imm": "0x63cc1e4e", "imm2": "0xa1be8118", "rot": 12, "bit": 6, "mask": 2, "width": 1, "win": 2, "off": 0}, + {"i": 47, "op": "load", "dst": 6, "src": 4, "src2": 7, "imm": "0x353f1d79", "imm2": "0x3b2e7456", "rot": 18, "bit": 18, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 48, "op": "mulhi", "dst": 4, "src": 2, "src2": 7, "imm": "0x00d8a3cd", "imm2": "0x231866d2", "rot": 21, "bit": 20, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 49, "op": "add", "dst": 5, "src": 0, "src2": 2, "imm": "0xa8bae6df", "imm2": "0xf572bdb9", "rot": 14, "bit": 7, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 50, "op": "shfl", "dst": 0, "src": 7, "src2": 7, "imm": "0x81ef22e1", "imm2": "0x74438fc5", "rot": 28, "bit": 18, "mask": 4, "width": 1, "win": 0, "off": 0}, {"i": 51, "op": "add", "dst": 6, "src": 0, "src2": 6, "imm": "0x383b9260", "imm2": "0x11e17c61", "rot": 12, "bit": 19, "mask": 16, "width": 1, "win": 0, "off": 0}, - {"i": 52, "op": "load", "dst": 5, "src": 2, "src2": 2, "imm": "0xfb84f451", "imm2": "0x11cd863e", "rot": 21, "bit": 20, "mask": 8, "width": 1, "win": 0, "off": 0}, + {"i": 52, "op": "load", "dst": 5, "src": 0, "src2": 2, "imm": "0xfb84f451", "imm2": "0x11cd863e", "rot": 21, "bit": 20, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 53, "op": "rotl", "dst": 6, "src": 5, "src2": 4, "imm": "0xb1a7db6b", "imm2": "0x76686b9b", "rot": 12, "bit": 4, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 54, "op": "rotl", "dst": 3, "src": 6, "src2": 3, "imm": "0x6f981f52", "imm2": "0xd99aeba2", "rot": 12, "bit": 27, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 55, "op": "add", "dst": 2, "src": 1, "src2": 2, "imm": "0xac6be8e3", "imm2": "0x18d67dbb", "rot": 26, "bit": 10, "mask": 4, "width": 1, "win": 0, "off": 0}, - {"i": 56, "op": "load", "dst": 1, "src": 4, "src2": 0, "imm": "0x7e7f6a00", "imm2": "0x6f0747da", "rot": 25, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, + {"i": 56, "op": "load", "dst": 1, "src": 6, "src2": 0, "imm": "0x7e7f6a00", "imm2": "0x6f0747da", "rot": 25, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 57, "op": "add", "dst": 5, "src": 0, "src2": 4, "imm": "0xf03673fe", "imm2": "0xa75cd60d", "rot": 16, "bit": 12, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 58, "op": "load", "dst": 5, "src": 0, "src2": 2, "imm": "0x227f94a6", "imm2": "0x0e8344f9", "rot": 20, "bit": 10, "mask": 2, "width": 1, "win": 2, "off": 0}, + {"i": 58, "op": "load", "dst": 5, "src": 7, "src2": 2, "imm": "0x227f94a6", "imm2": "0x0e8344f9", "rot": 20, "bit": 10, "mask": 2, "width": 1, "win": 2, "off": 0}, {"i": 59, "op": "add", "dst": 1, "src": 4, "src2": 3, "imm": "0xdecd4794", "imm2": "0x8dfb96bb", "rot": 21, "bit": 7, "mask": 4, "width": 1, "win": 0, "off": 0}, {"i": 60, "op": "mulhi", "dst": 3, "src": 2, "src2": 2, "imm": "0x0dd268e0", "imm2": "0x53034ca9", "rot": 1, "bit": 8, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 61, "op": "or", "dst": 6, "src": 4, "src2": 7, "imm": "0x3a45a321", "imm2": "0x9bc59a5f", "rot": 25, "bit": 11, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 62, "op": "shfl", "dst": 5, "src": 4, "src2": 2, "imm": "0x8f229cc1", "imm2": "0xcaac64a2", "rot": 17, "bit": 13, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 63, "op": "load", "dst": 3, "src": 6, "src2": 6, "imm": "0xb2574178", "imm2": "0xcbcc798d", "rot": 28, "bit": 0, "mask": 16, "width": 1, "win": 1, "off": 1} + {"i": 63, "op": "load", "dst": 3, "src": 2, "src2": 6, "imm": "0xb2574178", "imm2": "0xcbcc798d", "rot": 28, "bit": 0, "mask": 16, "width": 1, "win": 1, "off": 1} ] } diff --git a/proto-cuda/packs-ca3-v4/v4-era-4/program.metal b/proto-cuda/packs-ca3-v4/v4-era-4/program.metal index 2a354e058..7fd4d1c4d 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-4/program.metal +++ b/proto-cuda/packs-ca3-v4/v4-era-4/program.metal @@ -51,7 +51,7 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = r7 ^ dataset[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 10 r7 = r7 ^ dataset[((rotl_imm(r1 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 11 r5 = r5 * r4; // 12 - r7 = r7 ^ dataset[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 + r7 = r7 ^ dataset[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 r6 = r6 ^ simd_shuffle_xor(r5, (ushort)16); // 14 r3 = r3 ^ simd_shuffle_xor(r5, (ushort)1); // 15 r2 = r2 | r7; // 16 @@ -67,9 +67,9 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = rotr_var(r7, r0); // 26 r4 = r5 * r7 + r4; // 27 r3 = r2 * r4 + r3; // 28 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 r2 = r2 ^ dataset[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x08000000u) & MASK]; // 30 - r1 = r1 ^ dataset[((rotl_imm(r5 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 + r1 = r1 ^ dataset[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 r7 = r7 + r2 + select(0x070888a8u, 0xe403240eu, ((sel >> 16u) & 1u) != 0u); // 32 r2 = r2 + r0 + select(0xf2e46d55u, 0x29701828u, ((sel >> 28u) & 1u) != 0u); // 33 r2 = r2 + r3 + select(0x58f75b87u, 0x343b7aeeu, ((sel >> 14u) & 1u) != 0u); // 34 @@ -82,26 +82,26 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = r7 - r0; // 41 r4 = r4 + r3 + select(0x6ced15b7u, 0x6df7aed4u, ((sel >> 4u) & 1u) != 0u); // 42 r7 = r7 ^ simd_shuffle_xor(r3, (ushort)4); // 43 - r0 = r0 ^ dataset[((rotl_imm(r7 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 + r0 = r0 ^ dataset[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 r1 = r1 + r6 + select(0xe09f54e9u, 0x83e825bfu, ((sel >> 14u) & 1u) != 0u); // 45 - r3 = r3 ^ dataset[((rotl_imm(r1 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 - r6 = r6 ^ dataset[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 + r3 = r3 ^ dataset[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 + r6 = r6 ^ dataset[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 r4 = mulhi(r4, r2); // 48 r5 = r5 + r0 + select(0xa8bae6dfu, 0xf572bdb9u, ((sel >> 7u) & 1u) != 0u); // 49 r0 = r0 ^ simd_shuffle_xor(r7, (ushort)4); // 50 r6 = r6 + r0 + select(0x383b9260u, 0x11e17c61u, ((sel >> 19u) & 1u) != 0u); // 51 - r5 = r5 ^ dataset[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 + r5 = r5 ^ dataset[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 r6 = rotl_imm(r6, 12u); // 53 r3 = rotl_imm(r3, 12u); // 54 r2 = r2 + r1 + select(0xac6be8e3u, 0x18d67dbbu, ((sel >> 10u) & 1u) != 0u); // 55 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 r5 = r5 + r0 + select(0xf03673feu, 0xa75cd60du, ((sel >> 12u) & 1u) != 0u); // 57 - r5 = r5 ^ dataset[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 + r5 = r5 ^ dataset[((rotl_imm(r7 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 r1 = r1 + r4 + select(0xdecd4794u, 0x8dfb96bbu, ((sel >> 7u) & 1u) != 0u); // 59 r3 = mulhi(r3, r2); // 60 r6 = r6 | r4; // 61 r5 = r5 ^ simd_shuffle_xor(r4, (ushort)8); // 62 - r3 = r3 ^ dataset[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 + r3 = r3 ^ dataset[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-4/program_bound.metal b/proto-cuda/packs-ca3-v4/v4-era-4/program_bound.metal index 8bb8dafcd..ea3f860c0 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-4/program_bound.metal +++ b/proto-cuda/packs-ca3-v4/v4-era-4/program_bound.metal @@ -53,7 +53,7 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = r7 ^ dataset[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 10 r7 = r7 ^ dataset[((rotl_imm(r1 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 11 r5 = r5 * r4; // 12 - r7 = r7 ^ dataset[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 + r7 = r7 ^ dataset[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 r6 = r6 ^ simd_shuffle_xor(r5, (ushort)16); // 14 r3 = r3 ^ simd_shuffle_xor(r5, (ushort)1); // 15 r2 = r2 | r7; // 16 @@ -69,9 +69,9 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = rotr_var(r7, r0); // 26 r4 = r5 * r7 + r4; // 27 r3 = r2 * r4 + r3; // 28 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 r2 = r2 ^ dataset[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x08000000u) & MASK]; // 30 - r1 = r1 ^ dataset[((rotl_imm(r5 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 + r1 = r1 ^ dataset[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 r7 = r7 + r2 + select(0x070888a8u, 0xe403240eu, ((sel >> 16u) & 1u) != 0u); // 32 r2 = r2 + r0 + select(0xf2e46d55u, 0x29701828u, ((sel >> 28u) & 1u) != 0u); // 33 r2 = r2 + r3 + select(0x58f75b87u, 0x343b7aeeu, ((sel >> 14u) & 1u) != 0u); // 34 @@ -84,26 +84,26 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = r7 - r0; // 41 r4 = r4 + r3 + select(0x6ced15b7u, 0x6df7aed4u, ((sel >> 4u) & 1u) != 0u); // 42 r7 = r7 ^ simd_shuffle_xor(r3, (ushort)4); // 43 - r0 = r0 ^ dataset[((rotl_imm(r7 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 + r0 = r0 ^ dataset[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 r1 = r1 + r6 + select(0xe09f54e9u, 0x83e825bfu, ((sel >> 14u) & 1u) != 0u); // 45 - r3 = r3 ^ dataset[((rotl_imm(r1 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 - r6 = r6 ^ dataset[((rotl_imm(r3 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 + r3 = r3 ^ dataset[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 + r6 = r6 ^ dataset[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 r4 = mulhi(r4, r2); // 48 r5 = r5 + r0 + select(0xa8bae6dfu, 0xf572bdb9u, ((sel >> 7u) & 1u) != 0u); // 49 r0 = r0 ^ simd_shuffle_xor(r7, (ushort)4); // 50 r6 = r6 + r0 + select(0x383b9260u, 0x11e17c61u, ((sel >> 19u) & 1u) != 0u); // 51 - r5 = r5 ^ dataset[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 + r5 = r5 ^ dataset[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 r6 = rotl_imm(r6, 12u); // 53 r3 = rotl_imm(r3, 12u); // 54 r2 = r2 + r1 + select(0xac6be8e3u, 0x18d67dbbu, ((sel >> 10u) & 1u) != 0u); // 55 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 r5 = r5 + r0 + select(0xf03673feu, 0xa75cd60du, ((sel >> 12u) & 1u) != 0u); // 57 - r5 = r5 ^ dataset[((rotl_imm(r0 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 + r5 = r5 ^ dataset[((rotl_imm(r7 * 0x4d38603du, 10u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 r1 = r1 + r4 + select(0xdecd4794u, 0x8dfb96bbu, ((sel >> 7u) & 1u) != 0u); // 59 r3 = mulhi(r3, r2); // 60 r6 = r6 | r4; // 61 r5 = r5 ^ simd_shuffle_xor(r4, (ushort)8); // 62 - r3 = r3 ^ dataset[((rotl_imm(r6 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 + r3 = r3 ^ dataset[((rotl_imm(r2 * 0x4d38603du, 10u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-4/vectors.h b/proto-cuda/packs-ca3-v4/v4-era-4/vectors.h index f11d1b8cd..df37fd4b2 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-4/vectors.h +++ b/proto-cuda/packs-ca3-v4/v4-era-4/vectors.h @@ -11,22 +11,22 @@ static const uint32_t IGNEUM_VEC_BASE[IGNEUM_VEC_WARPS] = { 0u, 4096u, 1000000u }; static const uint64_t IGNEUM_VEC_OUT[IGNEUM_VEC_WARPS][32] = { { // base nonce 0 - 0x32d75a818461b0feull, 0xfb58b5a9a0749f1aull, 0x7f1ef1c14a39acb7ull, 0x241bbf0d64ef82daull, 0xa91a888a98e1a327ull, 0x85236aa911aee1ccull, 0x2b621fc52bd4de06ull, 0xccb36c7b29b9f7eeull, - 0x81d5f71dddc9d99eull, 0x77e66510f1716ed8ull, 0x1dfc423f41cc325eull, 0xe4b7dc733eca22b9ull, 0x252e914ee1a1b811ull, 0xd60b7bb383400268ull, 0x68c45f316313a46eull, 0xb44e1d40659b5c0full, - 0x3317b1e961fa97caull, 0x048195572a542bd0ull, 0xbfc8c57f13ac1c9cull, 0x90b11f960392b615ull, 0x833c4d8bf2b4e7a3ull, 0x85e8a998130d39adull, 0x46989748ffc3f693ull, 0xbd9b68036b5db585ull, - 0x2a7b248a138b7764ull, 0xa808e45213e9e428ull, 0x1cd401d2d14d73caull, 0xf380476406eaa703ull, 0x61c78feb89981977ull, 0xf9f0d9a7a6a3bff5ull, 0x8e862238e6607e1bull, 0x81bb469c84523c38ull + 0x5e30f6e147847baaull, 0xd4a986fd412d5f58ull, 0x8fb8c6a3fd892bb6ull, 0x76fecdea24ce5c27ull, 0xa7a1e3ab7a0c8bf3ull, 0x6afcdc1109045dd6ull, 0x8db1733bfd1a60c1ull, 0xd8279191817ddadbull, + 0x455df586b88e2a27ull, 0x47e130d6d8dc7599ull, 0x011de4e7546a6aabull, 0x8019147975c644d9ull, 0xc6f45c4e3d1ad902ull, 0xad9f46665d838fdbull, 0xfde1bd6f79071a1dull, 0x15051235c0b8af20ull, + 0x80f2fc894a693840ull, 0xfb8b4aef39bb3fb2ull, 0xbc058211df33655cull, 0x8cc6b365ca25adecull, 0x944bd3b38dcd80ebull, 0xfed3b46304bb6b07ull, 0x8263c6bb59184d56ull, 0x0e925c43879fc3acull, + 0x188164779c652017ull, 0x2e81b531f96f89b2ull, 0x4dfde759744a0e2dull, 0xa341233a2985439aull, 0x2744e2772ef40647ull, 0xf3c112a8d85edd72ull, 0x96188dd19db1fe35ull, 0x8092a188e3b3d421ull }, { // base nonce 4096 - 0x16a13c6b8953521full, 0xb6fc3248eab8ad1bull, 0xd7636da2cadffb33ull, 0x0e4b29dbfbc26c03ull, 0xdc3628881ff4d880ull, 0xd7b5b538a83fa397ull, 0xd628f6e4c1faea5cull, 0x1b7271fe675ac8d2ull, - 0xc2e58dc8651838edull, 0xeceb83b391908d90ull, 0x4d2ced55dd770a57ull, 0x8476f19f2dced0beull, 0x7943efb7511ec325ull, 0x39517e839ac5cad6ull, 0xa93a24a60552fef4ull, 0xd06f827bfad0666full, - 0x8ad225381fec0d20ull, 0xc533e53132f29515ull, 0xccf64b20e5996785ull, 0xca92afef337bf781ull, 0x0346c9056575b868ull, 0xbd579e3afcad5227ull, 0xebbb7866335220acull, 0xae3cdc60a6b6614aull, - 0xbb0d1a802ba23492ull, 0x694ff6fa089a8a70ull, 0xb56b49abd8dae21dull, 0x8c1fac2bf309ccecull, 0x79b9689a4b61c18cull, 0x3cb6c19bfbcce52eull, 0xe908bb28f2574c34ull, 0x35080bd5bf213879ull + 0xa82dad92a4844966ull, 0x86bc877ac1d7f8d9ull, 0x886a0f6ede139660ull, 0x3d043f1b08e7aa8full, 0x2a6226cfd2ec2a5cull, 0xad8d41e58871e974ull, 0x54ec878017940ad5ull, 0x592c5afe0dfbc72eull, + 0x4392a5e9b3658e57ull, 0x18960bb0d90a4ad2ull, 0x38f18a85bd7bd3e5ull, 0x12cb6327d5c18f6dull, 0x2f83a92640900bbbull, 0x77dec98d18eab7f7ull, 0xa5e4e850404d7d34ull, 0x47516a8342cb090aull, + 0xb1150af86382544dull, 0x733a534296240f82ull, 0x99307562e9afd07dull, 0x9e30fc63c43e8359ull, 0x663bdc575f7cb53eull, 0x1ae34599ee0a5a92ull, 0x066016af49d4e98eull, 0x0379d2b2a32d47d7ull, + 0xb042dc705b5471e2ull, 0x4a97a5ef5cecbdb1ull, 0x78d63a6205e725f3ull, 0xeec10012ce4c9990ull, 0x9db61a6f9db1cb69ull, 0xf84b77e21dcdcbafull, 0x66889a95d5269fdbull, 0x9d9f3e77aca6c08bull }, { // base nonce 1000000 - 0x41302c423e89263bull, 0x5152c4fdb644c7ebull, 0xa9886ee87da41e91ull, 0x52a1e6209b2119baull, 0xce336b33dc0eea27ull, 0x59b61d9b32a49598ull, 0x9fcabf472fe74364ull, 0x5d0d09ce86a6ddbaull, - 0x884e7ebff4a1a28bull, 0xa39081f4965aac7dull, 0xdae88580d7337c0eull, 0xba0f4c8b0d79c15cull, 0x66392f1948e70a94ull, 0xa7f0aeab677fb0aaull, 0x0efa4e6ea43702e4ull, 0xc2944100f48711f1ull, - 0xe22bf44299adaf79ull, 0x1a6c099e2b3836caull, 0x7595a2366be1b0dfull, 0xa0dc4af86aec0108ull, 0xa0b96e19fea7aed8ull, 0x52ca60aeb1c3dfc6ull, 0xde7a719d2d766daaull, 0x477f9497ccbf9388ull, - 0x8ce858b1f1d19a94ull, 0xdeab496a568e6df5ull, 0x6eb8896aff7fc737ull, 0xa3ef1cbbc0084fb9ull, 0x8609281ee7caf702ull, 0x6a403ada59e40b68ull, 0x7ee1a0b4bafe9a8aull, 0x6a6017a19d0e6879ull + 0xbbf87e39249e556full, 0x2e7be83d02bb08f2ull, 0x9a537c58f37ddaabull, 0x9afb00cf31489e2bull, 0xa0d3d02f0027d744ull, 0xdf120e458e67366bull, 0xecdaa71fd4c3a70dull, 0x8bb9f646e2b5d5b6ull, + 0x034e7da0eafd1f35ull, 0xfe3b55dc8768445full, 0x64655b7a964f20c2ull, 0xadbf74ba32b3c89full, 0x100b92b978b97765ull, 0xff8533443a7c4e63ull, 0xa5fc6924addb2af2ull, 0x0b581cac03ea0795ull, + 0x6df3f94de517f7c7ull, 0xac03c73ec098613full, 0xc6b4458cdfa992b9ull, 0xc99165dba30c96a5ull, 0x9805654f34d19c45ull, 0x7f56df6ca7d15adfull, 0xc1614ccee9f557dfull, 0xafb2798b9acd19c6ull, + 0x7d595db677a8441full, 0x9d01cfa6ace20608ull, 0x5780b6be029f252full, 0x8a0c1d4d608f5a35ull, 0x82c3bdf675e67a55ull, 0x4dfea446387fc345ull, 0x184ee05378f8817eull, 0xf7ce3da4c735c97cull } }; diff --git a/proto-cuda/packs-ca3-v4/v4-era-4/vectors.json b/proto-cuda/packs-ca3-v4/v4-era-4/vectors.json index cc5539d3f..8e5322647 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-4/vectors.json +++ b/proto-cuda/packs-ca3-v4/v4-era-4/vectors.json @@ -8,22 +8,22 @@ "source": "igneum-pow (Rust) CPU interpreter, generator v4, memory-hard dataset", "warps": [ {"base_nonce": 0, "expected": [ - "0x32d75a818461b0fe", "0xfb58b5a9a0749f1a", "0x7f1ef1c14a39acb7", "0x241bbf0d64ef82da", "0xa91a888a98e1a327", "0x85236aa911aee1cc", "0x2b621fc52bd4de06", "0xccb36c7b29b9f7ee", - "0x81d5f71dddc9d99e", "0x77e66510f1716ed8", "0x1dfc423f41cc325e", "0xe4b7dc733eca22b9", "0x252e914ee1a1b811", "0xd60b7bb383400268", "0x68c45f316313a46e", "0xb44e1d40659b5c0f", - "0x3317b1e961fa97ca", "0x048195572a542bd0", "0xbfc8c57f13ac1c9c", "0x90b11f960392b615", "0x833c4d8bf2b4e7a3", "0x85e8a998130d39ad", "0x46989748ffc3f693", "0xbd9b68036b5db585", - "0x2a7b248a138b7764", "0xa808e45213e9e428", "0x1cd401d2d14d73ca", "0xf380476406eaa703", "0x61c78feb89981977", "0xf9f0d9a7a6a3bff5", "0x8e862238e6607e1b", "0x81bb469c84523c38" + "0x5e30f6e147847baa", "0xd4a986fd412d5f58", "0x8fb8c6a3fd892bb6", "0x76fecdea24ce5c27", "0xa7a1e3ab7a0c8bf3", "0x6afcdc1109045dd6", "0x8db1733bfd1a60c1", "0xd8279191817ddadb", + "0x455df586b88e2a27", "0x47e130d6d8dc7599", "0x011de4e7546a6aab", "0x8019147975c644d9", "0xc6f45c4e3d1ad902", "0xad9f46665d838fdb", "0xfde1bd6f79071a1d", "0x15051235c0b8af20", + "0x80f2fc894a693840", "0xfb8b4aef39bb3fb2", "0xbc058211df33655c", "0x8cc6b365ca25adec", "0x944bd3b38dcd80eb", "0xfed3b46304bb6b07", "0x8263c6bb59184d56", "0x0e925c43879fc3ac", + "0x188164779c652017", "0x2e81b531f96f89b2", "0x4dfde759744a0e2d", "0xa341233a2985439a", "0x2744e2772ef40647", "0xf3c112a8d85edd72", "0x96188dd19db1fe35", "0x8092a188e3b3d421" ]}, {"base_nonce": 4096, "expected": [ - "0x16a13c6b8953521f", "0xb6fc3248eab8ad1b", "0xd7636da2cadffb33", "0x0e4b29dbfbc26c03", "0xdc3628881ff4d880", "0xd7b5b538a83fa397", "0xd628f6e4c1faea5c", "0x1b7271fe675ac8d2", - "0xc2e58dc8651838ed", "0xeceb83b391908d90", "0x4d2ced55dd770a57", "0x8476f19f2dced0be", "0x7943efb7511ec325", "0x39517e839ac5cad6", "0xa93a24a60552fef4", "0xd06f827bfad0666f", - "0x8ad225381fec0d20", "0xc533e53132f29515", "0xccf64b20e5996785", "0xca92afef337bf781", "0x0346c9056575b868", "0xbd579e3afcad5227", "0xebbb7866335220ac", "0xae3cdc60a6b6614a", - "0xbb0d1a802ba23492", "0x694ff6fa089a8a70", "0xb56b49abd8dae21d", "0x8c1fac2bf309ccec", "0x79b9689a4b61c18c", "0x3cb6c19bfbcce52e", "0xe908bb28f2574c34", "0x35080bd5bf213879" + "0xa82dad92a4844966", "0x86bc877ac1d7f8d9", "0x886a0f6ede139660", "0x3d043f1b08e7aa8f", "0x2a6226cfd2ec2a5c", "0xad8d41e58871e974", "0x54ec878017940ad5", "0x592c5afe0dfbc72e", + "0x4392a5e9b3658e57", "0x18960bb0d90a4ad2", "0x38f18a85bd7bd3e5", "0x12cb6327d5c18f6d", "0x2f83a92640900bbb", "0x77dec98d18eab7f7", "0xa5e4e850404d7d34", "0x47516a8342cb090a", + "0xb1150af86382544d", "0x733a534296240f82", "0x99307562e9afd07d", "0x9e30fc63c43e8359", "0x663bdc575f7cb53e", "0x1ae34599ee0a5a92", "0x066016af49d4e98e", "0x0379d2b2a32d47d7", + "0xb042dc705b5471e2", "0x4a97a5ef5cecbdb1", "0x78d63a6205e725f3", "0xeec10012ce4c9990", "0x9db61a6f9db1cb69", "0xf84b77e21dcdcbaf", "0x66889a95d5269fdb", "0x9d9f3e77aca6c08b" ]}, {"base_nonce": 1000000, "expected": [ - "0x41302c423e89263b", "0x5152c4fdb644c7eb", "0xa9886ee87da41e91", "0x52a1e6209b2119ba", "0xce336b33dc0eea27", "0x59b61d9b32a49598", "0x9fcabf472fe74364", "0x5d0d09ce86a6ddba", - "0x884e7ebff4a1a28b", "0xa39081f4965aac7d", "0xdae88580d7337c0e", "0xba0f4c8b0d79c15c", "0x66392f1948e70a94", "0xa7f0aeab677fb0aa", "0x0efa4e6ea43702e4", "0xc2944100f48711f1", - "0xe22bf44299adaf79", "0x1a6c099e2b3836ca", "0x7595a2366be1b0df", "0xa0dc4af86aec0108", "0xa0b96e19fea7aed8", "0x52ca60aeb1c3dfc6", "0xde7a719d2d766daa", "0x477f9497ccbf9388", - "0x8ce858b1f1d19a94", "0xdeab496a568e6df5", "0x6eb8896aff7fc737", "0xa3ef1cbbc0084fb9", "0x8609281ee7caf702", "0x6a403ada59e40b68", "0x7ee1a0b4bafe9a8a", "0x6a6017a19d0e6879" + "0xbbf87e39249e556f", "0x2e7be83d02bb08f2", "0x9a537c58f37ddaab", "0x9afb00cf31489e2b", "0xa0d3d02f0027d744", "0xdf120e458e67366b", "0xecdaa71fd4c3a70d", "0x8bb9f646e2b5d5b6", + "0x034e7da0eafd1f35", "0xfe3b55dc8768445f", "0x64655b7a964f20c2", "0xadbf74ba32b3c89f", "0x100b92b978b97765", "0xff8533443a7c4e63", "0xa5fc6924addb2af2", "0x0b581cac03ea0795", + "0x6df3f94de517f7c7", "0xac03c73ec098613f", "0xc6b4458cdfa992b9", "0xc99165dba30c96a5", "0x9805654f34d19c45", "0x7f56df6ca7d15adf", "0xc1614ccee9f557df", "0xafb2798b9acd19c6", + "0x7d595db677a8441f", "0x9d01cfa6ace20608", "0x5780b6be029f252f", "0x8a0c1d4d608f5a35", "0x82c3bdf675e67a55", "0x4dfea446387fc345", "0x184ee05378f8817e", "0xf7ce3da4c735c97c" ]} ], "dataset_head": ["0x19c6837f", "0xbd3f6aed", "0x827e59af", "0x60286061", "0xdf3adfb8", "0xb8bede0d", "0x8cf592f5", "0x5d9abc1c", "0x680c3063", "0x64552beb", "0x43376a1c", "0x84d86df8", "0x15623a58", "0x50d157a7", "0x9d970ef9", "0x02b7d1e4"], diff --git a/proto-cuda/packs-ca3-v4/v4-era-5/kernel.cl b/proto-cuda/packs-ca3-v4/v4-era-5/kernel.cl index 41b4e47d0..44a5aef80 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-5/kernel.cl +++ b/proto-cuda/packs-ca3-v4/v4-era-5/kernel.cl @@ -215,7 +215,7 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -231,9 +231,9 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -246,26 +246,26 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-5/kernel.cu b/proto-cuda/packs-ca3-v4/v4-era-5/kernel.cu index 319729458..d978ced68 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-5/kernel.cu +++ b/proto-cuda/packs-ca3-v4/v4-era-5/kernel.cu @@ -71,7 +71,7 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = r7 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load r6 = r6 ^ __shfl_xor_sync(0xffffffffu, r5, 16); // 14 shfl r3 = r3 ^ __shfl_xor_sync(0xffffffffu, r5, 1); // 15 shfl r2 = r2 | r7; // 16 or @@ -87,9 +87,9 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -102,26 +102,26 @@ __global__ void igneum_hash(const uint32_t* ds, uint64_t* out, uint32_t baseNonc r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add r7 = r7 ^ __shfl_xor_sync(0xffffffffu, r3, 4); // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = __umulhi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add r0 = r0 ^ __shfl_xor_sync(0xffffffffu, r7, 4); // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = __umulhi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or r5 = r5 ^ __shfl_xor_sync(0xffffffffu, r4, 8); // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint32_t sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-5/kernel_bound.cl b/proto-cuda/packs-ca3-v4/v4-era-5/kernel_bound.cl index 324e97444..653e15dd6 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-5/kernel_bound.cl +++ b/proto-cuda/packs-ca3-v4/v4-era-5/kernel_bound.cl @@ -215,7 +215,7 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -231,9 +231,9 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -246,26 +246,26 @@ IGNEUM_KERNEL_HASH void igneum_hash(__global const uint* ds, __global ulong* out r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul @@ -577,7 +577,7 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = r7 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load { uint t_; IGNEUM_SHFL_XOR(t_, r5, 16u); r6 = r6 ^ t_; } // 14 shfl { uint t_; IGNEUM_SHFL_XOR(t_, r5, 1u); r3 = r3 ^ t_; } // 15 shfl r2 = r2 | r7; // 16 or @@ -593,9 +593,9 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -608,26 +608,26 @@ IGNEUM_KERNEL_HASH void igneum_hash_bound(__global const uint* ds, __global ulon r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add { uint t_; IGNEUM_SHFL_XOR(t_, r3, 4u); r7 = r7 ^ t_; } // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = mul_hi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add { uint t_; IGNEUM_SHFL_XOR(t_, r7, 4u); r0 = r0 ^ t_; } // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = mul_hi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or { uint t_; IGNEUM_SHFL_XOR(t_, r4, 8u); r5 = r5 ^ t_; } // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-5/kernel_bound.cu b/proto-cuda/packs-ca3-v4/v4-era-5/kernel_bound.cu index b87b863a6..c6aea6da3 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-5/kernel_bound.cu +++ b/proto-cuda/packs-ca3-v4/v4-era-5/kernel_bound.cu @@ -48,7 +48,7 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = r7 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 10 load r7 = r7 ^ ds[((rotl_imm(r1 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 11 load r5 = r5 * r4; // 12 mul - r7 = r7 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load + r7 = r7 ^ ds[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 13 load r6 = r6 ^ __shfl_xor_sync(0xffffffffu, r5, 16); // 14 shfl r3 = r3 ^ __shfl_xor_sync(0xffffffffu, r5, 1); // 15 shfl r2 = r2 | r7; // 16 or @@ -64,9 +64,9 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = rotr_var(r7, r0); // 26 rotr r4 = r5 * r7 + r4; // 27 mad r3 = r2 * r4 + r3; // 28 mad - r1 = r1 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 29 load r2 = r2 ^ ds[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x08000000u) & mask]; // 30 load - r1 = r1 ^ ds[((rotl_imm(r5 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load + r1 = r1 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 31 load r7 = r7 + r2 + ((((sel >> 16u) & 1u) != 0u) ? 0xe403240eu : 0x070888a8u); // 32 add r2 = r2 + r0 + ((((sel >> 28u) & 1u) != 0u) ? 0x29701828u : 0xf2e46d55u); // 33 add r2 = r2 + r3 + ((((sel >> 14u) & 1u) != 0u) ? 0x343b7aeeu : 0x58f75b87u); // 34 add @@ -79,26 +79,26 @@ __global__ void igneum_hash_bound(const uint32_t* ds, uint64_t* out, uint32_t ba r7 = r7 - r0; // 41 sub r4 = r4 + r3 + ((((sel >> 4u) & 1u) != 0u) ? 0x6df7aed4u : 0x6ced15b7u); // 42 add r7 = r7 ^ __shfl_xor_sync(0xffffffffu, r3, 4); // 43 shfl - r0 = r0 ^ ds[((rotl_imm(r7 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load + r0 = r0 ^ ds[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 44 load r1 = r1 + r6 + ((((sel >> 14u) & 1u) != 0u) ? 0x83e825bfu : 0xe09f54e9u); // 45 add - r3 = r3 ^ ds[((rotl_imm(r1 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load - r6 = r6 ^ ds[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load + r3 = r3 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 46 load + r6 = r6 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 47 load r4 = __umulhi(r4, r2); // 48 mulhi r5 = r5 + r0 + ((((sel >> 7u) & 1u) != 0u) ? 0xf572bdb9u : 0xa8bae6dfu); // 49 add r0 = r0 ^ __shfl_xor_sync(0xffffffffu, r7, 4); // 50 shfl r6 = r6 + r0 + ((((sel >> 19u) & 1u) != 0u) ? 0x11e17c61u : 0x383b9260u); // 51 add - r5 = r5 ^ ds[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load + r5 = r5 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 52 load r6 = rotl_imm(r6, 12u); // 53 rotl r3 = rotl_imm(r3, 12u); // 54 rotl r2 = r2 + r1 + ((((sel >> 10u) & 1u) != 0u) ? 0x18d67dbbu : 0xac6be8e3u); // 55 add - r1 = r1 ^ ds[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load + r1 = r1 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & mask]; // 56 load r5 = r5 + r0 + ((((sel >> 12u) & 1u) != 0u) ? 0xa75cd60du : 0xf03673feu); // 57 add - r5 = r5 ^ ds[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load + r5 = r5 ^ ds[((rotl_imm(r7 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & mask]; // 58 load r1 = r1 + r4 + ((((sel >> 7u) & 1u) != 0u) ? 0x8dfb96bbu : 0xdecd4794u); // 59 add r3 = __umulhi(r3, r2); // 60 mulhi r6 = r6 | r4; // 61 or r5 = r5 ^ __shfl_xor_sync(0xffffffffu, r4, 8); // 62 shfl - r3 = r3 ^ ds[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load + r3 = r3 ^ ds[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & mask]; // 63 load // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint32_t sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-5/program.h b/proto-cuda/packs-ca3-v4/v4-era-5/program.h index 11c7c9895..c5d5e4562 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-5/program.h +++ b/proto-cuda/packs-ca3-v4/v4-era-5/program.h @@ -15,7 +15,7 @@ #define IGNEUM_SEED_BYTES_HEX "edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07" #define IGNEUM_GENERATOR 4 #define IGNEUM_PROGRAM_ATTEMPT 0 -#define IGNEUM_PROGRAM_ID 0xc120d7963abdcd96ull +#define IGNEUM_PROGRAM_ID 0x1a4230699a6b9c60ull #define IGNEUM_DAY_STRING "bytes:69676e65756d2d6461792ffa50000000000000" #define IGNEUM_DAY_BYTES_HEX "69676e65756d2d6461792ffa50000000000000" #define IGNEUM_DAY0 0xceed56d7u @@ -32,6 +32,7 @@ // latency-shadow block (IGNEUM_SHADOW_INSTRS x IGNEUM_SHADOW_REPS per iteration); a worker that runs another class // refuses this pack, and a job line names the class it wants (class=v4 era=). #define IGNEUM_PROGRAM_CLASS "v4" +#define IGNEUM_PROGRAM_SUBVERSION 1 #define IGNEUM_ERA_SEED_HEX "7f450623297a954f493ca08abcdfe7142bb753900abcee38256266007b4b48b7" // Class v3 construction (Counter ASIC 2.0, 5 October 2026, docs/plans/mixer-x4.md): version 2 loads; the dataset item // derivation applies the mixer IGNEUM_MIXER_MULT times per round (memhard.h), and the cache follows the growth rule. diff --git a/proto-cuda/packs-ca3-v4/v4-era-5/program.json b/proto-cuda/packs-ca3-v4/v4-era-5/program.json index 8dae1d59a..f809df76f 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-5/program.json +++ b/proto-cuda/packs-ca3-v4/v4-era-5/program.json @@ -2,7 +2,7 @@ "format": "igneum-program-pack-3", "generator": 4, "attempt": 0, - "program_id": "0xc120d7963abdcd96", + "program_id": "0x1a4230699a6b9c60", "program_id_derivation": "FNV-1a 64 over 'igneum-program/' || generator_le32 || seed_words as little-endian bytes || attempt_le32", "dataset_mode": "memory-hard", "seed": "igneum-epoch/edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07/day/69676e65756d2d6461792ffa50000000000000", @@ -16,6 +16,7 @@ "instruction_count": 64, "loads_per_hash": 128, "program_class": "v4", + "sub_version": 1, "era_seed_bytes": "7f450623297a954f493ca08abcdfe7142bb753900abcee38256266007b4b48b7", "load_class": "mx8-eraf897c84e+sh256x27", "mixer_mult": 8, @@ -350,7 +351,7 @@ {"i": 10, "op": "load", "dst": 7, "src": 0, "src2": 2, "imm": "0xe075297c", "imm2": "0x5779c44c", "rot": 10, "bit": 22, "mask": 2, "width": 1, "win": 1, "off": 1}, {"i": 11, "op": "load", "dst": 7, "src": 1, "src2": 6, "imm": "0x65aa4311", "imm2": "0x4fe48ea9", "rot": 15, "bit": 9, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 12, "op": "mul", "dst": 5, "src": 4, "src2": 2, "imm": "0x1383d3ad", "imm2": "0xf3094b29", "rot": 8, "bit": 9, "mask": 2, "width": 1, "win": 0, "off": 0}, - {"i": 13, "op": "load", "dst": 7, "src": 6, "src2": 2, "imm": "0xed8a496f", "imm2": "0x3072c3c6", "rot": 28, "bit": 19, "mask": 8, "width": 1, "win": 1, "off": 1}, + {"i": 13, "op": "load", "dst": 7, "src": 3, "src2": 2, "imm": "0xed8a496f", "imm2": "0x3072c3c6", "rot": 28, "bit": 19, "mask": 8, "width": 1, "win": 1, "off": 1}, {"i": 14, "op": "shfl", "dst": 6, "src": 5, "src2": 0, "imm": "0x8b965b57", "imm2": "0xcfeca6c1", "rot": 12, "bit": 27, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 15, "op": "shfl", "dst": 3, "src": 5, "src2": 3, "imm": "0x877c7586", "imm2": "0xa9cb2a03", "rot": 2, "bit": 29, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 16, "op": "or", "dst": 2, "src": 7, "src2": 3, "imm": "0xb740221a", "imm2": "0x89d38d6d", "rot": 6, "bit": 31, "mask": 8, "width": 1, "win": 0, "off": 0}, @@ -366,9 +367,9 @@ {"i": 26, "op": "rotr", "dst": 7, "src": 0, "src2": 1, "imm": "0xd89ef484", "imm2": "0x20be3846", "rot": 12, "bit": 9, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 27, "op": "mad", "dst": 4, "src": 5, "src2": 7, "imm": "0xb48420ae", "imm2": "0x3d1f2485", "rot": 14, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 28, "op": "mad", "dst": 3, "src": 2, "src2": 4, "imm": "0xc5c46d76", "imm2": "0x700044b5", "rot": 22, "bit": 10, "mask": 2, "width": 1, "win": 0, "off": 0}, - {"i": 29, "op": "load", "dst": 1, "src": 4, "src2": 3, "imm": "0x0fbaf177", "imm2": "0xfff4f2ed", "rot": 20, "bit": 31, "mask": 2, "width": 1, "win": 0, "off": 0}, + {"i": 29, "op": "load", "dst": 1, "src": 6, "src2": 3, "imm": "0x0fbaf177", "imm2": "0xfff4f2ed", "rot": 20, "bit": 31, "mask": 2, "width": 1, "win": 0, "off": 0}, {"i": 30, "op": "load", "dst": 2, "src": 3, "src2": 0, "imm": "0xe90eb2e5", "imm2": "0xb0f9eb79", "rot": 27, "bit": 14, "mask": 4, "width": 1, "win": 2, "off": 2}, - {"i": 31, "op": "load", "dst": 1, "src": 5, "src2": 2, "imm": "0x97ba3fc3", "imm2": "0x7894e657", "rot": 3, "bit": 30, "mask": 16, "width": 1, "win": 1, "off": 1}, + {"i": 31, "op": "load", "dst": 1, "src": 4, "src2": 2, "imm": "0x97ba3fc3", "imm2": "0x7894e657", "rot": 3, "bit": 30, "mask": 16, "width": 1, "win": 1, "off": 1}, {"i": 32, "op": "add", "dst": 7, "src": 2, "src2": 7, "imm": "0x070888a8", "imm2": "0xe403240e", "rot": 2, "bit": 16, "mask": 2, "width": 1, "win": 0, "off": 0}, {"i": 33, "op": "add", "dst": 2, "src": 0, "src2": 5, "imm": "0xf2e46d55", "imm2": "0x29701828", "rot": 31, "bit": 28, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 34, "op": "add", "dst": 2, "src": 3, "src2": 0, "imm": "0x58f75b87", "imm2": "0x343b7aee", "rot": 12, "bit": 14, "mask": 4, "width": 1, "win": 0, "off": 0}, @@ -381,25 +382,25 @@ {"i": 41, "op": "sub", "dst": 7, "src": 0, "src2": 2, "imm": "0x0daf96ea", "imm2": "0x36f37be1", "rot": 5, "bit": 0, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 42, "op": "add", "dst": 4, "src": 3, "src2": 6, "imm": "0x6ced15b7", "imm2": "0x6df7aed4", "rot": 19, "bit": 4, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 43, "op": "shfl", "dst": 7, "src": 3, "src2": 5, "imm": "0x8ace05f3", "imm2": "0xd378ec12", "rot": 23, "bit": 10, "mask": 4, "width": 1, "win": 0, "off": 0}, - {"i": 44, "op": "load", "dst": 0, "src": 7, "src2": 4, "imm": "0xb0607786", "imm2": "0xc4acabbc", "rot": 13, "bit": 7, "mask": 16, "width": 1, "win": 1, "off": 1}, + {"i": 44, "op": "load", "dst": 0, "src": 2, "src2": 4, "imm": "0xb0607786", "imm2": "0xc4acabbc", "rot": 13, "bit": 7, "mask": 16, "width": 1, "win": 1, "off": 1}, {"i": 45, "op": "add", "dst": 1, "src": 6, "src2": 5, "imm": "0xe09f54e9", "imm2": "0x83e825bf", "rot": 23, "bit": 14, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 46, "op": "load", "dst": 3, "src": 1, "src2": 0, "imm": "0x63cc1e4e", "imm2": "0xa1be8118", "rot": 12, "bit": 6, "mask": 2, "width": 1, "win": 2, "off": 0}, - {"i": 47, "op": "load", "dst": 6, "src": 3, "src2": 7, "imm": "0x353f1d79", "imm2": "0x3b2e7456", "rot": 18, "bit": 18, "mask": 1, "width": 1, "win": 0, "off": 0}, + {"i": 46, "op": "load", "dst": 3, "src": 0, "src2": 0, "imm": "0x63cc1e4e", "imm2": "0xa1be8118", "rot": 12, "bit": 6, "mask": 2, "width": 1, "win": 2, "off": 0}, + {"i": 47, "op": "load", "dst": 6, "src": 4, "src2": 7, "imm": "0x353f1d79", "imm2": "0x3b2e7456", "rot": 18, "bit": 18, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 48, "op": "mulhi", "dst": 4, "src": 2, "src2": 7, "imm": "0x00d8a3cd", "imm2": "0x231866d2", "rot": 21, "bit": 20, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 49, "op": "add", "dst": 5, "src": 0, "src2": 2, "imm": "0xa8bae6df", "imm2": "0xf572bdb9", "rot": 14, "bit": 7, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 50, "op": "shfl", "dst": 0, "src": 7, "src2": 7, "imm": "0x81ef22e1", "imm2": "0x74438fc5", "rot": 28, "bit": 18, "mask": 4, "width": 1, "win": 0, "off": 0}, {"i": 51, "op": "add", "dst": 6, "src": 0, "src2": 6, "imm": "0x383b9260", "imm2": "0x11e17c61", "rot": 12, "bit": 19, "mask": 16, "width": 1, "win": 0, "off": 0}, - {"i": 52, "op": "load", "dst": 5, "src": 2, "src2": 2, "imm": "0xfb84f451", "imm2": "0x11cd863e", "rot": 21, "bit": 20, "mask": 8, "width": 1, "win": 0, "off": 0}, + {"i": 52, "op": "load", "dst": 5, "src": 0, "src2": 2, "imm": "0xfb84f451", "imm2": "0x11cd863e", "rot": 21, "bit": 20, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 53, "op": "rotl", "dst": 6, "src": 5, "src2": 4, "imm": "0xb1a7db6b", "imm2": "0x76686b9b", "rot": 12, "bit": 4, "mask": 16, "width": 1, "win": 0, "off": 0}, {"i": 54, "op": "rotl", "dst": 3, "src": 6, "src2": 3, "imm": "0x6f981f52", "imm2": "0xd99aeba2", "rot": 12, "bit": 27, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 55, "op": "add", "dst": 2, "src": 1, "src2": 2, "imm": "0xac6be8e3", "imm2": "0x18d67dbb", "rot": 26, "bit": 10, "mask": 4, "width": 1, "win": 0, "off": 0}, - {"i": 56, "op": "load", "dst": 1, "src": 4, "src2": 0, "imm": "0x7e7f6a00", "imm2": "0x6f0747da", "rot": 25, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, + {"i": 56, "op": "load", "dst": 1, "src": 6, "src2": 0, "imm": "0x7e7f6a00", "imm2": "0x6f0747da", "rot": 25, "bit": 28, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 57, "op": "add", "dst": 5, "src": 0, "src2": 4, "imm": "0xf03673fe", "imm2": "0xa75cd60d", "rot": 16, "bit": 12, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 58, "op": "load", "dst": 5, "src": 0, "src2": 2, "imm": "0x227f94a6", "imm2": "0x0e8344f9", "rot": 20, "bit": 10, "mask": 2, "width": 1, "win": 2, "off": 0}, + {"i": 58, "op": "load", "dst": 5, "src": 7, "src2": 2, "imm": "0x227f94a6", "imm2": "0x0e8344f9", "rot": 20, "bit": 10, "mask": 2, "width": 1, "win": 2, "off": 0}, {"i": 59, "op": "add", "dst": 1, "src": 4, "src2": 3, "imm": "0xdecd4794", "imm2": "0x8dfb96bb", "rot": 21, "bit": 7, "mask": 4, "width": 1, "win": 0, "off": 0}, {"i": 60, "op": "mulhi", "dst": 3, "src": 2, "src2": 2, "imm": "0x0dd268e0", "imm2": "0x53034ca9", "rot": 1, "bit": 8, "mask": 8, "width": 1, "win": 0, "off": 0}, {"i": 61, "op": "or", "dst": 6, "src": 4, "src2": 7, "imm": "0x3a45a321", "imm2": "0x9bc59a5f", "rot": 25, "bit": 11, "mask": 1, "width": 1, "win": 0, "off": 0}, {"i": 62, "op": "shfl", "dst": 5, "src": 4, "src2": 2, "imm": "0x8f229cc1", "imm2": "0xcaac64a2", "rot": 17, "bit": 13, "mask": 8, "width": 1, "win": 0, "off": 0}, - {"i": 63, "op": "load", "dst": 3, "src": 6, "src2": 6, "imm": "0xb2574178", "imm2": "0xcbcc798d", "rot": 28, "bit": 0, "mask": 16, "width": 1, "win": 1, "off": 1} + {"i": 63, "op": "load", "dst": 3, "src": 2, "src2": 6, "imm": "0xb2574178", "imm2": "0xcbcc798d", "rot": 28, "bit": 0, "mask": 16, "width": 1, "win": 1, "off": 1} ] } diff --git a/proto-cuda/packs-ca3-v4/v4-era-5/program.metal b/proto-cuda/packs-ca3-v4/v4-era-5/program.metal index 84ec07eeb..b36bf1473 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-5/program.metal +++ b/proto-cuda/packs-ca3-v4/v4-era-5/program.metal @@ -51,7 +51,7 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = r7 ^ dataset[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 10 r7 = r7 ^ dataset[((rotl_imm(r1 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 11 r5 = r5 * r4; // 12 - r7 = r7 ^ dataset[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 + r7 = r7 ^ dataset[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 r6 = r6 ^ simd_shuffle_xor(r5, (ushort)16); // 14 r3 = r3 ^ simd_shuffle_xor(r5, (ushort)1); // 15 r2 = r2 | r7; // 16 @@ -67,9 +67,9 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = rotr_var(r7, r0); // 26 r4 = r5 * r7 + r4; // 27 r3 = r2 * r4 + r3; // 28 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 r2 = r2 ^ dataset[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x08000000u) & MASK]; // 30 - r1 = r1 ^ dataset[((rotl_imm(r5 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 + r1 = r1 ^ dataset[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 r7 = r7 + r2 + select(0x070888a8u, 0xe403240eu, ((sel >> 16u) & 1u) != 0u); // 32 r2 = r2 + r0 + select(0xf2e46d55u, 0x29701828u, ((sel >> 28u) & 1u) != 0u); // 33 r2 = r2 + r3 + select(0x58f75b87u, 0x343b7aeeu, ((sel >> 14u) & 1u) != 0u); // 34 @@ -82,26 +82,26 @@ kernel void igneum_hash(device const uint* dataset [[buffer(0)]], r7 = r7 - r0; // 41 r4 = r4 + r3 + select(0x6ced15b7u, 0x6df7aed4u, ((sel >> 4u) & 1u) != 0u); // 42 r7 = r7 ^ simd_shuffle_xor(r3, (ushort)4); // 43 - r0 = r0 ^ dataset[((rotl_imm(r7 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 + r0 = r0 ^ dataset[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 r1 = r1 + r6 + select(0xe09f54e9u, 0x83e825bfu, ((sel >> 14u) & 1u) != 0u); // 45 - r3 = r3 ^ dataset[((rotl_imm(r1 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 - r6 = r6 ^ dataset[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 + r3 = r3 ^ dataset[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 + r6 = r6 ^ dataset[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 r4 = mulhi(r4, r2); // 48 r5 = r5 + r0 + select(0xa8bae6dfu, 0xf572bdb9u, ((sel >> 7u) & 1u) != 0u); // 49 r0 = r0 ^ simd_shuffle_xor(r7, (ushort)4); // 50 r6 = r6 + r0 + select(0x383b9260u, 0x11e17c61u, ((sel >> 19u) & 1u) != 0u); // 51 - r5 = r5 ^ dataset[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 + r5 = r5 ^ dataset[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 r6 = rotl_imm(r6, 12u); // 53 r3 = rotl_imm(r3, 12u); // 54 r2 = r2 + r1 + select(0xac6be8e3u, 0x18d67dbbu, ((sel >> 10u) & 1u) != 0u); // 55 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 r5 = r5 + r0 + select(0xf03673feu, 0xa75cd60du, ((sel >> 12u) & 1u) != 0u); // 57 - r5 = r5 ^ dataset[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 + r5 = r5 ^ dataset[((rotl_imm(r7 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 r1 = r1 + r4 + select(0xdecd4794u, 0x8dfb96bbu, ((sel >> 7u) & 1u) != 0u); // 59 r3 = mulhi(r3, r2); // 60 r6 = r6 | r4; // 61 r5 = r5 ^ simd_shuffle_xor(r4, (ushort)8); // 62 - r3 = r3 ^ dataset[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 + r3 = r3 ^ dataset[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-5/program_bound.metal b/proto-cuda/packs-ca3-v4/v4-era-5/program_bound.metal index 56ff04a65..054dff67c 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-5/program_bound.metal +++ b/proto-cuda/packs-ca3-v4/v4-era-5/program_bound.metal @@ -53,7 +53,7 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = r7 ^ dataset[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 10 r7 = r7 ^ dataset[((rotl_imm(r1 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 11 r5 = r5 * r4; // 12 - r7 = r7 ^ dataset[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 + r7 = r7 ^ dataset[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 13 r6 = r6 ^ simd_shuffle_xor(r5, (ushort)16); // 14 r3 = r3 ^ simd_shuffle_xor(r5, (ushort)1); // 15 r2 = r2 | r7; // 16 @@ -69,9 +69,9 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = rotr_var(r7, r0); // 26 r4 = r5 * r7 + r4; // 27 r3 = r2 * r4 + r3; // 28 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 29 r2 = r2 ^ dataset[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x08000000u) & MASK]; // 30 - r1 = r1 ^ dataset[((rotl_imm(r5 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 + r1 = r1 ^ dataset[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 31 r7 = r7 + r2 + select(0x070888a8u, 0xe403240eu, ((sel >> 16u) & 1u) != 0u); // 32 r2 = r2 + r0 + select(0xf2e46d55u, 0x29701828u, ((sel >> 28u) & 1u) != 0u); // 33 r2 = r2 + r3 + select(0x58f75b87u, 0x343b7aeeu, ((sel >> 14u) & 1u) != 0u); // 34 @@ -84,26 +84,26 @@ kernel void igneum_hash_bound(device const uint* dataset [[buffer(0)]], r7 = r7 - r0; // 41 r4 = r4 + r3 + select(0x6ced15b7u, 0x6df7aed4u, ((sel >> 4u) & 1u) != 0u); // 42 r7 = r7 ^ simd_shuffle_xor(r3, (ushort)4); // 43 - r0 = r0 ^ dataset[((rotl_imm(r7 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 + r0 = r0 ^ dataset[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 44 r1 = r1 + r6 + select(0xe09f54e9u, 0x83e825bfu, ((sel >> 14u) & 1u) != 0u); // 45 - r3 = r3 ^ dataset[((rotl_imm(r1 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 - r6 = r6 ^ dataset[((rotl_imm(r3 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 + r3 = r3 ^ dataset[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 46 + r6 = r6 ^ dataset[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 47 r4 = mulhi(r4, r2); // 48 r5 = r5 + r0 + select(0xa8bae6dfu, 0xf572bdb9u, ((sel >> 7u) & 1u) != 0u); // 49 r0 = r0 ^ simd_shuffle_xor(r7, (ushort)4); // 50 r6 = r6 + r0 + select(0x383b9260u, 0x11e17c61u, ((sel >> 19u) & 1u) != 0u); // 51 - r5 = r5 ^ dataset[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 + r5 = r5 ^ dataset[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 52 r6 = rotl_imm(r6, 12u); // 53 r3 = rotl_imm(r3, 12u); // 54 r2 = r2 + r1 + select(0xac6be8e3u, 0x18d67dbbu, ((sel >> 10u) & 1u) != 0u); // 55 - r1 = r1 ^ dataset[((rotl_imm(r4 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 + r1 = r1 ^ dataset[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x0fffffffu) | 0x00000000u) & MASK]; // 56 r5 = r5 + r0 + select(0xf03673feu, 0xa75cd60du, ((sel >> 12u) & 1u) != 0u); // 57 - r5 = r5 ^ dataset[((rotl_imm(r0 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 + r5 = r5 ^ dataset[((rotl_imm(r7 * 0x03ac37adu, 22u) & 0x03ffffffu) | 0x00000000u) & MASK]; // 58 r1 = r1 + r4 + select(0xdecd4794u, 0x8dfb96bbu, ((sel >> 7u) & 1u) != 0u); // 59 r3 = mulhi(r3, r2); // 60 r6 = r6 | r4; // 61 r5 = r5 ^ simd_shuffle_xor(r4, (ushort)8); // 62 - r3 = r3 ^ dataset[((rotl_imm(r6 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 + r3 = r3 ^ dataset[((rotl_imm(r2 * 0x03ac37adu, 22u) & 0x07ffffffu) | 0x08000000u) & MASK]; // 63 // latency-shadow block (Counter ASIC 3.0 item 8): 256 ALU instructions x 27 passes after instruction 63, no load for (uint sh = 0u; sh < 27u; ++sh) { r7 = r7 * r3; // s0 mul diff --git a/proto-cuda/packs-ca3-v4/v4-era-5/vectors.h b/proto-cuda/packs-ca3-v4/v4-era-5/vectors.h index 58dfa5e27..41a8fd18a 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-5/vectors.h +++ b/proto-cuda/packs-ca3-v4/v4-era-5/vectors.h @@ -11,22 +11,22 @@ static const uint32_t IGNEUM_VEC_BASE[IGNEUM_VEC_WARPS] = { 0u, 4096u, 1000000u }; static const uint64_t IGNEUM_VEC_OUT[IGNEUM_VEC_WARPS][32] = { { // base nonce 0 - 0xbf945be0cc8d3f41ull, 0x34be8a9b058957efull, 0xa790f250cb3f84c2ull, 0xf348a3adcb120feeull, 0x84ffe7a18320fce6ull, 0xc3ca0cd342a7b5a0ull, 0xc661be2913cc0a16ull, 0x42a2613074355476ull, - 0x652f7593de7c1c6bull, 0x8b82eec6d8a4cdb5ull, 0x64a052482e4aa45aull, 0x945d11e95d050e91ull, 0x9922b0bf0a9b65afull, 0xa6a46d687a41eea8ull, 0x1cd22c7c5a116cadull, 0x3bb0fe59f1d68bb0ull, - 0x392c2e38402ce2ceull, 0xce206717bf858f7bull, 0x725267c1b0a569c1ull, 0xb1a10c27e394a06cull, 0x8694ba08f13dadcaull, 0x9f6e2f304e7f8410ull, 0xfca54880fe409efbull, 0x8ddf5d9f26f6651aull, - 0x7744b0375f6a5356ull, 0x2ec062f98cea9669ull, 0x1fc1df8a93493c01ull, 0xe58efdbe3b0fded0ull, 0xbc80f43278e4a3aeull, 0xc576991cd263499bull, 0x6a964020bdafa9caull, 0x23d6a9f3a43b088bull + 0x5fb133e6c14c3239ull, 0xb360d37aad99f76eull, 0x3da84fceefd06da5ull, 0xb2f803d8b83b07f3ull, 0xb19744c94a9744e4ull, 0x23c93b9aa7c68069ull, 0x912436b29f5fbcf3ull, 0xf6313962096b23d1ull, + 0xc82d75c830055863ull, 0x8933404595905aacull, 0x8edb7eab7c52d898ull, 0xe18afb092d408221ull, 0x00e2ff8b85b0f958ull, 0x138c26a6b2a01fa9ull, 0xf149c5571b8a011eull, 0x7b4e2cbed63486faull, + 0xb8aa812f44e45ed5ull, 0x61e2ceb11adede7bull, 0x86dda499d4f04da5ull, 0x9b97c751cc58b065ull, 0x8d4fdd8fa6de313full, 0xd01cbad514f3184full, 0x41313afa438ff648ull, 0x3d2e3f3816471876ull, + 0x465cc98a2fddec00ull, 0x268e1eb581c20a56ull, 0xb4cd4af84b66c5daull, 0x69ccaa63aab033eeull, 0x20b53d1e00c359e9ull, 0xd6a3c40b2e86712dull, 0x6bbb5a2bd570bb00ull, 0x2aa8b2436df218edull }, { // base nonce 4096 - 0x39a9f8aba6a9c7abull, 0xf1daab939a9c3217ull, 0x5831fcce18c03b2full, 0xb8ff659519b96eedull, 0x88d08144f09ffb22ull, 0xa373485c22133291ull, 0xfc82bfd2743de9dbull, 0x19dffd993bf1a1a3ull, - 0xec61385b02ed1eecull, 0xe3a705fedd476c62ull, 0x012af0af0abd2f1bull, 0xacbfc40c16d1c409ull, 0x64e16756a429ee6aull, 0x9a8b8c542b85d64bull, 0x95b962ec795480c1ull, 0x11a35a7657f86c66ull, - 0x4ae11f4a8b22a8edull, 0x649bd0de4210bbb2ull, 0xd9e81d1e0c794619ull, 0x865a6073aeaad870ull, 0xcc691a4eb315ed94ull, 0x7bdf6b0662f171e6ull, 0xde979c126cd8b9a8ull, 0x801a11f95defd5baull, - 0xe0b160c42c39df59ull, 0x2319e68444cacb1bull, 0xd8beee32eb63a71eull, 0x272e524e202c58dbull, 0xeefad04ef941e833ull, 0x98b08bb5658177b1ull, 0xeb6833af292f958eull, 0xb6b358ffd3b2de03ull + 0xc3c344c2ff16bff0ull, 0x537b196cd4cdbb09ull, 0x65fca37074e405f4ull, 0x072f943a4caffb36ull, 0x662266cf8de82a8aull, 0xb860ab3d16ae86f7ull, 0x5f98e443ce34f1bbull, 0xce1c9ca2339c0e42ull, + 0xccd68b4df195bbc9ull, 0x2866b38d4a401168ull, 0x9786a1957c75e7adull, 0x3ec5fc87c207ce1aull, 0x1fce372f3838e249ull, 0x0dde9ad1dc8938a3ull, 0xed1579fda990b570ull, 0x66bcd22759864a63ull, + 0x414d18a7c2507713ull, 0x0baddd09cc36a520ull, 0x8cd11f2ce02057b2ull, 0x8d898aac85fd75aaull, 0xea1acc6c93538ab9ull, 0x5d05a096b6bb636eull, 0x87e90c4240907c75ull, 0x049242a31f44ee9aull, + 0x2d0f84f4dd7cbfa8ull, 0x87694b7df4a79af1ull, 0xaaaafbe9f79bc92dull, 0x300a667ee303c8d5ull, 0x2666fabf6267e27full, 0x198602472c92fcadull, 0xa59eeed45b81af4aull, 0x22d7d46002bc7e7full }, { // base nonce 1000000 - 0xb4835ddebdbfbaebull, 0x05ececfd8ef508ccull, 0x4bc1315c1b1ce4c8ull, 0xe13eca621f2ff598ull, 0x6fffb12762010b6cull, 0x78139a212e0870eeull, 0xe9e197bebebbce63ull, 0xb485f4c5f50377bdull, - 0x1284446e016546c1ull, 0xa2e4a3aefd217a73ull, 0xa484b974f813abb7ull, 0xf9959eac63a1401cull, 0x77b081fd93294af8ull, 0x1fc7fc1eb3d9eaabull, 0x71c51d4214cb47f0ull, 0x52171833d8d341f0ull, - 0x5699e6eae25c5854ull, 0x34752dd16c6ce88full, 0x353dd3b0890ba109ull, 0x696b0afc8f6fe70eull, 0x2b30eaa48b77cd0cull, 0x6c600c3b87409c38ull, 0x26ead9ba20d15168ull, 0xc93e5f5a261bc786ull, - 0x8606f09c2c74c81cull, 0x1b3f9792e5247d66ull, 0xf8bb901d0dd87bfaull, 0xbc939e016a57b734ull, 0x7bbbffc2dbcbc12aull, 0x51beb5108f2ae2a4ull, 0x37b252067e6cc262ull, 0xf038a9ff99426f88ull + 0xfcb7fbc29dad03d4ull, 0x54b64718d6fdcc0dull, 0x9c938236394bba35ull, 0x7c9b920dd87181bbull, 0xe61f6268c5e7e8a0ull, 0xf7c2cfd988090e76ull, 0xaec2e24e7050a52aull, 0x37ffb04710cce394ull, + 0x03046fa86bf21b62ull, 0x00785f0d4ed2331aull, 0x321a6fa31bc9b391ull, 0xdf88e6417dec1c9eull, 0x1b6ec67bbcd424d6ull, 0xa247dc89c7f3cc6bull, 0x1475f9ac604490b1ull, 0x106637b278da24a8ull, + 0xa697188fec6bdb0aull, 0x7e4c0201314281a7ull, 0xa8c7742d814fc0d1ull, 0xb07431c74a4506e3ull, 0xa9d8974c47e028cbull, 0x42189e4fdd512dc5ull, 0xc6fe11a9e9153822ull, 0x4ea57f7253864742ull, + 0xaabc3663cf578aefull, 0xf28f68780e809bfeull, 0x2df16b27d9eb162eull, 0x0f8ccb24b6ab2297ull, 0x863b7048b78f5453ull, 0x63652a33014e3f00ull, 0xb107d73ffd8431ffull, 0xcd7d8e5f0bc30687ull } }; diff --git a/proto-cuda/packs-ca3-v4/v4-era-5/vectors.json b/proto-cuda/packs-ca3-v4/v4-era-5/vectors.json index 197245d50..dcb7593b6 100644 --- a/proto-cuda/packs-ca3-v4/v4-era-5/vectors.json +++ b/proto-cuda/packs-ca3-v4/v4-era-5/vectors.json @@ -8,22 +8,22 @@ "source": "igneum-pow (Rust) CPU interpreter, generator v4, memory-hard dataset", "warps": [ {"base_nonce": 0, "expected": [ - "0xbf945be0cc8d3f41", "0x34be8a9b058957ef", "0xa790f250cb3f84c2", "0xf348a3adcb120fee", "0x84ffe7a18320fce6", "0xc3ca0cd342a7b5a0", "0xc661be2913cc0a16", "0x42a2613074355476", - "0x652f7593de7c1c6b", "0x8b82eec6d8a4cdb5", "0x64a052482e4aa45a", "0x945d11e95d050e91", "0x9922b0bf0a9b65af", "0xa6a46d687a41eea8", "0x1cd22c7c5a116cad", "0x3bb0fe59f1d68bb0", - "0x392c2e38402ce2ce", "0xce206717bf858f7b", "0x725267c1b0a569c1", "0xb1a10c27e394a06c", "0x8694ba08f13dadca", "0x9f6e2f304e7f8410", "0xfca54880fe409efb", "0x8ddf5d9f26f6651a", - "0x7744b0375f6a5356", "0x2ec062f98cea9669", "0x1fc1df8a93493c01", "0xe58efdbe3b0fded0", "0xbc80f43278e4a3ae", "0xc576991cd263499b", "0x6a964020bdafa9ca", "0x23d6a9f3a43b088b" + "0x5fb133e6c14c3239", "0xb360d37aad99f76e", "0x3da84fceefd06da5", "0xb2f803d8b83b07f3", "0xb19744c94a9744e4", "0x23c93b9aa7c68069", "0x912436b29f5fbcf3", "0xf6313962096b23d1", + "0xc82d75c830055863", "0x8933404595905aac", "0x8edb7eab7c52d898", "0xe18afb092d408221", "0x00e2ff8b85b0f958", "0x138c26a6b2a01fa9", "0xf149c5571b8a011e", "0x7b4e2cbed63486fa", + "0xb8aa812f44e45ed5", "0x61e2ceb11adede7b", "0x86dda499d4f04da5", "0x9b97c751cc58b065", "0x8d4fdd8fa6de313f", "0xd01cbad514f3184f", "0x41313afa438ff648", "0x3d2e3f3816471876", + "0x465cc98a2fddec00", "0x268e1eb581c20a56", "0xb4cd4af84b66c5da", "0x69ccaa63aab033ee", "0x20b53d1e00c359e9", "0xd6a3c40b2e86712d", "0x6bbb5a2bd570bb00", "0x2aa8b2436df218ed" ]}, {"base_nonce": 4096, "expected": [ - "0x39a9f8aba6a9c7ab", "0xf1daab939a9c3217", "0x5831fcce18c03b2f", "0xb8ff659519b96eed", "0x88d08144f09ffb22", "0xa373485c22133291", "0xfc82bfd2743de9db", "0x19dffd993bf1a1a3", - "0xec61385b02ed1eec", "0xe3a705fedd476c62", "0x012af0af0abd2f1b", "0xacbfc40c16d1c409", "0x64e16756a429ee6a", "0x9a8b8c542b85d64b", "0x95b962ec795480c1", "0x11a35a7657f86c66", - "0x4ae11f4a8b22a8ed", "0x649bd0de4210bbb2", "0xd9e81d1e0c794619", "0x865a6073aeaad870", "0xcc691a4eb315ed94", "0x7bdf6b0662f171e6", "0xde979c126cd8b9a8", "0x801a11f95defd5ba", - "0xe0b160c42c39df59", "0x2319e68444cacb1b", "0xd8beee32eb63a71e", "0x272e524e202c58db", "0xeefad04ef941e833", "0x98b08bb5658177b1", "0xeb6833af292f958e", "0xb6b358ffd3b2de03" + "0xc3c344c2ff16bff0", "0x537b196cd4cdbb09", "0x65fca37074e405f4", "0x072f943a4caffb36", "0x662266cf8de82a8a", "0xb860ab3d16ae86f7", "0x5f98e443ce34f1bb", "0xce1c9ca2339c0e42", + "0xccd68b4df195bbc9", "0x2866b38d4a401168", "0x9786a1957c75e7ad", "0x3ec5fc87c207ce1a", "0x1fce372f3838e249", "0x0dde9ad1dc8938a3", "0xed1579fda990b570", "0x66bcd22759864a63", + "0x414d18a7c2507713", "0x0baddd09cc36a520", "0x8cd11f2ce02057b2", "0x8d898aac85fd75aa", "0xea1acc6c93538ab9", "0x5d05a096b6bb636e", "0x87e90c4240907c75", "0x049242a31f44ee9a", + "0x2d0f84f4dd7cbfa8", "0x87694b7df4a79af1", "0xaaaafbe9f79bc92d", "0x300a667ee303c8d5", "0x2666fabf6267e27f", "0x198602472c92fcad", "0xa59eeed45b81af4a", "0x22d7d46002bc7e7f" ]}, {"base_nonce": 1000000, "expected": [ - "0xb4835ddebdbfbaeb", "0x05ececfd8ef508cc", "0x4bc1315c1b1ce4c8", "0xe13eca621f2ff598", "0x6fffb12762010b6c", "0x78139a212e0870ee", "0xe9e197bebebbce63", "0xb485f4c5f50377bd", - "0x1284446e016546c1", "0xa2e4a3aefd217a73", "0xa484b974f813abb7", "0xf9959eac63a1401c", "0x77b081fd93294af8", "0x1fc7fc1eb3d9eaab", "0x71c51d4214cb47f0", "0x52171833d8d341f0", - "0x5699e6eae25c5854", "0x34752dd16c6ce88f", "0x353dd3b0890ba109", "0x696b0afc8f6fe70e", "0x2b30eaa48b77cd0c", "0x6c600c3b87409c38", "0x26ead9ba20d15168", "0xc93e5f5a261bc786", - "0x8606f09c2c74c81c", "0x1b3f9792e5247d66", "0xf8bb901d0dd87bfa", "0xbc939e016a57b734", "0x7bbbffc2dbcbc12a", "0x51beb5108f2ae2a4", "0x37b252067e6cc262", "0xf038a9ff99426f88" + "0xfcb7fbc29dad03d4", "0x54b64718d6fdcc0d", "0x9c938236394bba35", "0x7c9b920dd87181bb", "0xe61f6268c5e7e8a0", "0xf7c2cfd988090e76", "0xaec2e24e7050a52a", "0x37ffb04710cce394", + "0x03046fa86bf21b62", "0x00785f0d4ed2331a", "0x321a6fa31bc9b391", "0xdf88e6417dec1c9e", "0x1b6ec67bbcd424d6", "0xa247dc89c7f3cc6b", "0x1475f9ac604490b1", "0x106637b278da24a8", + "0xa697188fec6bdb0a", "0x7e4c0201314281a7", "0xa8c7742d814fc0d1", "0xb07431c74a4506e3", "0xa9d8974c47e028cb", "0x42189e4fdd512dc5", "0xc6fe11a9e9153822", "0x4ea57f7253864742", + "0xaabc3663cf578aef", "0xf28f68780e809bfe", "0x2df16b27d9eb162e", "0x0f8ccb24b6ab2297", "0x863b7048b78f5453", "0x63652a33014e3f00", "0xb107d73ffd8431ff", "0xcd7d8e5f0bc30687" ]} ], "dataset_head": ["0x19c6837f", "0xdf3adfb8", "0xbd3f6aed", "0xb8bede0d", "0xc5f0629f", "0x03e38ae8", "0xc435a60e", "0xfadee916", "0x827e59af", "0x8cf592f5", "0x60286061", "0x5d9abc1c", "0xa85d0c39", "0x4247a100", "0xd41a5b0d", "0x3f33dc64"], diff --git a/tools/ca3-v4-amend/pc2-v4-amend-g1.ps1 b/tools/ca3-v4-amend/pc2-v4-amend-g1.ps1 new file mode 100644 index 000000000..34ccb7084 --- /dev/null +++ b/tools/ca3-v4-amend/pc2-v4-amend-g1.ps1 @@ -0,0 +1,76 @@ +# Counter ASIC 3.0, the class v4 amendment (7 October 2026, AP-F8-1, the project lead: option A, limited testing): gate G1 only of docs/plans/counter-asic-2-rollout.md +# section 7 on PC 2's RTX 5090 (machine 1ccfe586) for the class v4 candidate mx8+sh256x27 composed with the era +# (docs/plans/counter-asic-3-gate/hash-gates.md). ONE signed `run` job carries both gates, as the PC 2 rule of the +# ca3 brief asks. It never quits, restarts or updates the installed app, never touches the prover (left ON), /opt or +# settings.json (read only, for the card keys), and does not switch the card off: bit-exactness and the verifier +# re-hash are not load sensitive, so the app keeps mining beside the runs and every row says what ran on the card. +# The kit is the fetch job fetch-ca3-v4-amend-20261007 (packs-ca3-v4: the class v3 control mx8-devnet-epoch0 and the seven +# class v4 packs v4-devnet-epoch0, v4-era-0 .. v4-era-5, each with seeds.txt), every file sha256-listed. +# G1: the INSTALLED igneum-worker-cuda.exe (NVRTC, the pack's own kernel text) --bench on every pack: the self-test +# (cache FNV, dataset head, word MASK, 64 samples, 96 vector lanes) and the 2^24 fingerprint at base nonce 0, which +# must equal the Mac's (Metal and Apple OpenCL). G2: the worker's serve mode, one job of 1,024 nonces at target +# ffffffffffffffff per pack (every nonce a "found g2 " line). The found lines never go to stdout: the +# intake's closing report keeps the last 200 KB of job.log and a file upload its last 256 KB, and the first run of this +# job (15:52Z) lost its G1 lines under 8 x 1,024 found lines. Each pack's found lines go to g2-.found in this job's +# folder (LF, nonce order), and stdout carries one line per pack: the count and the file's sha256. The Mac re-check +# (tools/ca3-v4/g2-recheck.sh) derives the same file from `igneum-pow hash-bound --prehash 00..01 --count 1024` on the +# same pack and compares digests: equal digests are 1,024 of 1,024; on a mismatch the file is fetched with +# `publish-jobs.sh add --kind collect --glob "app/jobs//g2-*.found"` and diffed line by line. Every result line +# starts with RESULT, there are about 60 of them, and the report carries them all whatever the log length; the full +# job.log stays at app/jobs//job.log on the PC (the RESULT log line names it; collect it with the same glob form). +$ErrorActionPreference = 'Continue' +function Stamp { (Get-Date).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ') } +function Smi($q) { try { (& nvidia-smi --query-gpu=$q --format=csv,noheader,nounits 2>$null) -join ' | ' } catch { 'nvidia-smi failed' } } +function CudaApps { @(& nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv,noheader 2>$null | ForEach-Object { "$_" }) } +"RESULT start $(Stamp) machine $env:COMPUTERNAME" +"RESULT log $(Join-Path $env:IGNEUM_JOB_DIR 'job.log') (the full output; the found lines of G2 are g2-.found beside it: collect --glob app/jobs//g2-*.found)" +"RESULT gpus $(Stamp) $(Smi 'index,name,driver_version,memory.used,clocks.sm,clocks.mem,power.draw,power.limit,temperature.gpu')" + +# the kit: the fetch job's folder under the app's jobs folder (nothing of another job's is reached) +$jobs = Split-Path $env:IGNEUM_JOB_DIR +$kit = Join-Path $jobs 'fetch-ca3-v4-amend-20261007' +$packs = Join-Path $kit 'packs-ca3-v4-amend' +if (-not (Test-Path $packs)) { "RESULT error packs missing at $packs (the fetch job fetch-ca3-v4-amend-20261007 runs first)"; exit 2 } +$inst = @("$env:LOCALAPPDATA\Programs\Igneum Miner", "$env:ProgramFiles\Igneum Miner") | Where-Object { Test-Path (Join-Path $_ 'igneum-worker-cuda.exe') } | Select-Object -First 1 +if (-not $inst) { "RESULT error no installed igneum-worker-cuda.exe"; exit 2 } +$exe = Join-Path $inst 'igneum-worker-cuda.exe' +"RESULT worker $exe sha256 $((Get-FileHash -Algorithm SHA256 $exe).Hash.ToLower()) bytes $((Get-Item $exe).Length)" +$appExe = Join-Path $inst 'igneum-app.exe' +if (Test-Path $appExe) { try { "RESULT app-version $((& $appExe --version 2>&1 | Out-String).Trim())" } catch { } } +foreach ($f in (Get-ChildItem $packs -Recurse -File | Sort-Object FullName)) { "RESULT kitfile $($f.FullName.Substring($packs.Length + 1).Replace('\', '/')) sha256 $((Get-FileHash -Algorithm SHA256 $f.FullName).Hash.ToLower()) bytes $($f.Length)" } + +# the card keys, both forms, from settings.json (read only; nothing is posted: the card stays as it is) +$appDir = $env:IGNEUM_APP_DIR +if (-not $appDir) { $appDir = Join-Path $env:LOCALAPPDATA 'igneum\app' } +$sj = Join-Path $appDir 'settings.json' +if (Test-Path $sj) { + try { + $settings = Get-Content -LiteralPath $sj -Raw | ConvertFrom-Json + if ($settings.cards) { + foreach ($p in $settings.cards.PSObject.Properties) { + $short = ($p.Name -split ':')[0] + ':' + (($p.Name -split ':') | Select-Object -Last 1) + "RESULT card-key settings.json `"$($p.Name)`" short-form `"$short`" enabled=$($p.Value.enabled) identities=$($p.Value.identities) power_pct=$($p.Value.power_pct)" + } + } else { 'RESULT card-key none in settings.json' } + } catch { "RESULT card-key settings.json unreadable: $_" } +} else { 'RESULT card-key no settings.json' } +$w = @(Get-Process -Name 'igneum-worker-cuda' -ErrorAction SilentlyContinue) +"RESULT processes $(Stamp) igneum-worker-cuda running: $($w.Count) (the app's miners, left as they are); compute apps: $((CudaApps) -join '; ')" + +$order = @('mx8-devnet-epoch0', 'v4-devnet-epoch0', 'v4-era-0', 'v4-era-1', 'v4-era-2', 'v4-era-3', 'v4-era-4', 'v4-era-5') +# ---- G1: --bench on every pack (self-test + 2^24 fingerprint at base 0; 5 timed dispatches, the rate a reference beside the miner) ---- +foreach ($pk in $order) { + $d = Join-Path $packs $pk + if (-not (Test-Path $d)) { "RESULT g1 $pk missing"; continue } + $t0 = Get-Date + "RESULT g1 $pk start $(Stamp)" + & $exe --bench --pack $d --batches 5 --batch-log2 24 --block-warps 1 2>&1 | ForEach-Object { "RESULT g1 $pk $_" } + "RESULT g1 $pk end $(Stamp) exit=$LASTEXITCODE wall_s=$([int]((Get-Date) - $t0).TotalSeconds)" +} + +# G2 is OWED by the project lead's word (limited testing: the vectors, the pairing and this G1 prevent a split and prove the fix). +$w = @(Get-Process -Name 'igneum-worker-cuda' -ErrorAction SilentlyContinue) +"RESULT processes $(Stamp) igneum-worker-cuda running: $($w.Count); compute apps: $((CudaApps) -join '; ')" +"RESULT gpus_after $(Stamp) $(Smi 'power.draw,power.limit,clocks.sm,clocks.mem,temperature.gpu,memory.used')" +"RESULT end $(Stamp)" +exit 0 diff --git a/tools/ca3-v4-uniform/Cargo.lock b/tools/ca3-v4-uniform/Cargo.lock new file mode 100644 index 000000000..96921bbe4 --- /dev/null +++ b/tools/ca3-v4-uniform/Cargo.lock @@ -0,0 +1,14 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "ca3-v4-uniform" +version = "0.1.0" +dependencies = [ + "igneum-pow", +] + +[[package]] +name = "igneum-pow" +version = "0.2.0" diff --git a/tools/ca3-v4-uniform/Cargo.toml b/tools/ca3-v4-uniform/Cargo.toml new file mode 100644 index 000000000..ae40339e5 --- /dev/null +++ b/tools/ca3-v4-uniform/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "ca3-v4-uniform" +version = "0.1.0" +edition = "2021" +publish = false + +[dependencies] +igneum-pow = { path = "../../igneum-pow" } + +[profile.release] +opt-level = 3 diff --git a/tools/ca3-v4-uniform/src/main.rs b/tools/ca3-v4-uniform/src/main.rs new file mode 100644 index 000000000..f01749376 --- /dev/null +++ b/tools/ca3-v4-uniform/src/main.rs @@ -0,0 +1,136 @@ +//! ca3-v4-uniform: the static census behind the AP-F8-1 analysis (`docs/analysis/ca3-v4-uniform.md`, 7 October 2026). +//! For chain-shaped class v4 programs (generator 4, the era drawn inside the class, the shadow block), one line per +//! program: the 16 load sites' window draws (the windows-union model's input) and, per site, the op that last wrote +//! the load's source register before the load in execution order (the base instructions before it in the iteration, +//! else the shadow block of the previous iteration, else the base instructions after it in the previous iteration), +//! classified as injecting (add, sub, xor, mad, shfl, load: the source is fresh), bijective (rotl, rotr: entropy kept) +//! or lossy (or: bits pinned to 1 with probability 3/4; mul: low bits zeroed by the multiplier's trailing zeros; +//! mulhi: the high word of a product, dense near 0). A lossy last writer is what AP-F8-1 found at p1's site 15 +//! (`or` at 61, the load at 63) and p3's site 15 (`or` at 30, the load at 62); it passes the acceptance rule's +//! part (a), which takes any write as fresh. Nothing in `igneum-pow` is touched. +//! +//! ca3-v4-uniform [--n 1024] [--prefix igneum-ca3-v4-uniform] [--f8] (--f8 adds F8's p1, p2, p3) +use igneum_pow::generator::{generate_era, EraParams, Instr, LoadClass, Op, Program, V3_ALLOWED, V4_CLASS}; +use igneum_pow::seed::seed_words_from_bytes; + +const GENESIS_HEX: &str = "edc4fa844da9dc98d37e965176f6558a31560e40502ab3ae5491b21aaaabfb07"; + +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +enum Kind { Inject, Bijective, Lossy, Init } + +fn kind(op: Op) -> Kind { + if op.injects() { Kind::Inject } else { + match op { + Op::Rotl | Op::Rotr => Kind::Bijective, + Op::Or | Op::Mul | Op::MulHi => Kind::Lossy, + _ => Kind::Inject, + } + } +} + +/// The last writer of `reg` before base instruction `k` in execution order: base 0..k of this iteration, then the +/// shadow block (run at the end of the previous iteration), then base k+1..63 of the previous iteration. +fn last_writer(p: &Program, k: usize, reg: u8) -> (Op, String) { + for j in (0..k).rev() { + if p.instrs[j].dst == reg { return (p.instrs[j].op, format!("base {j}")); } + } + for (j, s) in p.shadow.iter().enumerate().rev() { + if s.dst == reg { return (s.op, format!("shadow {j}")); } + } + for j in (k + 1..p.instrs.len()).rev() { + if p.instrs[j].dst == reg { return (p.instrs[j].op, format!("base {j} (previous iteration)")); } + } + (Op::Add, "init".into()) +} + +/// For an `or` writer at base `j`: how many of its two operands were themselves last written by `or` (an OR of an OR +/// compounds the bias: 3/4 of the bits set becomes 7/8, then 15/16; p3's site 15 is such a chain, p1's `or` has a +/// `mul`-written operand and is not). +fn or_chain(p: &Program, j: usize, ins: &Instr) -> u32 { + let mut n = 0; + for r in [ins.dst, ins.src] { + let (op, _) = last_writer(p, j, r); + if op == Op::Or { n += 1; } + } + n +} + +fn seed32(s: &str) -> Vec { + seed_words_from_bytes(s.as_bytes()).iter().flat_map(|x| x.to_le_bytes()).collect() +} + +fn unhex(s: &str) -> Vec { (0..s.len()).step_by(2).map(|i| u8::from_str_radix(&s[i..i + 2], 16).unwrap()).collect() } + +fn main() { + let args: Vec = std::env::args().collect(); + let get = |k: &str, d: &str| -> String { args.windows(2).find(|w| w[0] == k).map(|w| w[1].clone()).unwrap_or(d.into()) }; + let n: usize = get("--n", "1024").parse().unwrap(); + let prefix = get("--prefix", "igneum-ca3-v4-uniform"); + let f8 = args.iter().any(|a| a == "--f8"); + let base = LoadClass { era: None, ..V4_CLASS }; + let mut specs: Vec<(String, Vec, Vec)> = Vec::new(); + if f8 { + let g = unhex(GENESIS_HEX); + specs.push(("p1-devnet-epoch0".into(), g.clone(), g)); + for k in 2..=3 { specs.push((format!("p{k}-attack-f8"), seed32(&format!("igneum-attack-f8/program/{k}")), seed32(&format!("igneum-attack-f8/era/{k}")))); } + } + for i in 0..n { specs.push((format!("{prefix}/{i}"), seed32(&format!("{prefix}/program/{i}")), seed32(&format!("{prefix}/era/{i}")))); } + let _ = EraParams::test_era_bytes("igneum-era-test/0"); + let (mut programs, mut with_lossy, mut with_or, mut with_chain, mut with_mulhi, mut with_mul) = (0usize, 0usize, 0usize, 0usize, 0usize, 0usize); + let mut sites_by = [0usize; 4]; + let mut lossy_sites_total = 0usize; + let mut attempts_total = 0u64; + println!("# label\tid\tattempt\twindows(site:k:off)\tlossy_sites\tor_sites\tor_chain_sites\tmul_sites\tmulhi_sites\tper-site last writer (site:instr:src:op@where:kind)"); + for (label, epoch, era) in &specs { + let p = generate_era(&format!("igneum-epoch/{}", label), epoch, base, era, &V3_ALLOWED); + programs += 1; + attempts_total += p.attempt as u64; + let mut wins = Vec::new(); + let mut rows = Vec::new(); + let (mut lossy, mut ors, mut chains, mut muls, mut mulhis) = (0, 0, 0, 0, 0); + let mut site = 0; + for (k, ins) in p.instrs.iter().enumerate() { + if !ins.op.is_load() { continue; } + wins.push(format!("{site}:{}:{}", ins.win, ins.off)); + let (op, wh) = last_writer(&p, k, ins.src); + let kd = if wh == "init" { Kind::Init } else { kind(op) }; + sites_by[kd as usize] += 1; + let mut tag = format!("{:?}", kd).to_lowercase(); + if kd == Kind::Lossy { + lossy += 1; + match op { + Op::Or => { + ors += 1; + if let Some(j) = wh.strip_prefix("base ").and_then(|s| s.split(' ').next()).and_then(|s| s.parse::().ok()) { + let c = or_chain(&p, j, &p.instrs[j]); + if c > 0 { chains += 1; tag = format!("lossy-or-chain{c}"); } + } + } + Op::Mul => muls += 1, + Op::MulHi => mulhis += 1, + _ => {} + } + } + rows.push(format!("{site}:{k}:r{}:{}@{}:{}", ins.src, op.name(), wh.replace(' ', "_"), tag)); + site += 1; + } + lossy_sites_total += lossy; + if lossy > 0 { with_lossy += 1; } + if ors > 0 { with_or += 1; } + if chains > 0 { with_chain += 1; } + if muls > 0 { with_mul += 1; } + if mulhis > 0 { with_mulhi += 1; } + println!("{label}\t{:016x}\t{}\t{}\t{lossy}\t{ors}\t{chains}\t{muls}\t{mulhis}\t{}", p.program_id(), p.attempt, wins.join(" "), rows.join(" ")); + } + println!( + "CENSUS: {programs} chain-shaped class v4 programs; sites by last-writer kind inject {} bijective {} lossy {} init {}; lossy sites per program {:.3}; programs with >=1 lossy-sourced load {} ({:.1}%), >=1 or-sourced {} ({:.1}%), >=1 or-chain-sourced {} ({:.1}%), >=1 mul-sourced {} ({:.1}%), >=1 mulhi-sourced {} ({:.1}%); mean attempt {:.3}", + sites_by[0], sites_by[1], sites_by[2], sites_by[3], + lossy_sites_total as f64 / programs as f64, + with_lossy, 100.0 * with_lossy as f64 / programs as f64, + with_or, 100.0 * with_or as f64 / programs as f64, + with_chain, 100.0 * with_chain as f64 / programs as f64, + with_mul, 100.0 * with_mul as f64 / programs as f64, + with_mulhi, 100.0 * with_mulhi as f64 / programs as f64, + attempts_total as f64 / programs as f64 + ); +} diff --git a/tools/ca3-v4-uniform/uniform-census.txt b/tools/ca3-v4-uniform/uniform-census.txt new file mode 100644 index 000000000..c80970fad --- /dev/null +++ b/tools/ca3-v4-uniform/uniform-census.txt @@ -0,0 +1,1030 @@ +binary sha256 cf2dc1504583f096 09:24:50Z +# label id attempt windows(site:k:off) lossy_sites or_sites or_chain_sites mul_sites mulhi_sites per-site last writer (site:instr:src:op@where:kind) +p1-devnet-epoch0 c120d7963abdcd96 0 0:2:1 1:1:1 2:1:1 3:1:1 4:0:0 5:1:1 6:0:0 7:2:2 8:1:1 9:1:1 10:2:0 11:0:0 12:0:0 13:0:0 14:2:0 15:1:1 3 1 0 1 1 0:7:r7:xor@base_1:inject 1:8:r4:rotl@base_5:bijective 2:9:r2:mad@base_4:inject 3:10:r0:rotr@base_6:bijective 4:11:r1:load@base_9:inject 5:13:r6:load@base_7:inject 6:29:r4:mad@base_27:inject 7:30:r3:mad@base_28:inject 8:31:r5:mul@base_12:lossy 9:44:r7:shfl@base_43:inject 10:46:r1:add@base_45:inject 11:47:r3:load@base_46:inject 12:52:r2:rotr@base_40:bijective 13:56:r4:mulhi@base_48:lossy 14:58:r0:shfl@base_50:inject 15:63:r6:or@base_61:lossy +p2-attack-f8 82f0696f823e9c65 1 0:2:0 1:1:0 2:0:0 3:0:0 4:2:3 5:2:2 6:1:0 7:0:0 8:2:3 9:0:0 10:0:0 11:0:0 12:0:0 13:1:1 14:2:0 15:0:0 3 0 0 2 1 0:8:r4:xor@base_1:inject 1:14:r5:xor@base_9:inject 2:21:r6:mad@base_20:inject 3:24:r6:add@base_22:inject 4:32:r7:shfl@base_25:inject 5:34:r4:add@base_30:inject 6:37:r4:sub@base_36:inject 7:38:r3:load@base_37:inject 8:39:r0:load@base_14:inject 9:42:r5:load@base_38:inject 10:48:r0:mul@base_40:lossy 11:49:r6:load@base_42:inject 12:51:r3:load@base_48:inject 13:55:r2:mul@base_54:lossy 14:59:r6:load@base_51:inject 15:60:r4:mulhi@base_58:lossy +p3-attack-f8 e282eed7d47e425e 0 0:1:0 1:0:0 2:0:0 3:2:2 4:0:0 5:0:0 6:1:0 7:1:0 8:1:0 9:2:2 10:2:2 11:1:1 12:0:0 13:0:0 14:0:0 15:0:0 2 1 1 1 0 0:2:r3:shfl@base_1:inject 1:17:r6:mul@base_15:lossy 2:18:r4:add@base_4:inject 3:20:r0:load@base_18:inject 4:21:r1:load@base_20:inject 5:28:r1:xor@base_25:inject 6:29:r4:mad@base_26:inject 7:40:r0:shfl@base_24:inject 8:41:r6:add@base_33:inject 9:49:r1:shfl@base_45:inject 10:55:r6:mad@base_54:inject 11:56:r3:shfl@base_48:inject 12:57:r1:sub@base_51:inject 13:59:r4:add@base_39:inject 14:61:r0:sub@base_58:inject 15:62:r5:or@base_30:lossy-or-chain1 +igneum-ca3-v4-uniform/0 0c23c159dd3341b8 0 0:2:0 1:1:0 2:1:0 3:0:0 4:0:0 5:2:0 6:0:0 7:1:0 8:1:1 9:2:0 10:1:0 11:2:3 12:2:1 13:2:3 14:1:1 15:2:0 2 1 0 1 0 0:1:r4:add@base_0:inject 1:9:r2:load@base_1:inject 2:14:r6:rotr@base_10:bijective 3:20:r4:shfl@base_15:inject 4:25:r5:rotr@base_19:bijective 5:29:r2:mad@base_16:inject 6:31:r0:rotr@base_26:bijective 7:33:r3:add@base_27:inject 8:34:r7:rotr@base_30:bijective 9:39:r5:or@base_28:lossy 10:44:r0:load@base_39:inject 11:45:r2:mul@base_43:lossy 12:46:r4:mad@base_42:inject 13:47:r3:load@base_46:inject 14:56:r4:sub@base_52:inject 15:59:r7:xor@base_53:inject +igneum-ca3-v4-uniform/1 b630de1406de711d 0 0:2:1 1:2:3 2:1:1 3:2:0 4:2:3 5:1:1 6:0:0 7:0:0 8:0:0 9:2:0 10:2:1 11:0:0 12:1:0 13:2:0 14:0:0 15:0:0 2 1 0 1 0 0:3:r4:xor@base_2:inject 1:8:r3:rotl@base_5:bijective 2:14:r0:mad@base_10:inject 3:18:r5:xor@base_12:inject 4:22:r6:load@base_14:inject 5:29:r0:rotr@base_27:bijective 6:33:r4:rotr@base_32:bijective 7:34:r7:xor@base_31:inject 8:36:r6:rotl@base_35:bijective 9:38:r4:load@base_34:inject 10:39:r3:load@base_38:inject 11:43:r2:mul@base_37:lossy 12:44:r7:rotr@base_41:bijective 13:48:r2:sub@base_46:inject 14:52:r0:rotr@base_50:bijective 15:63:r5:or@base_61:lossy +igneum-ca3-v4-uniform/2 6246cd40e11fb5e4 0 0:0:0 1:2:0 2:0:0 3:1:1 4:0:0 5:0:0 6:1:1 7:2:0 8:0:0 9:0:0 10:1:1 11:1:0 12:0:0 13:0:0 14:2:2 15:1:1 3 1 0 1 1 0:1:r7:shfl@base_0:inject 1:4:r4:rotl@base_2:bijective 2:14:r1:shfl@base_9:inject 3:15:r7:mad@base_11:inject 4:19:r5:add@base_13:inject 5:21:r6:mul@base_18:lossy 6:23:r0:add@base_20:inject 7:26:r7:add@base_22:inject 8:28:r3:or@base_27:lossy 9:38:r4:rotl@base_37:bijective 10:42:r6:add@base_33:inject 11:45:r2:load@base_42:inject 12:48:r7:xor@base_44:inject 13:49:r0:rotr@base_41:bijective 14:56:r0:mulhi@base_55:lossy 15:57:r1:load@base_48:inject +igneum-ca3-v4-uniform/3 3dd039a9367415f7 0 0:0:0 1:0:0 2:1:0 3:1:1 4:1:1 5:0:0 6:2:3 7:0:0 8:2:0 9:2:3 10:1:1 11:2:2 12:2:2 13:2:3 14:0:0 15:2:3 0 0 0 0 0 0:3:r7:xor@base_1:inject 1:6:r7:add@base_5:inject 2:7:r5:add@base_4:inject 3:9:r3:load@base_6:inject 4:14:r2:xor@base_12:inject 5:15:r6:load@base_14:inject 6:16:r0:mad@base_13:inject 7:17:r2:load@base_15:inject 8:22:r3:load@base_16:inject 9:25:r3:xor@base_24:inject 10:30:r3:shfl@base_26:inject 11:32:r4:add@base_31:inject 12:40:r5:xor@base_36:inject 13:42:r7:load@base_32:inject 14:46:r0:sub@base_35:inject 15:47:r3:add@base_41:inject +igneum-ca3-v4-uniform/4 2593969c066a255a 0 0:2:2 1:0:0 2:2:2 3:0:0 4:1:0 5:2:0 6:2:2 7:0:0 8:1:1 9:1:1 10:1:0 11:1:1 12:0:0 13:1:0 14:2:1 15:1:1 3 0 0 1 2 0:1:r4:rotr@base_0:bijective 1:4:r7:mul@base_3:lossy 2:5:r0:sub@base_2:inject 3:9:r3:load@base_5:inject 4:14:r4:shfl@base_10:inject 5:17:r0:load@base_14:inject 6:18:r2:mulhi@base_8:lossy 7:24:r4:xor@base_22:inject 8:28:r6:rotl@base_27:bijective 9:32:r2:mad@base_23:inject 10:35:r4:load@base_32:inject 11:46:r4:add@base_39:inject 12:48:r1:load@base_9:inject 13:54:r3:load@base_48:inject 14:59:r1:xor@base_55:inject 15:63:r0:mulhi@base_62:lossy +igneum-ca3-v4-uniform/5 f0d6544c0198b8ef 0 0:2:0 1:0:0 2:1:1 3:0:0 4:2:3 5:0:0 6:1:0 7:1:0 8:2:1 9:0:0 10:1:1 11:2:3 12:1:0 13:1:1 14:0:0 15:1:1 2 0 0 2 0 0:3:r1:mad@base_0:inject 1:7:r2:mul@base_2:lossy 2:8:r4:load@base_7:inject 3:16:r4:mul@base_11:lossy 4:18:r1:rotr@base_14:bijective 5:19:r3:xor@base_15:inject 6:20:r7:load@base_16:inject 7:31:r4:add@base_27:inject 8:33:r5:add@base_24:inject 9:34:r7:load@base_33:inject 10:45:r5:add@base_44:inject 11:47:r1:load@base_45:inject 12:51:r6:xor@base_30:inject 13:53:r5:xor@base_49:inject 14:58:r0:rotr@base_54:bijective 15:59:r7:add@base_57:inject +igneum-ca3-v4-uniform/6 2496d3a7daf3b17b 0 0:0:0 1:0:0 2:2:2 3:2:2 4:2:0 5:2:2 6:0:0 7:0:0 8:0:0 9:2:2 10:2:1 11:2:1 12:2:2 13:0:0 14:1:1 15:2:1 1 0 0 0 1 0:3:r0:add@base_1:inject 1:5:r2:shfl@base_2:inject 2:8:r5:shfl@base_6:inject 3:9:r7:load@base_8:inject 4:10:r3:load@base_3:inject 5:12:r0:load@base_10:inject 6:27:r6:mulhi@base_13:lossy 7:32:r4:shfl@base_28:inject 8:36:r7:add@base_21:inject 9:38:r6:add@base_35:inject 10:40:r0:load@base_32:inject 11:47:r5:rotr@base_44:bijective 12:48:r7:load@base_47:inject 13:49:r3:rotl@base_45:bijective 14:52:r4:load@base_48:inject 15:56:r7:mad@base_50:inject +igneum-ca3-v4-uniform/7 e8bc3c6f8d641355 0 0:1:0 1:2:1 2:2:1 3:1:1 4:1:0 5:0:0 6:0:0 7:0:0 8:2:3 9:1:0 10:2:2 11:1:1 12:0:0 13:2:3 14:2:1 15:1:0 1 0 0 1 0 0:4:r1:mad@base_3:inject 1:6:r3:add@base_1:inject 2:8:r2:rotr@base_5:bijective 3:11:r4:shfl@base_9:inject 4:12:r6:load@base_6:inject 5:16:r1:load@base_12:inject 6:21:r4:mul@base_19:lossy 7:24:r7:add@base_22:inject 8:27:r5:xor@base_25:inject 9:32:r5:rotr@base_28:bijective 10:33:r3:rotl@base_29:bijective 11:34:r6:rotl@base_30:bijective 12:40:r4:xor@base_35:inject 13:47:r6:shfl@base_42:inject 14:53:r1:rotl@base_46:bijective 15:55:r7:shfl@base_54:inject +igneum-ca3-v4-uniform/8 ec0787219d4bddf9 0 0:0:0 1:2:3 2:1:0 3:2:3 4:0:0 5:2:0 6:1:0 7:2:0 8:2:2 9:0:0 10:0:0 11:0:0 12:0:0 13:1:1 14:1:1 15:2:0 1 0 0 0 1 0:1:r6:shfl@base_0:inject 1:2:r0:load@base_1:inject 2:3:r4:load@base_2:inject 3:8:r0:mulhi@base_6:lossy 4:23:r6:mad@base_4:inject 5:25:r7:load@base_8:inject 6:26:r3:load@base_25:inject 7:34:r2:load@base_26:inject 8:37:r6:add@base_27:inject 9:42:r5:xor@base_40:inject 10:44:r3:add@base_41:inject 11:51:r3:sub@base_47:inject 12:54:r2:add@base_49:inject 13:55:r7:xor@base_52:inject 14:56:r6:load@base_55:inject 15:63:r1:xor@base_60:inject +igneum-ca3-v4-uniform/9 1080449544f2e016 0 0:2:0 1:0:0 2:1:0 3:2:2 4:0:0 5:2:3 6:0:0 7:1:0 8:1:0 9:1:1 10:0:0 11:2:2 12:0:0 13:0:0 14:0:0 15:2:2 2 0 0 0 2 0:12:r3:rotr@base_5:bijective 1:14:r0:load@base_12:inject 2:16:r6:rotl@base_10:bijective 3:20:r1:add@base_18:inject 4:21:r4:load@base_20:inject 5:24:r3:mulhi@base_23:lossy 6:29:r6:load@base_24:inject 7:39:r3:xor@base_37:inject 8:41:r5:xor@base_30:inject 9:46:r4:add@base_43:inject 10:53:r1:mulhi@base_52:lossy 11:54:r4:load@base_53:inject 12:55:r7:load@base_54:inject 13:60:r3:mad@base_58:inject 14:62:r2:rotr@base_57:bijective 15:63:r6:load@base_41:inject +igneum-ca3-v4-uniform/10 ee71bb47a39c6531 0 0:2:2 1:2:0 2:1:1 3:2:3 4:0:0 5:0:0 6:0:0 7:0:0 8:2:2 9:0:0 10:2:0 11:2:2 12:2:3 13:2:0 14:2:0 15:1:1 3 1 0 2 0 0:3:r0:mul@base_1:lossy 1:5:r2:shfl@base_4:inject 2:7:r4:or@base_6:lossy 3:17:r4:shfl@base_15:inject 4:20:r3:mad@base_2:inject 5:23:r5:load@base_17:inject 6:24:r6:load@base_20:inject 7:25:r0:add@base_9:inject 8:28:r0:add@base_27:inject 9:31:r7:load@base_28:inject 10:38:r2:mul@base_32:lossy 11:49:r6:xor@base_45:inject 12:51:r7:sub@base_41:inject 13:53:r6:load@base_51:inject 14:54:r5:xor@base_47:inject 15:63:r1:load@base_49:inject +igneum-ca3-v4-uniform/11 3ffd9684296666b6 0 0:1:0 1:1:1 2:0:0 3:2:1 4:2:2 5:2:3 6:2:2 7:0:0 8:0:0 9:1:1 10:1:0 11:0:0 12:0:0 13:0:0 14:1:1 15:0:0 1 0 0 1 0 0:4:r3:add@base_2:inject 1:6:r5:load@base_4:inject 2:7:r3:load@base_6:inject 3:9:r7:sub@base_8:inject 4:10:r0:rotr@base_5:bijective 5:12:r2:xor@base_0:inject 6:22:r3:load@base_10:inject 7:26:r1:xor@base_15:inject 8:30:r0:mad@base_21:inject 9:32:r4:sub@base_24:inject 10:42:r7:shfl@base_41:inject 11:45:r2:mul@base_31:lossy 12:52:r0:mad@base_44:inject 13:57:r4:xor@base_47:inject 14:62:r1:rotl@base_61:bijective 15:63:r2:shfl@base_58:inject +igneum-ca3-v4-uniform/12 b0e3f3b9d423270f 0 0:0:0 1:0:0 2:1:0 3:1:1 4:0:0 5:0:0 6:1:0 7:0:0 8:1:0 9:2:2 10:1:0 11:2:0 12:2:2 13:0:0 14:0:0 15:0:0 2 2 0 0 0 0:5:r5:add@base_1:inject 1:6:r3:xor@base_4:inject 2:7:r2:load@base_6:inject 3:8:r1:rotl@base_2:bijective 4:10:r0:mad@base_9:inject 5:11:r4:load@base_7:inject 6:18:r4:or@base_15:lossy 7:19:r0:load@base_11:inject 8:20:r6:shfl@base_17:inject 9:26:r2:xor@base_14:inject 10:27:r5:load@base_26:inject 11:39:r4:or@base_36:lossy 12:40:r0:shfl@base_32:inject 13:48:r1:rotl@base_47:bijective 14:62:r2:sub@base_52:inject 15:63:r4:shfl@base_61:inject +igneum-ca3-v4-uniform/13 e6566b53de2e5c1c 0 0:0:0 1:1:0 2:2:1 3:0:0 4:1:1 5:0:0 6:2:1 7:1:1 8:0:0 9:0:0 10:1:0 11:2:3 12:2:1 13:2:2 14:0:0 15:2:2 5 1 0 3 1 0:1:r1:mul@base_0:lossy 1:3:r7:mulhi@base_2:lossy 2:7:r4:load@base_3:inject 3:12:r3:xor@base_8:inject 4:14:r1:sub@base_11:inject 5:21:r4:add@base_17:inject 6:34:r5:mad@base_26:inject 7:39:r6:xor@base_31:inject 8:42:r7:xor@base_41:inject 9:43:r1:load@base_42:inject 10:48:r3:or@base_44:lossy 11:49:r4:rotr@base_47:bijective 12:53:r5:mul@base_52:lossy 13:57:r6:mad@base_54:inject 14:60:r3:mul@base_56:lossy 15:61:r6:load@base_60:inject +igneum-ca3-v4-uniform/14 9a6c4e59ae1a4953 0 0:0:0 1:0:0 2:0:0 3:0:0 4:0:0 5:2:0 6:2:3 7:2:2 8:0:0 9:2:2 10:1:1 11:2:1 12:2:0 13:0:0 14:0:0 15:0:0 2 1 0 0 1 0:3:r5:shfl@base_1:inject 1:5:r0:load@base_3:inject 2:7:r3:load@base_5:inject 3:9:r1:rotl@base_4:bijective 4:11:r1:rotr@base_10:bijective 5:17:r3:add@base_14:inject 6:23:r6:mulhi@base_19:lossy 7:34:r2:xor@base_22:inject 8:37:r1:mad@base_32:inject 9:39:r7:or@base_36:lossy 10:46:r6:sub@base_44:inject 11:47:r0:load@base_39:inject 12:56:r7:sub@base_52:inject 13:57:r4:load@base_37:inject 14:59:r2:rotl@base_58:bijective 15:61:r5:load@base_59:inject +igneum-ca3-v4-uniform/15 8b5d3baac00d73d0 0 0:1:0 1:0:0 2:0:0 3:1:1 4:0:0 5:2:3 6:0:0 7:1:1 8:2:0 9:0:0 10:2:1 11:0:0 12:0:0 13:1:1 14:0:0 15:0:0 4 0 0 2 2 0:7:r6:rotr@base_3:bijective 1:13:r4:add@base_10:inject 2:16:r0:mul@base_15:lossy 3:18:r3:load@base_7:inject 4:19:r7:load@base_13:inject 5:21:r1:mul@base_12:lossy 6:23:r2:load@base_18:inject 7:26:r5:shfl@base_24:inject 8:31:r7:mad@base_30:inject 9:41:r5:rotr@base_39:bijective 10:47:r5:add@base_43:inject 11:51:r3:rotr@base_49:bijective 12:52:r6:mulhi@base_50:lossy 13:55:r2:rotr@base_44:bijective 14:57:r6:xor@base_56:inject 15:63:r1:mulhi@base_27:lossy +igneum-ca3-v4-uniform/16 2cbd61f46cbaa83d 0 0:1:0 1:2:2 2:2:0 3:1:0 4:1:1 5:1:1 6:2:1 7:0:0 8:1:0 9:2:1 10:0:0 11:1:1 12:2:3 13:1:0 14:2:2 15:2:0 4 2 0 1 1 0:1:r1:mad@shadow_248:inject 1:3:r2:mul@base_2:lossy 2:4:r4:load@base_1:inject 3:7:r0:load@base_4:inject 4:12:r2:rotl@base_5:bijective 5:13:r0:load@base_12:inject 6:18:r0:or@base_16:lossy 7:19:r4:rotl@base_14:bijective 8:26:r6:rotl@base_22:bijective 9:30:r0:rotl@base_28:bijective 10:33:r4:sub@base_23:inject 11:47:r0:or@base_41:lossy 12:52:r7:rotl@base_51:bijective 13:54:r3:add@base_36:inject 14:57:r1:xor@base_50:inject 15:60:r7:mulhi@base_56:lossy +igneum-ca3-v4-uniform/17 e5629f81bc65f668 0 0:0:0 1:1:1 2:1:0 3:1:0 4:1:0 5:0:0 6:2:0 7:1:0 8:2:2 9:2:1 10:0:0 11:0:0 12:0:0 13:0:0 14:2:1 15:2:3 4 1 0 1 2 0:2:r3:mul@base_0:lossy 1:5:r7:mad@base_4:inject 2:9:r3:mad@base_6:inject 3:10:r7:add@base_8:inject 4:14:r6:or@base_1:lossy 5:17:r4:sub@base_13:inject 6:21:r7:mulhi@base_20:lossy 7:27:r5:load@base_21:inject 8:30:r4:mad@base_29:inject 9:34:r0:load@base_17:inject 10:35:r7:mulhi@base_33:lossy 11:36:r5:add@base_28:inject 12:43:r2:load@base_36:inject 13:54:r7:add@base_44:inject 14:57:r0:xor@base_53:inject 15:60:r4:add@base_52:inject +igneum-ca3-v4-uniform/18 2a5e2ee2b48f9ee3 0 0:1:0 1:0:0 2:1:1 3:2:2 4:1:1 5:0:0 6:0:0 7:2:1 8:0:0 9:0:0 10:1:1 11:1:0 12:1:0 13:1:0 14:2:0 15:0:0 3 1 0 0 2 0:5:r4:add@base_1:inject 1:10:r3:shfl@base_7:inject 2:11:r0:mulhi@base_8:lossy 3:15:r6:or@base_3:lossy 4:17:r3:rotr@base_16:bijective 5:20:r2:load@base_15:inject 6:22:r7:load@base_17:inject 7:23:r1:load@base_20:inject 8:24:r7:load@base_23:inject 9:26:r0:shfl@base_21:inject 10:29:r4:load@base_24:inject 11:34:r1:load@base_29:inject 12:40:r0:add@base_37:inject 13:46:r2:xor@base_42:inject 14:53:r1:mulhi@base_36:lossy 15:57:r5:rotr@base_41:bijective +igneum-ca3-v4-uniform/19 8b0ed278a641e543 0 0:0:0 1:0:0 2:1:1 3:2:1 4:2:2 5:1:0 6:1:1 7:2:2 8:1:0 9:2:0 10:1:0 11:2:1 12:2:1 13:1:1 14:1:1 15:1:0 1 0 0 0 1 0:1:r2:rotr@base_0:bijective 1:2:r0:load@base_1:inject 2:13:r7:mad@base_7:inject 3:15:r2:load@base_2:inject 4:18:r4:load@base_15:inject 5:19:r3:load@base_18:inject 6:27:r1:sub@base_24:inject 7:29:r5:load@base_27:inject 8:32:r2:rotr@base_28:bijective 9:34:r0:load@base_19:inject 10:42:r3:load@base_32:inject 11:45:r6:add@base_26:inject 12:46:r7:rotr@base_38:bijective 13:48:r5:mulhi@base_43:lossy 14:50:r3:sub@base_49:inject 15:58:r7:mad@base_57:inject +igneum-ca3-v4-uniform/20 d83e1cf76ae037d1 0 0:2:2 1:2:0 2:2:3 3:0:0 4:2:1 5:1:1 6:0:0 7:2:0 8:2:1 9:1:0 10:0:0 11:1:0 12:0:0 13:0:0 14:1:0 15:1:0 5 2 0 2 1 0:4:r0:or@base_3:lossy 1:5:r6:load@base_4:inject 2:9:r4:shfl@base_7:inject 3:12:r0:sub@base_6:inject 4:16:r1:mulhi@base_8:lossy 5:24:r7:mad@base_18:inject 6:26:r3:or@base_15:lossy 7:34:r5:sub@base_31:inject 8:35:r4:xor@base_32:inject 9:39:r7:load@base_34:inject 10:44:r3:shfl@base_43:inject 11:45:r7:mul@base_40:lossy 12:48:r2:shfl@base_38:inject 13:59:r6:load@base_45:inject 14:62:r3:mul@base_60:lossy 15:63:r4:rotr@base_52:bijective +igneum-ca3-v4-uniform/21 5642d06f5dc3ae43 0 0:0:0 1:2:1 2:1:0 3:2:2 4:1:1 5:0:0 6:1:1 7:0:0 8:1:1 9:1:0 10:2:1 11:2:1 12:2:2 13:2:1 14:2:1 15:0:0 3 0 0 2 1 0:3:r5:mulhi@base_0:lossy 1:4:r2:mul@base_2:lossy 2:15:r2:xor@base_7:inject 3:18:r5:shfl@base_11:inject 4:20:r3:xor@base_19:inject 5:25:r4:sub@base_22:inject 6:27:r6:shfl@base_13:inject 7:31:r7:shfl@base_26:inject 8:35:r5:rotl@base_21:bijective 9:38:r4:add@base_36:inject 10:45:r4:mul@base_42:lossy 11:46:r0:mad@base_41:inject 12:48:r1:shfl@base_44:inject 13:54:r7:sub@base_50:inject 14:60:r4:mad@base_59:inject 15:61:r3:rotl@base_56:bijective +igneum-ca3-v4-uniform/22 ba9f85cecba8f9fe 0 0:1:1 1:2:2 2:0:0 3:2:3 4:0:0 5:0:0 6:0:0 7:1:0 8:0:0 9:0:0 10:2:0 11:1:1 12:0:0 13:0:0 14:2:3 15:0:0 4 0 0 1 3 0:3:r6:mulhi@base_2:lossy 1:8:r1:load@base_3:inject 2:13:r3:mul@base_9:lossy 3:14:r0:load@base_13:inject 4:17:r1:xor@base_16:inject 5:18:r2:rotl@base_11:bijective 6:19:r6:load@base_18:inject 7:21:r5:load@base_8:inject 8:28:r3:xor@base_26:inject 9:33:r4:mulhi@base_29:lossy 10:38:r6:sub@base_36:inject 11:39:r1:rotl@base_34:bijective 12:42:r2:rotl@base_41:bijective 13:46:r0:mulhi@base_40:lossy 14:49:r4:add@base_48:inject 15:56:r5:shfl@base_50:inject +igneum-ca3-v4-uniform/23 6239da652f57dba2 0 0:0:0 1:2:0 2:2:2 3:1:0 4:1:0 5:0:0 6:0:0 7:2:3 8:1:0 9:2:2 10:0:0 11:0:0 12:0:0 13:1:1 14:2:2 15:0:0 1 0 0 0 1 0:1:r3:rotl@base_0:bijective 1:3:r7:load@base_1:inject 2:4:r5:add@base_2:inject 3:6:r1:load@base_4:inject 4:8:r7:add@base_5:inject 5:23:r3:add@base_15:inject 6:26:r1:load@base_23:inject 7:41:r1:mad@base_39:inject 8:44:r6:load@base_26:inject 9:45:r3:mad@base_27:inject 10:50:r7:load@base_44:inject 11:54:r0:load@base_45:inject 12:56:r2:rotr@base_43:bijective 13:58:r0:mulhi@base_57:lossy 14:60:r7:load@base_56:inject 15:62:r4:add@base_59:inject +igneum-ca3-v4-uniform/24 9c1c54ea95fdba04 0 0:2:2 1:2:2 2:0:0 3:1:0 4:2:2 5:2:1 6:0:0 7:0:0 8:2:1 9:1:0 10:1:0 11:1:0 12:0:0 13:2:2 14:0:0 15:0:0 4 0 0 2 2 0:4:r4:xor@base_1:inject 1:7:r0:mad@base_2:inject 2:13:r3:xor@base_12:inject 3:18:r0:mul@base_10:lossy 4:19:r1:load@base_7:inject 5:20:r4:mul@base_15:lossy 6:23:r2:mulhi@base_22:lossy 7:28:r4:mulhi@base_25:lossy 8:30:r0:add@base_27:inject 9:31:r7:load@base_23:inject 10:37:r1:shfl@base_24:inject 11:38:r0:xor@base_32:inject 12:39:r5:rotr@base_26:bijective 13:51:r7:rotr@base_48:bijective 14:55:r4:load@base_37:inject 15:60:r1:load@base_51:inject +igneum-ca3-v4-uniform/25 e4affd1be2e4fb5c 0 0:0:0 1:2:1 2:2:2 3:2:1 4:2:0 5:2:0 6:2:3 7:0:0 8:0:0 9:1:1 10:2:2 11:2:0 12:2:2 13:0:0 14:0:0 15:2:2 5 1 0 0 4 0:4:r6:mulhi@base_1:lossy 1:5:r3:load@base_4:inject 2:17:r3:shfl@base_12:inject 3:18:r7:xor@base_6:inject 4:19:r0:or@base_14:lossy 5:22:r6:rotr@base_20:bijective 6:23:r2:load@base_22:inject 7:28:r3:mulhi@base_25:lossy 8:32:r5:xor@base_29:inject 9:42:r3:shfl@base_31:inject 10:46:r5:load@base_42:inject 11:50:r0:add@base_34:inject 12:52:r6:mulhi@base_45:lossy 13:53:r1:load@base_46:inject 14:59:r0:mad@base_57:inject 15:62:r7:mulhi@base_55:lossy +igneum-ca3-v4-uniform/26 be04fddd468f90db 0 0:1:1 1:2:1 2:2:3 3:0:0 4:1:0 5:1:1 6:0:0 7:2:3 8:1:0 9:1:0 10:0:0 11:0:0 12:1:0 13:2:1 14:0:0 15:1:0 2 0 0 2 0 0:7:r2:sub@base_6:inject 1:13:r2:shfl@base_12:inject 2:17:r6:xor@base_11:inject 3:23:r2:shfl@base_21:inject 4:24:r7:mul@base_20:lossy 5:27:r2:rotr@base_26:bijective 6:29:r4:xor@base_18:inject 7:30:r1:add@base_4:inject 8:31:r5:load@base_17:inject 9:33:r3:load@base_31:inject 10:44:r4:add@base_37:inject 11:46:r7:mul@base_42:lossy 12:53:r1:xor@base_50:inject 13:55:r0:xor@base_51:inject 14:56:r2:load@base_55:inject 15:57:r4:add@base_54:inject +igneum-ca3-v4-uniform/27 e48919c0a9287bda 0 0:2:1 1:1:1 2:0:0 3:2:1 4:2:0 5:0:0 6:0:0 7:1:1 8:2:0 9:0:0 10:1:1 11:1:1 12:0:0 13:1:0 14:1:1 15:1:1 4 2 0 2 0 0:4:r2:rotl@base_2:bijective 1:8:r1:rotl@base_7:bijective 2:11:r0:load@base_8:inject 3:13:r3:or@base_0:lossy 4:25:r5:mad@base_17:inject 5:29:r7:sub@base_23:inject 6:30:r0:load@base_29:inject 7:31:r2:shfl@base_18:inject 8:33:r7:load@base_30:inject 9:34:r4:sub@base_27:inject 10:35:r2:xor@base_32:inject 11:43:r2:xor@base_38:inject 12:50:r7:or@base_48:lossy 13:52:r1:mul@base_36:lossy 14:53:r6:mul@base_51:lossy 15:56:r6:xor@base_54:inject +igneum-ca3-v4-uniform/28 9350b6d664f979e0 0 0:0:0 1:2:0 2:2:3 3:0:0 4:1:0 5:2:0 6:1:1 7:2:0 8:2:3 9:1:1 10:2:3 11:2:0 12:1:1 13:0:0 14:0:0 15:1:1 3 0 0 2 1 0:1:r6:xor@base_0:inject 1:5:r5:mul@base_4:lossy 2:7:r2:mad@base_3:inject 3:14:r5:add@base_13:inject 4:15:r4:mad@base_9:inject 5:16:r1:load@base_14:inject 6:21:r1:shfl@base_18:inject 7:32:r2:load@base_21:inject 8:38:r5:load@base_15:inject 9:40:r4:load@base_38:inject 10:41:r0:rotr@base_37:bijective 11:43:r1:load@base_40:inject 12:49:r4:xor@base_46:inject 13:56:r7:load@base_49:inject 14:57:r6:mulhi@base_53:lossy 15:58:r3:mul@base_51:lossy +igneum-ca3-v4-uniform/29 7450702193fe8046 1 0:0:0 1:2:2 2:0:0 3:0:0 4:0:0 5:0:0 6:0:0 7:1:0 8:0:0 9:0:0 10:2:0 11:1:0 12:1:0 13:0:0 14:2:3 15:0:0 2 1 0 0 1 0:2:r0:rotr@base_1:bijective 1:5:r6:shfl@base_4:inject 2:9:r5:load@base_2:inject 3:18:r7:mulhi@base_16:lossy 4:19:r6:rotl@base_17:bijective 5:26:r5:add@base_21:inject 6:27:r3:or@base_25:lossy 7:30:r1:load@base_27:inject 8:32:r6:rotr@base_29:bijective 9:34:r3:load@base_32:inject 10:38:r7:load@base_26:inject 11:39:r0:load@base_30:inject 12:40:r6:load@base_38:inject 13:46:r5:add@base_43:inject 14:49:r4:add@base_48:inject 15:58:r5:add@base_56:inject +igneum-ca3-v4-uniform/30 c04784b300566d0d 0 0:1:0 1:0:0 2:2:0 3:0:0 4:1:1 5:0:0 6:1:0 7:1:1 8:2:0 9:0:0 10:1:0 11:2:3 12:2:0 13:0:0 14:2:3 15:0:0 2 0 0 0 2 0:3:r5:sub@base_2:inject 1:6:r3:load@base_3:inject 2:9:r0:load@base_6:inject 3:17:r1:add@base_16:inject 4:18:r5:xor@base_8:inject 5:26:r6:rotr@base_21:bijective 6:30:r5:mulhi@base_27:lossy 7:35:r6:add@base_32:inject 8:39:r3:add@base_36:inject 9:45:r4:mad@base_24:inject 10:46:r6:mulhi@base_44:lossy 11:50:r2:shfl@base_49:inject 12:51:r1:load@base_46:inject 13:59:r5:add@base_58:inject 14:60:r0:load@base_59:inject 15:61:r2:load@base_60:inject +igneum-ca3-v4-uniform/31 99aa2d22bd95516d 0 0:0:0 1:0:0 2:0:0 3:1:0 4:2:1 5:1:1 6:0:0 7:2:2 8:1:1 9:1:0 10:2:3 11:1:1 12:1:0 13:0:0 14:2:3 15:2:2 1 0 0 1 0 0:1:r2:shfl@base_0:inject 1:2:r0:load@base_1:inject 2:8:r4:xor@base_4:inject 3:13:r5:rotl@base_6:bijective 4:16:r1:xor@base_11:inject 5:18:r2:add@base_3:inject 6:19:r6:sub@base_12:inject 7:20:r3:load@base_19:inject 8:21:r5:load@base_18:inject 9:25:r0:load@base_20:inject 10:26:r7:shfl@base_15:inject 11:31:r3:rotl@base_23:bijective 12:42:r1:mul@base_22:lossy 13:45:r5:shfl@base_43:inject 14:47:r2:rotr@base_36:bijective 15:54:r7:shfl@base_53:inject +igneum-ca3-v4-uniform/32 eb471c0266c5d538 0 0:2:1 1:1:1 2:2:1 3:1:1 4:0:0 5:1:1 6:2:2 7:0:0 8:1:1 9:1:0 10:0:0 11:0:0 12:0:0 13:0:0 14:0:0 15:1:1 5 1 0 3 1 0:5:r4:sub@base_2:inject 1:9:r2:add@base_3:inject 2:11:r6:load@base_5:inject 3:12:r0:mulhi@base_10:lossy 4:19:r0:xor@base_18:inject 5:24:r4:mul@base_21:lossy 6:26:r1:shfl@base_20:inject 7:27:r0:mul@base_22:lossy 8:30:r2:shfl@base_29:inject 9:31:r6:load@base_26:inject 10:44:r7:rotl@base_39:bijective 11:46:r2:mul@base_40:lossy 12:51:r1:shfl@base_50:inject 13:54:r6:add@base_47:inject 14:56:r4:or@base_53:lossy 15:61:r2:mad@base_59:inject +igneum-ca3-v4-uniform/33 d57dd316144ecf98 0 0:0:0 1:0:0 2:2:1 3:0:0 4:1:0 5:1:0 6:2:3 7:0:0 8:2:1 9:2:0 10:0:0 11:1:1 12:2:1 13:0:0 14:0:0 15:1:1 2 0 0 1 1 0:2:r6:rotl@base_1:bijective 1:4:r4:mul@base_0:lossy 2:10:r1:load@base_2:inject 3:15:r6:mad@base_5:inject 4:18:r6:add@base_16:inject 5:19:r7:rotl@base_8:bijective 6:23:r7:sub@base_21:inject 7:25:r1:load@base_23:inject 8:31:r3:load@base_10:inject 9:35:r6:mulhi@base_33:lossy 10:47:r4:shfl@base_30:inject 11:48:r3:mad@base_43:inject 12:49:r5:load@base_48:inject 13:54:r3:load@base_49:inject 14:59:r0:sub@base_53:inject 15:60:r1:mad@base_50:inject +igneum-ca3-v4-uniform/34 9a9ce888d064df57 0 0:1:0 1:1:0 2:2:3 3:2:3 4:1:1 5:0:0 6:0:0 7:0:0 8:0:0 9:2:1 10:2:3 11:2:1 12:0:0 13:1:1 14:1:1 15:2:0 2 1 0 1 0 0:3:r5:shfl@base_1:inject 1:7:r0:add@base_6:inject 2:12:r6:rotr@base_11:bijective 3:23:r5:add@base_22:inject 4:26:r7:add@base_14:inject 5:29:r4:sub@base_27:inject 6:30:r0:sub@base_28:inject 7:32:r6:load@base_26:inject 8:33:r2:load@base_29:inject 9:37:r2:shfl@base_36:inject 10:42:r4:or@base_35:lossy 11:45:r0:load@base_42:inject 12:46:r7:load@base_45:inject 13:57:r1:mul@base_44:lossy 14:58:r2:rotr@base_53:bijective 15:63:r0:load@base_58:inject +igneum-ca3-v4-uniform/35 a629aabb1ef3b133 1 0:1:0 1:1:0 2:1:1 3:0:0 4:1:0 5:1:0 6:0:0 7:1:1 8:0:0 9:2:1 10:1:1 11:1:1 12:2:3 13:1:1 14:2:0 15:1:1 3 0 0 2 1 0:2:r1:rotr@base_1:bijective 1:4:r4:load@base_2:inject 2:7:r5:rotr@base_3:bijective 3:9:r7:load@base_7:inject 4:11:r2:xor@base_10:inject 5:20:r6:sub@base_15:inject 6:24:r6:xor@base_21:inject 7:29:r7:add@base_19:inject 8:31:r4:mul@base_27:lossy 9:39:r3:load@base_29:inject 10:41:r0:mulhi@base_36:lossy 11:42:r5:rotr@base_40:bijective 12:45:r4:load@base_42:inject 13:54:r1:mul@base_38:lossy 14:61:r2:xor@base_51:inject 15:62:r5:mad@base_60:inject +igneum-ca3-v4-uniform/36 4fb35eca91e01fbd 0 0:1:0 1:1:0 2:0:0 3:1:0 4:2:1 5:1:1 6:2:3 7:0:0 8:0:0 9:1:0 10:2:1 11:2:1 12:2:1 13:1:1 14:2:0 15:2:1 2 0 0 1 1 0:1:r4:sub@base_0:inject 1:3:r6:load@base_1:inject 2:7:r2:sub@base_6:inject 3:8:r1:mulhi@base_4:lossy 4:10:r6:add@base_9:inject 5:14:r3:mul@base_12:lossy 6:19:r5:add@base_17:inject 7:22:r7:shfl@base_16:inject 8:29:r0:xor@base_26:inject 9:31:r6:mad@base_27:inject 10:33:r2:load@base_22:inject 11:42:r7:xor@base_36:inject 12:44:r4:add@base_38:inject 13:45:r1:load@base_42:inject 14:51:r5:load@base_45:inject 15:56:r0:load@base_51:inject +igneum-ca3-v4-uniform/37 fcefb5fce38cbec8 0 0:1:0 1:2:1 2:0:0 3:2:2 4:2:1 5:1:1 6:2:1 7:0:0 8:2:2 9:1:0 10:2:1 11:1:1 12:1:1 13:2:0 14:1:0 15:2:1 2 2 1 0 0 0:2:r0:mad@base_1:inject 1:3:r3:sub@shadow_252:inject 2:7:r1:load@base_3:inject 3:10:r3:xor@base_9:inject 4:14:r4:load@base_10:inject 5:19:r4:xor@base_17:inject 6:24:r2:add@base_21:inject 7:25:r6:rotr@base_20:bijective 8:44:r4:or@base_35:lossy-or-chain1 9:45:r3:rotr@base_40:bijective 10:48:r5:add@base_42:inject 11:50:r2:or@base_47:lossy 12:51:r7:load@base_48:inject 13:53:r4:load@base_51:inject 14:56:r2:add@base_52:inject 15:61:r1:load@base_50:inject +igneum-ca3-v4-uniform/38 83d4e7af52eefa1a 0 0:1:1 1:2:2 2:1:0 3:0:0 4:1:1 5:0:0 6:2:2 7:1:1 8:1:0 9:1:0 10:2:3 11:2:0 12:1:1 13:1:1 14:1:0 15:1:1 3 0 0 3 0 0:3:r4:add@base_0:inject 1:6:r1:xor@base_1:inject 2:7:r6:load@base_6:inject 3:8:r2:load@base_7:inject 4:9:r0:xor@base_5:inject 5:11:r6:xor@base_10:inject 6:20:r7:add@base_17:inject 7:22:r3:mul@base_15:lossy 8:25:r2:mul@base_24:lossy 9:29:r5:mul@base_26:lossy 10:35:r3:load@base_25:inject 11:38:r2:sub@base_32:inject 12:39:r0:xor@base_23:inject 13:40:r5:mad@base_37:inject 14:44:r4:load@base_39:inject 15:51:r0:rotl@base_50:bijective +igneum-ca3-v4-uniform/39 54f5603382a4711e 0 0:1:0 1:0:0 2:2:2 3:1:0 4:1:1 5:1:1 6:1:0 7:0:0 8:2:1 9:1:1 10:1:1 11:2:0 12:1:1 13:1:0 14:0:0 15:1:0 2 0 0 2 0 0:1:r6:shfl@base_0:inject 1:2:r3:load@base_1:inject 2:3:r2:load@base_2:inject 3:7:r1:sub@base_6:inject 4:17:r6:mul@base_13:lossy 5:20:r1:shfl@base_16:inject 6:35:r0:add@base_28:inject 7:42:r5:rotr@base_39:bijective 8:44:r6:mul@base_43:lossy 9:45:r4:load@base_42:inject 10:46:r3:xor@base_41:inject 11:53:r5:xor@base_48:inject 12:57:r4:add@base_56:inject 13:59:r2:load@base_53:inject 14:62:r1:add@base_61:inject 15:63:r0:mad@base_47:inject +igneum-ca3-v4-uniform/40 0618a7c0b05bf732 0 0:1:0 1:1:0 2:0:0 3:1:0 4:0:0 5:1:0 6:0:0 7:2:1 8:0:0 9:1:1 10:1:1 11:0:0 12:0:0 13:0:0 14:2:3 15:0:0 0 0 0 0 0 0:8:r6:xor@base_7:inject 1:18:r3:shfl@base_4:inject 2:20:r0:load@base_18:inject 3:21:r5:mad@base_17:inject 4:31:r5:add@base_30:inject 5:36:r1:rotr@base_10:bijective 6:40:r6:sub@base_29:inject 7:48:r3:add@base_42:inject 8:50:r5:load@base_36:inject 9:52:r0:load@base_48:inject 10:53:r7:shfl@base_49:inject 11:54:r1:rotl@base_51:bijective 12:55:r2:load@base_50:inject 13:56:r6:load@base_54:inject 14:58:r1:shfl@base_57:inject 15:62:r1:shfl@base_61:inject +igneum-ca3-v4-uniform/41 eca816e400509e8f 0 0:2:1 1:0:0 2:0:0 3:2:3 4:1:1 5:2:1 6:2:0 7:2:1 8:1:1 9:2:2 10:2:1 11:2:2 12:0:0 13:0:0 14:1:1 15:1:1 3 0 0 0 3 0:2:r1:shfl@base_0:inject 1:10:r6:add@base_7:inject 2:12:r4:xor@base_1:inject 3:14:r6:load@base_12:inject 4:15:r0:xor@base_11:inject 5:16:r3:load@base_14:inject 6:17:r2:load@base_16:inject 7:19:r1:mulhi@base_9:lossy 8:21:r5:mad@base_20:inject 9:26:r5:mulhi@base_23:lossy 10:32:r3:add@base_18:inject 11:34:r7:rotr@base_33:bijective 12:37:r0:mulhi@base_35:lossy 13:39:r5:load@base_37:inject 14:49:r1:rotl@base_42:bijective 15:53:r5:add@base_41:inject +igneum-ca3-v4-uniform/42 ace1c4cdfaba8921 0 0:1:0 1:0:0 2:2:2 3:0:0 4:1:0 5:2:3 6:0:0 7:2:0 8:2:2 9:0:0 10:0:0 11:1:0 12:2:1 13:1:0 14:0:0 15:1:0 3 0 0 2 1 0:4:r2:add@base_3:inject 1:9:r6:mul@base_1:lossy 2:11:r3:sub@base_5:inject 3:17:r2:rotl@base_7:bijective 4:24:r4:mad@base_16:inject 5:26:r2:mul@base_22:lossy 6:32:r1:xor@base_14:inject 7:34:r7:load@base_26:inject 8:38:r1:add@base_33:inject 9:39:r0:load@base_34:inject 10:42:r2:shfl@base_40:inject 11:45:r5:add@base_44:inject 12:49:r6:mad@base_43:inject 13:59:r3:rotl@base_35:bijective 14:61:r7:add@base_41:inject 15:63:r2:mulhi@base_60:lossy +igneum-ca3-v4-uniform/43 8a8c0a84e9bfc917 1 0:0:0 1:1:0 2:0:0 3:0:0 4:1:0 5:2:3 6:2:1 7:2:0 8:0:0 9:0:0 10:2:2 11:2:0 12:1:0 13:1:0 14:1:1 15:1:0 4 0 0 4 0 0:1:r2:xor@base_0:inject 1:7:r3:add@base_4:inject 2:16:r5:xor@base_9:inject 3:17:r2:add@base_15:inject 4:20:r7:mul@base_8:lossy 5:28:r2:add@base_18:inject 6:29:r5:load@base_20:inject 7:36:r4:xor@base_3:inject 8:45:r7:mul@base_41:lossy 9:52:r6:mul@base_50:lossy 10:53:r2:load@base_52:inject 11:54:r3:mul@base_47:lossy 12:55:r7:add@base_46:inject 13:59:r7:sub@base_58:inject 14:60:r5:sub@base_57:inject 15:61:r2:load@base_55:inject +igneum-ca3-v4-uniform/44 5844561f18abf7c9 0 0:2:1 1:2:0 2:2:1 3:1:1 4:2:0 5:0:0 6:0:0 7:1:0 8:1:1 9:2:3 10:2:0 11:2:3 12:0:0 13:1:0 14:2:2 15:2:0 4 2 0 1 1 0:6:r5:mulhi@base_2:lossy 1:13:r3:add@base_12:inject 2:14:r0:xor@base_9:inject 3:17:r7:or@base_15:lossy 4:19:r4:load@base_17:inject 5:20:r6:load@base_19:inject 6:21:r1:load@base_13:inject 7:22:r2:load@base_21:inject 8:31:r3:rotr@base_30:bijective 9:39:r0:sub@base_25:inject 10:43:r1:load@base_39:inject 11:47:r4:rotl@base_33:bijective 12:49:r3:mul@base_40:lossy 13:55:r3:shfl@base_53:inject 14:57:r6:or@base_44:lossy 15:58:r2:shfl@base_36:inject +igneum-ca3-v4-uniform/45 1e7c3fd06623cb3e 0 0:2:2 1:0:0 2:1:1 3:0:0 4:2:2 5:2:2 6:1:0 7:1:1 8:1:1 9:0:0 10:0:0 11:0:0 12:2:1 13:1:0 14:1:0 15:2:0 2 1 0 0 1 0:4:r0:shfl@base_2:inject 1:11:r7:rotl@base_7:bijective 2:17:r7:rotl@base_13:bijective 3:20:r0:add@base_14:inject 4:25:r0:xor@base_23:inject 5:26:r4:add@base_15:inject 6:28:r5:sub@base_18:inject 7:33:r1:load@base_28:inject 8:35:r2:or@base_31:lossy 9:38:r7:xor@base_34:inject 10:40:r5:mulhi@base_36:lossy 11:41:r6:load@base_38:inject 12:42:r1:rotl@base_37:bijective 13:49:r5:xor@base_46:inject 14:53:r7:add@base_52:inject 15:56:r1:load@base_53:inject +igneum-ca3-v4-uniform/46 b39c84841d572253 0 0:0:0 1:1:1 2:1:1 3:1:1 4:2:2 5:1:1 6:1:1 7:0:0 8:2:1 9:2:3 10:0:0 11:2:0 12:1:0 13:1:1 14:2:3 15:0:0 3 1 0 2 0 0:3:r7:mul@base_2:lossy 1:11:r6:sub@base_8:inject 2:12:r1:mul@base_9:lossy 3:16:r1:mad@base_13:inject 4:20:r0:shfl@base_19:inject 5:21:r2:load@base_20:inject 6:29:r7:add@base_28:inject 7:30:r2:add@base_27:inject 8:39:r5:mad@base_35:inject 9:43:r4:add@base_38:inject 10:44:r0:mad@base_36:inject 11:47:r1:load@base_43:inject 12:50:r5:or@base_46:lossy 13:52:r2:load@base_47:inject 14:62:r1:xor@base_57:inject 15:63:r0:mad@base_51:inject +igneum-ca3-v4-uniform/47 eb6d9cf3c596f3fc 0 0:0:0 1:1:0 2:2:1 3:1:0 4:0:0 5:2:1 6:1:1 7:2:0 8:2:3 9:2:2 10:0:0 11:1:1 12:0:0 13:2:2 14:1:1 15:0:0 3 0 0 2 1 0:1:r2:mad@base_0:inject 1:2:r1:load@base_1:inject 2:6:r2:shfl@base_4:inject 3:8:r7:mul@base_7:lossy 4:12:r4:load@base_6:inject 5:14:r2:mul@base_13:lossy 6:20:r5:add@base_15:inject 7:21:r3:mulhi@base_19:lossy 8:26:r2:load@base_21:inject 9:30:r5:mad@base_29:inject 10:31:r0:load@base_30:inject 11:37:r3:load@base_31:inject 12:39:r5:rotl@base_34:bijective 13:53:r7:add@base_52:inject 14:55:r0:xor@base_32:inject 15:58:r6:shfl@base_42:inject +igneum-ca3-v4-uniform/48 64892d15e378cdc1 0 0:1:1 1:0:0 2:1:0 3:2:1 4:2:1 5:0:0 6:0:0 7:2:2 8:1:0 9:1:0 10:2:2 11:2:1 12:0:0 13:1:1 14:0:0 15:2:0 2 0 0 1 1 0:3:r2:shfl@base_1:inject 1:4:r7:load@base_3:inject 2:11:r0:xor@base_10:inject 3:21:r0:mad@base_17:inject 4:29:r6:mulhi@base_25:lossy 5:33:r6:mul@base_31:lossy 6:34:r3:load@base_33:inject 7:39:r1:rotl@base_36:bijective 8:42:r5:add@base_40:inject 9:44:r2:load@base_42:inject 10:47:r2:rotr@base_46:bijective 11:51:r7:sub@base_50:inject 12:53:r0:sub@base_52:inject 13:58:r6:load@base_51:inject 14:59:r0:shfl@base_55:inject 15:63:r4:shfl@base_57:inject +igneum-ca3-v4-uniform/49 abd6f81b69cc4019 0 0:0:0 1:2:2 2:2:0 3:1:1 4:1:1 5:2:2 6:2:0 7:1:0 8:0:0 9:0:0 10:2:1 11:2:0 12:2:0 13:2:3 14:2:1 15:0:0 5 1 0 1 3 0:9:r2:add@base_6:inject 1:11:r3:load@base_9:inject 2:16:r4:mulhi@base_4:lossy 3:20:r6:load@base_11:inject 4:21:r7:load@base_16:inject 5:26:r4:add@base_17:inject 6:30:r2:mulhi@base_25:lossy 7:35:r0:xor@base_34:inject 8:40:r1:mul@base_37:lossy 9:41:r0:rotl@base_38:bijective 10:43:r6:or@base_36:lossy 11:46:r7:load@base_41:inject 12:53:r7:sub@base_49:inject 13:54:r4:load@base_43:inject 14:60:r7:load@base_54:inject 15:63:r4:mulhi@base_59:lossy +igneum-ca3-v4-uniform/50 8ffa3c14b19cd065 0 0:1:0 1:2:3 2:2:2 3:2:0 4:1:0 5:1:0 6:2:1 7:1:0 8:2:3 9:2:2 10:0:0 11:0:0 12:1:0 13:1:0 14:2:2 15:2:3 2 0 0 1 1 0:1:r3:xor@shadow_242:inject 1:3:r6:mad@base_2:inject 2:6:r0:mul@base_5:lossy 3:12:r5:rotl@base_8:bijective 4:19:r6:mulhi@base_17:lossy 5:22:r7:load@base_1:inject 6:29:r1:xor@base_23:inject 7:35:r6:rotr@base_33:bijective 8:40:r2:mad@base_39:inject 9:41:r7:shfl@base_38:inject 10:45:r0:rotr@base_43:bijective 11:47:r4:load@base_19:inject 12:48:r5:load@base_45:inject 13:49:r7:shfl@base_44:inject 14:53:r0:load@base_47:inject 15:62:r7:mad@base_61:inject +igneum-ca3-v4-uniform/51 5c4eaf280e3c481d 0 0:2:2 1:2:3 2:1:1 3:0:0 4:0:0 5:1:0 6:1:0 7:2:0 8:0:0 9:1:1 10:2:3 11:0:0 12:1:1 13:1:0 14:0:0 15:0:0 2 0 0 1 1 0:1:r5:xor@base_0:inject 1:6:r7:shfl@base_5:inject 2:9:r7:mulhi@base_8:lossy 3:11:r2:sub@base_10:inject 4:15:r1:load@base_6:inject 5:16:r6:load@base_11:inject 6:21:r1:mad@base_17:inject 7:22:r0:load@base_1:inject 8:23:r5:load@base_22:inject 9:31:r4:mul@base_27:lossy 10:34:r0:xor@base_30:inject 11:41:r7:rotr@base_40:bijective 12:44:r5:add@base_43:inject 13:51:r7:add@base_46:inject 14:56:r0:sub@base_38:inject 15:57:r3:shfl@base_53:inject +igneum-ca3-v4-uniform/52 b77bc24103180e19 0 0:2:0 1:0:0 2:2:1 3:1:0 4:2:0 5:0:0 6:0:0 7:1:1 8:1:0 9:2:3 10:2:2 11:1:0 12:2:2 13:1:0 14:0:0 15:0:0 4 2 0 1 1 0:1:r6:xor@base_0:inject 1:4:r4:rotl@base_3:bijective 2:6:r2:or@base_5:lossy 3:13:r1:rotr@base_2:bijective 4:14:r0:mad@base_12:inject 5:17:r6:load@base_14:inject 6:19:r4:mul@base_11:lossy 7:20:r3:add@base_15:inject 8:34:r4:mad@base_28:inject 9:35:r1:rotr@base_21:bijective 10:40:r5:mulhi@base_36:lossy 11:44:r1:or@base_42:lossy 12:45:r7:add@base_38:inject 13:54:r4:load@base_35:inject 14:58:r3:shfl@base_27:inject 15:63:r5:add@base_59:inject +igneum-ca3-v4-uniform/53 5815f95e1b5d318e 0 0:1:1 1:1:1 2:2:2 3:0:0 4:0:0 5:2:1 6:2:2 7:1:0 8:2:1 9:1:0 10:1:0 11:1:0 12:1:1 13:2:2 14:1:1 15:0:0 1 1 0 0 0 0:12:r2:rotl@base_4:bijective 1:14:r1:rotr@base_8:bijective 2:15:r5:add@base_9:inject 3:19:r1:mad@base_17:inject 4:25:r6:load@base_19:inject 5:28:r2:add@base_26:inject 6:44:r5:or@base_41:lossy 7:47:r7:shfl@base_46:inject 8:51:r4:shfl@base_50:inject 9:52:r5:shfl@base_45:inject 10:54:r3:rotl@base_48:bijective 11:55:r2:load@base_54:inject 12:56:r6:load@base_47:inject 13:59:r1:load@base_52:inject 14:60:r2:rotl@base_57:bijective 15:63:r3:load@base_59:inject +igneum-ca3-v4-uniform/54 a85ba472f1c5af32 0 0:0:0 1:0:0 2:2:3 3:0:0 4:0:0 5:0:0 6:1:1 7:0:0 8:1:0 9:2:1 10:0:0 11:0:0 12:2:2 13:0:0 14:0:0 15:2:3 3 0 0 2 1 0:1:r4:xor@base_0:inject 1:5:r5:mad@base_2:inject 2:14:r7:load@base_5:inject 3:19:r6:rotr@base_12:bijective 4:27:r3:rotr@base_24:bijective 5:29:r0:load@base_27:inject 6:32:r6:shfl@base_22:inject 7:35:r3:load@base_32:inject 8:37:r2:shfl@base_25:inject 9:38:r6:mulhi@base_36:lossy 10:41:r2:shfl@base_40:inject 11:45:r6:xor@base_43:inject 12:47:r4:mul@base_44:lossy 13:48:r7:load@base_45:inject 14:54:r5:mul@base_33:lossy 15:58:r3:add@base_56:inject +igneum-ca3-v4-uniform/55 302aef34b467dec4 0 0:1:1 1:0:0 2:0:0 3:2:0 4:2:0 5:0:0 6:1:1 7:1:1 8:0:0 9:0:0 10:2:3 11:1:1 12:1:1 13:2:2 14:2:1 15:1:0 2 1 0 1 0 0:2:r4:rotr@base_1:bijective 1:4:r7:add@base_3:inject 2:5:r3:load@base_4:inject 3:8:r0:rotr@base_7:bijective 4:11:r5:add@base_6:inject 5:15:r4:rotr@base_12:bijective 6:19:r0:rotr@base_14:bijective 7:20:r7:load@base_19:inject 8:21:r0:load@base_20:inject 9:24:r6:add@base_23:inject 10:38:r0:rotl@base_36:bijective 11:39:r4:add@base_34:inject 12:40:r7:load@base_39:inject 13:41:r6:xor@base_31:inject 14:45:r7:or@base_44:lossy 15:55:r0:mul@base_54:lossy +igneum-ca3-v4-uniform/56 c7295490e4521526 0 0:1:1 1:1:0 2:0:0 3:0:0 4:2:2 5:2:1 6:0:0 7:0:0 8:2:3 9:1:0 10:0:0 11:0:0 12:0:0 13:2:1 14:2:2 15:1:1 2 0 0 2 0 0:4:r6:add@base_2:inject 1:5:r5:add@shadow_244:inject 2:14:r2:add@base_13:inject 3:18:r1:add@base_10:inject 4:21:r3:shfl@base_16:inject 5:25:r4:mul@base_19:lossy 6:26:r5:load@base_25:inject 7:27:r7:load@base_26:inject 8:29:r5:load@base_27:inject 9:30:r6:add@base_24:inject 10:31:r2:load@base_30:inject 11:38:r1:mul@base_23:lossy 12:44:r3:add@base_43:inject 13:47:r1:shfl@base_41:inject 14:50:r7:mad@base_37:inject 15:53:r3:sub@base_46:inject +igneum-ca3-v4-uniform/57 756bb8dd481de1be 0 0:1:0 1:0:0 2:0:0 3:0:0 4:1:1 5:1:0 6:1:0 7:2:0 8:1:0 9:0:0 10:0:0 11:1:0 12:0:0 13:0:0 14:2:1 15:1:1 3 1 0 1 1 0:11:r4:add@base_1:inject 1:15:r6:xor@base_13:inject 2:22:r4:add@base_18:inject 3:23:r5:mad@base_20:inject 4:28:r0:load@base_23:inject 5:36:r7:mad@base_31:inject 6:37:r5:shfl@base_24:inject 7:40:r4:mul@base_32:lossy 8:41:r2:or@base_17:lossy 9:44:r0:load@base_41:inject 10:49:r5:xor@base_48:inject 11:52:r3:load@base_44:inject 12:53:r5:add@base_51:inject 13:57:r2:mulhi@base_56:lossy 14:60:r1:mad@base_47:inject 15:62:r7:rotl@base_61:bijective +igneum-ca3-v4-uniform/58 8a918b0fbaed1990 0 0:0:0 1:2:0 2:2:1 3:0:0 4:1:1 5:1:1 6:1:1 7:1:1 8:2:1 9:0:0 10:1:0 11:1:0 12:1:1 13:2:0 14:1:1 15:1:0 2 1 0 0 1 0:1:r3:add@base_0:inject 1:3:r1:load@base_1:inject 2:5:r3:xor@base_4:inject 3:14:r6:shfl@base_10:inject 4:20:r7:load@base_5:inject 5:30:r4:load@base_20:inject 6:31:r3:rotl@base_26:bijective 7:36:r5:sub@base_33:inject 8:38:r1:add@base_28:inject 9:47:r7:load@base_38:inject 10:49:r0:xor@base_46:inject 11:51:r3:rotl@base_48:bijective 12:54:r6:load@base_49:inject 13:55:r5:load@base_54:inject 14:62:r3:or@base_58:lossy 15:63:r0:mulhi@base_57:lossy +igneum-ca3-v4-uniform/59 5ab9b516f1cd2e3e 0 0:2:2 1:1:1 2:1:0 3:1:1 4:2:0 5:1:0 6:1:1 7:1:1 8:1:0 9:0:0 10:2:0 11:2:0 12:1:0 13:1:1 14:0:0 15:0:0 4 2 0 1 1 0:1:r1:shfl@base_0:inject 1:5:r7:sub@base_2:inject 2:9:r4:mul@base_8:lossy 3:19:r0:load@base_9:inject 4:25:r3:mulhi@base_22:lossy 5:28:r2:xor@base_14:inject 6:32:r2:shfl@base_31:inject 7:34:r6:rotr@base_23:bijective 8:35:r4:load@base_28:inject 9:37:r7:load@base_32:inject 10:38:r0:rotr@base_33:bijective 11:44:r1:shfl@base_43:inject 12:48:r0:or@base_47:lossy 13:57:r4:shfl@base_51:inject 14:59:r3:xor@base_30:inject 15:62:r5:or@base_54:lossy +igneum-ca3-v4-uniform/60 c50621dc0e275161 0 0:0:0 1:1:0 2:0:0 3:0:0 4:0:0 5:0:0 6:1:0 7:2:2 8:0:0 9:0:0 10:0:0 11:1:1 12:2:0 13:2:1 14:1:1 15:2:1 1 0 0 0 1 0:3:r7:mulhi@base_1:lossy 1:21:r7:mad@base_11:inject 2:22:r4:rotr@base_19:bijective 3:27:r0:rotr@base_23:bijective 4:31:r4:mad@base_29:inject 5:32:r3:load@base_31:inject 6:37:r1:add@base_30:inject 7:42:r3:load@base_37:inject 8:46:r7:mad@base_41:inject 9:48:r0:load@base_46:inject 10:52:r2:rotl@base_47:bijective 11:53:r7:add@base_51:inject 12:54:r3:load@base_53:inject 13:55:r6:rotr@base_49:bijective 14:59:r4:add@base_58:inject 15:60:r1:load@base_59:inject +igneum-ca3-v4-uniform/61 cab552f6ebd63fd5 0 0:0:0 1:2:3 2:1:1 3:0:0 4:0:0 5:2:3 6:1:0 7:0:0 8:2:1 9:2:1 10:0:0 11:2:1 12:2:2 13:1:0 14:1:0 15:2:3 4 0 0 2 2 0:7:r6:rotr@base_6:bijective 1:12:r7:xor@base_10:inject 2:14:r1:mul@base_11:lossy 3:15:r4:load@base_14:inject 4:17:r5:load@base_12:inject 5:26:r1:mulhi@base_20:lossy 6:31:r6:xor@base_27:inject 7:35:r5:load@base_31:inject 8:40:r1:load@base_35:inject 9:41:r7:load@base_40:inject 10:49:r7:rotl@base_43:bijective 11:58:r3:mul@base_42:lossy 12:59:r7:mulhi@base_53:lossy 13:60:r6:rotr@base_37:bijective 14:61:r5:load@base_59:inject 15:62:r2:rotr@base_52:bijective +igneum-ca3-v4-uniform/62 fdf86f268a474e38 0 0:0:0 1:2:0 2:0:0 3:0:0 4:1:1 5:1:1 6:1:1 7:1:1 8:0:0 9:0:0 10:2:0 11:1:0 12:0:0 13:1:1 14:1:1 15:2:0 1 0 0 0 1 0:2:r2:sub@base_1:inject 1:3:r3:rotl@base_0:bijective 2:12:r2:xor@base_6:inject 3:19:r4:sub@base_4:inject 4:24:r1:load@base_19:inject 5:25:r3:mad@base_23:inject 6:31:r1:mad@base_26:inject 7:32:r4:sub@base_30:inject 8:33:r5:load@base_24:inject 9:38:r3:mulhi@base_37:lossy 10:42:r1:rotl@base_36:bijective 11:43:r3:rotl@base_41:bijective 12:44:r0:load@base_42:inject 13:51:r6:load@base_44:inject 14:54:r7:xor@base_29:inject 15:61:r7:xor@base_60:inject +igneum-ca3-v4-uniform/63 56fd61a746b1cdea 0 0:1:0 1:2:2 2:1:0 3:1:1 4:1:0 5:0:0 6:0:0 7:1:1 8:0:0 9:2:3 10:0:0 11:2:3 12:1:0 13:1:1 14:2:0 15:1:0 3 0 0 1 2 0:2:r3:rotl@base_1:bijective 1:3:r2:load@base_2:inject 2:5:r0:mulhi@base_4:lossy 3:6:r6:load@base_3:inject 4:9:r3:xor@base_7:inject 5:10:r1:load@base_5:inject 6:11:r5:load@base_10:inject 7:14:r3:load@base_11:inject 8:17:r1:xor@base_15:inject 9:21:r2:shfl@base_20:inject 10:25:r3:load@base_21:inject 11:32:r0:add@base_16:inject 12:43:r4:mad@base_42:inject 13:44:r0:load@base_43:inject 14:45:r6:mul@base_39:lossy 15:50:r1:mulhi@base_41:lossy +igneum-ca3-v4-uniform/64 e520217b27bc872e 0 0:2:1 1:0:0 2:2:1 3:2:1 4:1:0 5:0:0 6:2:0 7:1:0 8:0:0 9:1:1 10:0:0 11:0:0 12:2:0 13:0:0 14:0:0 15:2:1 5 1 0 1 3 0:8:r2:add@base_7:inject 1:9:r5:sub@base_6:inject 2:16:r2:add@base_14:inject 3:19:r3:shfl@base_12:inject 4:24:r7:add@base_1:inject 5:30:r5:mulhi@base_20:lossy 6:37:r0:rotr@base_29:bijective 7:39:r1:rotl@base_33:bijective 8:40:r0:sub@base_38:inject 9:45:r3:rotl@base_27:bijective 10:48:r3:mulhi@base_46:lossy 11:50:r6:or@base_44:lossy 12:53:r4:mul@base_49:lossy 13:54:r0:xor@base_43:inject 14:55:r5:load@base_54:inject 15:57:r6:mulhi@base_52:lossy +igneum-ca3-v4-uniform/65 c09e151a4de88da5 0 0:0:0 1:1:1 2:0:0 3:1:0 4:0:0 5:2:3 6:2:3 7:1:0 8:2:3 9:1:0 10:1:0 11:1:0 12:0:0 13:2:2 14:0:0 15:1:1 3 0 0 2 1 0:9:r5:mulhi@base_7:lossy 1:12:r2:sub@base_10:inject 2:17:r2:shfl@base_15:inject 3:18:r1:add@base_8:inject 4:22:r7:sub@base_19:inject 5:23:r5:load@base_22:inject 6:24:r4:load@base_12:inject 7:31:r0:shfl@base_28:inject 8:32:r5:rotr@base_26:bijective 9:33:r7:sub@base_30:inject 10:36:r1:mad@base_35:inject 11:42:r5:load@base_36:inject 12:47:r6:mul@base_34:lossy 13:51:r0:load@base_32:inject 14:52:r3:mul@base_46:lossy 15:57:r5:load@base_52:inject +igneum-ca3-v4-uniform/66 e1fd9883aed416ee 0 0:2:2 1:0:0 2:0:0 3:1:0 4:0:0 5:1:0 6:1:0 7:2:3 8:2:3 9:1:1 10:1:0 11:0:0 12:1:1 13:0:0 14:0:0 15:1:0 3 1 0 1 1 0:1:r0:rotl@base_0:bijective 1:3:r7:load@base_1:inject 2:8:r6:load@base_3:inject 3:10:r5:load@base_8:inject 4:13:r1:add@base_2:inject 5:20:r4:add@base_17:inject 6:25:r5:xor@base_19:inject 7:27:r5:mulhi@base_26:lossy 8:29:r6:mul@base_24:lossy 9:31:r7:or@base_9:lossy 10:36:r3:load@base_29:inject 11:37:r2:shfl@base_35:inject 12:43:r3:rotr@base_39:bijective 13:51:r0:rotl@base_38:bijective 14:60:r4:xor@base_58:inject 15:62:r5:load@base_36:inject +igneum-ca3-v4-uniform/67 a66098911c84a705 0 0:2:0 1:1:1 2:1:1 3:1:0 4:1:1 5:0:0 6:2:0 7:2:0 8:0:0 9:2:0 10:2:1 11:1:1 12:1:0 13:2:3 14:1:0 15:2:2 2 1 0 0 1 0:13:r7:sub@base_11:inject 1:17:r5:add@base_16:inject 2:18:r0:mad@base_8:inject 3:26:r0:rotl@base_25:bijective 4:28:r7:add@base_24:inject 5:31:r4:load@base_26:inject 6:33:r6:add@base_10:inject 7:38:r1:mulhi@base_21:lossy 8:41:r7:xor@base_35:inject 9:45:r6:load@base_41:inject 10:46:r7:rotl@base_44:bijective 11:50:r3:xor@base_40:inject 12:51:r1:add@base_47:inject 13:57:r7:xor@base_54:inject 14:59:r3:or@base_53:lossy 15:61:r7:load@base_59:inject +igneum-ca3-v4-uniform/68 6ca50bbc2448532b 0 0:0:0 1:0:0 2:2:0 3:1:1 4:2:1 5:1:0 6:1:1 7:1:0 8:1:1 9:1:0 10:2:2 11:2:0 12:1:1 13:2:0 14:0:0 15:2:0 3 0 0 3 0 0:3:r0:xor@base_1:inject 1:6:r7:xor@base_4:inject 2:17:r0:add@base_11:inject 3:19:r6:shfl@base_10:inject 4:24:r0:add@base_21:inject 5:25:r1:mad@base_5:inject 6:27:r5:load@base_24:inject 7:30:r0:rotl@base_29:bijective 8:34:r2:mul@base_32:lossy 9:42:r4:xor@base_31:inject 10:46:r2:mul@base_41:lossy 11:51:r7:rotl@base_48:bijective 12:56:r4:shfl@base_52:inject 13:59:r1:load@base_56:inject 14:60:r0:xor@base_53:inject 15:62:r3:mul@base_58:lossy +igneum-ca3-v4-uniform/69 32d61aeac704bb12 0 0:2:3 1:1:1 2:0:0 3:1:1 4:2:1 5:2:0 6:1:0 7:2:1 8:1:1 9:1:0 10:2:2 11:0:0 12:0:0 13:0:0 14:1:1 15:1:0 3 1 1 2 0 0:2:r1:mul@base_1:lossy 1:8:r1:add@base_7:inject 2:12:r2:mul@base_11:lossy 3:21:r1:mad@base_18:inject 4:23:r0:rotl@base_20:bijective 5:26:r2:rotr@base_24:bijective 6:27:r4:load@base_8:inject 7:35:r1:or@base_33:lossy-or-chain1 8:39:r2:rotr@base_36:bijective 9:43:r1:xor@base_40:inject 10:46:r4:sub@base_41:inject 11:52:r2:mad@base_51:inject 12:54:r3:xor@base_45:inject 13:55:r4:load@base_54:inject 14:56:r7:load@base_55:inject 15:58:r2:mad@base_57:inject +igneum-ca3-v4-uniform/70 e0c9f4ac1d3e48d5 0 0:2:0 1:1:1 2:1:1 3:1:1 4:2:0 5:2:2 6:1:1 7:2:0 8:2:1 9:0:0 10:2:2 11:0:0 12:0:0 13:1:0 14:0:0 15:0:0 5 1 0 4 0 0:1:r7:add@base_0:inject 1:2:r4:load@base_1:inject 2:5:r2:or@base_3:lossy 3:7:r7:load@base_5:inject 4:11:r0:load@base_2:inject 5:19:r3:mul@base_18:lossy 6:22:r7:rotl@base_21:bijective 7:27:r7:mad@base_26:inject 8:30:r5:rotl@base_9:bijective 9:34:r1:rotl@base_15:bijective 10:36:r7:load@base_30:inject 11:40:r2:mul@base_24:lossy 12:50:r3:shfl@base_46:inject 13:56:r4:mul@base_45:lossy 14:57:r1:mul@base_54:lossy 15:59:r5:load@base_50:inject +igneum-ca3-v4-uniform/71 89010a54039078e9 0 0:2:1 1:0:0 2:1:1 3:2:1 4:1:1 5:1:0 6:0:0 7:2:3 8:0:0 9:2:0 10:1:0 11:1:0 12:2:2 13:2:3 14:1:1 15:0:0 4 0 0 4 0 0:1:r7:add@base_0:inject 1:5:r1:mul@base_3:lossy 2:6:r0:load@base_5:inject 3:9:r4:rotr@base_4:bijective 4:12:r3:rotr@base_7:bijective 5:13:r1:rotl@base_10:bijective 6:16:r6:mul@base_14:lossy 7:25:r6:mul@base_21:lossy 8:30:r5:add@base_29:inject 9:36:r6:add@base_27:inject 10:37:r5:xor@base_32:inject 11:38:r2:load@base_36:inject 12:41:r5:xor@base_39:inject 13:49:r6:sub@base_46:inject 14:52:r0:mul@base_50:lossy 15:54:r4:load@base_52:inject +igneum-ca3-v4-uniform/72 9b309a0cdca50e08 0 0:2:2 1:2:2 2:0:0 3:1:1 4:1:1 5:2:3 6:1:1 7:0:0 8:0:0 9:0:0 10:1:0 11:1:0 12:1:1 13:2:0 14:0:0 15:1:1 1 1 0 0 0 0:3:r6:sub@base_1:inject 1:4:r1:rotl@base_0:bijective 2:5:r3:load@base_4:inject 3:13:r4:or@base_10:lossy 4:21:r7:shfl@base_11:inject 5:29:r7:add@base_28:inject 6:34:r0:shfl@base_17:inject 7:35:r6:load@base_29:inject 8:36:r4:load@base_34:inject 9:39:r7:load@base_36:inject 10:41:r1:rotl@base_27:bijective 11:42:r7:load@base_41:inject 12:49:r4:mad@base_48:inject 13:50:r5:load@base_39:inject 14:54:r1:xor@base_52:inject 15:55:r0:load@base_54:inject +igneum-ca3-v4-uniform/73 42a2cb8d3366812d 0 0:1:0 1:2:0 2:2:0 3:0:0 4:0:0 5:1:0 6:0:0 7:0:0 8:2:2 9:2:1 10:2:0 11:0:0 12:1:0 13:2:0 14:2:0 15:1:0 3 1 0 1 1 0:10:r4:xor@base_4:inject 1:14:r3:mulhi@base_3:lossy 2:19:r7:or@base_16:lossy 3:22:r0:load@base_10:inject 4:27:r6:xor@base_18:inject 5:31:r0:mul@base_28:lossy 6:36:r7:sub@base_32:inject 7:42:r1:xor@base_33:inject 8:43:r3:add@base_39:inject 9:47:r7:sub@base_44:inject 10:52:r0:mad@base_51:inject 11:54:r3:load@base_52:inject 12:55:r6:mad@base_53:inject 13:56:r1:load@base_55:inject 14:58:r5:load@base_56:inject 15:63:r2:load@base_42:inject +igneum-ca3-v4-uniform/74 2365aff659004971 0 0:0:0 1:2:2 2:1:1 3:2:0 4:1:1 5:0:0 6:1:0 7:0:0 8:1:1 9:1:0 10:1:1 11:0:0 12:1:0 13:1:0 14:2:2 15:2:3 1 1 0 0 0 0:2:r5:rotr@base_0:bijective 1:4:r5:or@base_3:lossy 2:6:r5:xor@base_5:inject 3:10:r0:load@base_2:inject 4:12:r4:add@base_7:inject 5:13:r3:xor@base_8:inject 6:16:r5:shfl@base_14:inject 7:21:r7:rotl@base_17:bijective 8:33:r4:rotr@base_26:bijective 9:38:r6:load@base_33:inject 10:40:r7:shfl@base_39:inject 11:50:r6:shfl@base_47:inject 12:52:r5:sub@base_49:inject 13:59:r2:sub@base_48:inject 14:60:r3:load@base_16:inject 15:63:r6:load@base_60:inject +igneum-ca3-v4-uniform/75 e70e0efac85fd8d3 2 0:0:0 1:2:3 2:2:0 3:0:0 4:1:0 5:1:0 6:1:0 7:2:3 8:0:0 9:2:2 10:1:1 11:1:1 12:0:0 13:1:1 14:0:0 15:2:2 0 0 0 0 0 0:1:r1:add@base_0:inject 1:7:r2:xor@base_6:inject 2:10:r5:add@base_8:inject 3:12:r2:load@base_10:inject 4:13:r0:load@base_12:inject 5:15:r4:add@base_11:inject 6:20:r5:load@base_15:inject 7:36:r4:add@base_28:inject 8:37:r6:add@base_31:inject 9:39:r7:add@base_14:inject 10:40:r0:load@base_39:inject 11:41:r2:shfl@base_29:inject 12:44:r1:rotr@base_38:bijective 13:45:r6:load@base_44:inject 14:48:r7:shfl@base_47:inject 15:54:r5:add@base_51:inject +igneum-ca3-v4-uniform/76 38d2f6b08e5674a4 0 0:1:0 1:1:1 2:0:0 3:0:0 4:1:1 5:2:1 6:1:1 7:0:0 8:0:0 9:0:0 10:1:1 11:1:0 12:0:0 13:2:2 14:0:0 15:0:0 1 0 0 0 1 0:5:r3:shfl@base_4:inject 1:6:r4:load@base_5:inject 2:13:r2:sub@base_9:inject 3:21:r6:mad@base_20:inject 4:29:r4:xor@base_23:inject 5:34:r4:rotr@base_33:bijective 6:35:r0:mulhi@base_32:lossy 7:36:r2:add@base_24:inject 8:37:r1:mad@base_28:inject 9:38:r3:load@base_29:inject 10:39:r0:load@base_37:inject 11:42:r4:xor@base_41:inject 12:43:r6:load@base_42:inject 13:52:r3:add@base_50:inject 14:56:r2:shfl@base_51:inject 15:61:r3:load@base_56:inject +igneum-ca3-v4-uniform/77 85f312405286fcae 0 0:0:0 1:1:0 2:0:0 3:0:0 4:1:0 5:2:1 6:1:0 7:0:0 8:1:1 9:2:3 10:1:1 11:0:0 12:2:3 13:2:1 14:2:2 15:2:0 6 1 0 2 3 0:10:r0:mulhi@base_3:lossy 1:11:r3:add@base_7:inject 2:18:r3:mulhi@base_17:lossy 3:20:r4:mul@base_19:lossy 4:21:r7:load@base_20:inject 5:25:r0:shfl@base_22:inject 6:26:r1:add@base_15:inject 7:29:r4:xor@base_28:inject 8:34:r2:shfl@base_27:inject 9:38:r3:or@base_36:lossy 10:43:r7:mulhi@base_24:lossy 11:44:r2:load@base_43:inject 12:55:r5:add@base_47:inject 13:58:r0:shfl@base_54:inject 14:60:r4:load@base_58:inject 15:61:r1:mul@base_51:lossy +igneum-ca3-v4-uniform/78 ab3a6c2a82c8146f 0 0:0:0 1:0:0 2:0:0 3:0:0 4:1:1 5:0:0 6:0:0 7:0:0 8:2:0 9:1:0 10:2:0 11:0:0 12:0:0 13:1:1 14:0:0 15:1:0 3 2 1 1 0 0:2:r7:or@base_1:lossy 1:8:r5:mad@base_3:inject 2:10:r1:shfl@base_5:inject 3:21:r7:add@base_14:inject 4:26:r3:xor@base_9:inject 5:29:r3:mad@base_28:inject 6:30:r1:load@base_29:inject 7:31:r0:add@base_19:inject 8:36:r5:rotl@base_34:bijective 9:37:r2:load@base_36:inject 10:39:r1:load@base_31:inject 11:43:r4:xor@base_42:inject 12:46:r6:or@base_45:lossy-or-chain1 13:49:r2:mul@base_41:lossy 14:57:r1:load@base_49:inject 15:63:r2:load@base_57:inject +igneum-ca3-v4-uniform/79 d58b9a27c11f2a5a 0 0:1:0 1:0:0 2:0:0 3:2:0 4:1:0 5:1:0 6:2:1 7:2:0 8:0:0 9:2:2 10:0:0 11:0:0 12:0:0 13:1:1 14:0:0 15:0:0 5 1 0 1 3 0:2:r7:mad@base_0:inject 1:7:r3:shfl@base_6:inject 2:8:r6:load@base_2:inject 3:12:r2:load@base_8:inject 4:17:r6:shfl@base_15:inject 5:20:r1:add@base_5:inject 6:24:r3:add@base_21:inject 7:31:r6:load@base_24:inject 8:32:r1:or@base_27:lossy 9:37:r7:mulhi@base_33:lossy 10:38:r0:mulhi@base_1:lossy 11:51:r5:rotl@base_46:bijective 12:52:r2:mul@base_50:lossy 13:55:r1:mulhi@base_49:lossy 14:59:r3:shfl@base_57:inject 15:61:r7:load@base_55:inject +igneum-ca3-v4-uniform/80 a7bd4aa0ff8852a3 0 0:0:0 1:2:2 2:1:1 3:1:1 4:1:1 5:0:0 6:1:1 7:2:0 8:0:0 9:2:0 10:2:3 11:1:0 12:2:0 13:2:2 14:2:3 15:0:0 4 0 0 2 2 0:2:r7:shfl@base_0:inject 1:4:r2:mul@base_3:lossy 2:8:r3:load@base_4:inject 3:9:r4:load@base_2:inject 4:12:r1:load@base_8:inject 5:15:r7:mul@base_10:lossy 6:18:r0:load@base_12:inject 7:23:r7:xor@base_20:inject 8:24:r6:load@base_23:inject 9:32:r2:mulhi@base_29:lossy 10:36:r4:rotr@base_28:bijective 11:42:r1:mulhi@base_25:lossy 12:50:r4:mad@base_49:inject 13:59:r6:load@base_50:inject 14:61:r2:load@base_59:inject 15:63:r7:xor@base_55:inject +igneum-ca3-v4-uniform/81 85dc08da378439da 0 0:2:0 1:1:1 2:1:1 3:2:3 4:0:0 5:1:1 6:1:1 7:0:0 8:1:1 9:1:1 10:2:1 11:2:3 12:2:0 13:1:1 14:2:2 15:2:1 3 0 0 0 3 0:8:r4:add@base_6:inject 1:15:r2:add@base_14:inject 2:20:r4:mulhi@base_19:lossy 3:24:r5:shfl@base_23:inject 4:29:r0:xor@base_17:inject 5:30:r7:load@base_29:inject 6:31:r1:shfl@base_26:inject 7:35:r3:load@base_31:inject 8:36:r4:xor@base_32:inject 9:37:r6:mad@base_34:inject 10:44:r7:rotr@base_33:bijective 11:49:r0:rotl@base_46:bijective 12:52:r5:load@base_49:inject 13:53:r2:rotr@base_48:bijective 14:62:r7:mulhi@base_59:lossy 15:63:r5:mulhi@base_55:lossy +igneum-ca3-v4-uniform/82 f560daef8d41137a 0 0:2:2 1:2:3 2:1:0 3:1:1 4:0:0 5:0:0 6:0:0 7:1:0 8:2:0 9:2:3 10:2:3 11:1:1 12:2:1 13:1:1 14:1:0 15:1:1 2 0 0 2 0 0:6:r5:mad@base_0:inject 1:12:r4:mad@base_7:inject 2:13:r2:mul@base_8:lossy 3:16:r7:mad@base_11:inject 4:19:r0:add@base_9:inject 5:22:r3:load@base_13:inject 6:24:r2:load@base_22:inject 7:25:r4:rotl@base_18:bijective 8:27:r5:load@base_25:inject 9:37:r6:mul@base_29:lossy 10:39:r4:mad@base_34:inject 11:42:r0:rotl@base_23:bijective 12:48:r3:rotr@base_43:bijective 13:52:r6:shfl@base_51:inject 14:57:r1:sub@base_49:inject 15:62:r7:add@base_45:inject +igneum-ca3-v4-uniform/83 f027c19dbb124e0f 0 0:1:0 1:2:0 2:0:0 3:2:2 4:2:0 5:0:0 6:1:1 7:2:0 8:1:0 9:1:0 10:0:0 11:2:2 12:1:0 13:0:0 14:0:0 15:2:2 1 0 0 1 0 0:1:r2:add@base_0:inject 1:5:r4:load@base_1:inject 2:6:r5:mul@base_4:lossy 3:9:r3:xor@base_8:inject 4:11:r1:load@base_5:inject 5:22:r0:load@base_9:inject 6:26:r2:add@base_19:inject 7:27:r1:rotr@base_20:bijective 8:30:r4:load@base_27:inject 9:38:r3:load@base_30:inject 10:43:r7:rotr@base_34:bijective 11:44:r3:rotr@base_39:bijective 12:45:r0:load@base_43:inject 13:47:r1:xor@base_31:inject 14:50:r2:shfl@base_49:inject 15:52:r4:add@base_48:inject +igneum-ca3-v4-uniform/84 875dffc6d691c0c5 0 0:1:0 1:2:2 2:1:0 3:2:3 4:2:3 5:0:0 6:2:2 7:1:0 8:0:0 9:1:0 10:0:0 11:1:0 12:0:0 13:0:0 14:1:1 15:1:1 3 2 1 1 0 0:11:r0:add@base_10:inject 1:15:r1:xor@base_2:inject 2:17:r4:load@base_15:inject 3:19:r3:mul@base_16:lossy 4:26:r1:xor@base_25:inject 5:29:r2:or@base_13:lossy 6:31:r6:or@base_30:lossy-or-chain1 7:35:r5:load@base_31:inject 8:40:r3:add@base_39:inject 9:46:r0:load@base_40:inject 10:47:r7:xor@base_45:inject 11:49:r1:shfl@base_41:inject 12:50:r5:load@base_49:inject 13:54:r5:shfl@base_53:inject 14:55:r0:shfl@base_51:inject 15:59:r2:add@base_57:inject +igneum-ca3-v4-uniform/85 6e007708fd13c221 0 0:1:0 1:0:0 2:1:0 3:1:1 4:0:0 5:0:0 6:0:0 7:0:0 8:0:0 9:2:2 10:1:1 11:1:0 12:2:3 13:1:0 14:2:0 15:1:1 3 1 0 0 2 0:6:r4:mad@base_3:inject 1:9:r7:load@base_6:inject 2:10:r5:mad@base_2:inject 3:14:r0:rotr@base_12:bijective 4:23:r5:mad@base_21:inject 5:25:r6:mulhi@base_7:lossy 6:29:r2:or@base_27:lossy 7:31:r3:rotl@base_30:bijective 8:34:r5:load@base_31:inject 9:41:r0:add@base_35:inject 10:47:r6:load@base_34:inject 11:49:r3:add@base_48:inject 12:52:r1:mulhi@base_42:lossy 13:56:r5:mad@base_44:inject 14:59:r2:load@base_56:inject 15:63:r4:load@base_52:inject +igneum-ca3-v4-uniform/86 de1800e5d62b3caf 0 0:2:1 1:2:1 2:2:1 3:2:0 4:0:0 5:2:0 6:1:0 7:1:1 8:1:1 9:0:0 10:2:1 11:0:0 12:1:1 13:2:1 14:1:1 15:0:0 3 1 0 0 2 0:6:r4:sub@base_2:inject 1:12:r2:sub@base_0:inject 2:17:r6:mulhi@base_13:lossy 3:24:r0:add@base_20:inject 4:25:r4:mulhi@base_21:lossy 5:27:r2:add@base_26:inject 6:32:r3:load@base_24:inject 7:35:r3:mad@base_33:inject 8:36:r5:rotl@base_22:bijective 9:40:r7:shfl@base_28:inject 10:41:r4:mad@base_39:inject 11:51:r6:mad@base_47:inject 12:53:r0:or@base_49:lossy 13:55:r2:sub@base_44:inject 14:57:r6:add@base_56:inject 15:58:r7:rotl@base_54:bijective +igneum-ca3-v4-uniform/87 dce3d2dd6d01ee7f 1 0:1:1 1:2:0 2:1:1 3:1:1 4:0:0 5:0:0 6:1:1 7:0:0 8:2:2 9:0:0 10:2:0 11:0:0 12:0:0 13:1:1 14:0:0 15:1:0 4 1 0 1 2 0:6:r3:mad@base_2:inject 1:7:r5:add@base_4:inject 2:14:r0:add@base_12:inject 3:16:r5:load@base_14:inject 4:23:r1:sub@base_21:inject 5:24:r6:add@base_11:inject 6:27:r4:mul@base_19:lossy 7:29:r7:load@base_23:inject 8:30:r6:shfl@base_28:inject 9:34:r6:mulhi@base_33:lossy 10:36:r5:load@base_34:inject 11:42:r3:mulhi@base_40:lossy 12:48:r2:add@base_32:inject 13:57:r3:or@base_52:lossy 14:60:r5:add@base_56:inject 15:61:r0:mad@base_58:inject +igneum-ca3-v4-uniform/88 ec88ad5a5c810474 0 0:1:0 1:1:0 2:0:0 3:2:2 4:0:0 5:2:3 6:0:0 7:1:0 8:2:3 9:0:0 10:2:3 11:0:0 12:1:0 13:1:1 14:1:1 15:1:0 6 3 1 2 1 0:3:r2:mad@base_1:inject 1:7:r5:mad@base_2:inject 2:9:r4:load@base_7:inject 3:10:r1:mulhi@base_8:lossy 4:11:r0:xor@base_6:inject 5:23:r2:or@base_21:lossy 6:29:r0:or@base_27:lossy 7:33:r1:add@base_32:inject 8:35:r1:or@base_34:lossy-or-chain1 9:36:r6:mul@base_25:lossy 10:45:r4:rotr@base_42:bijective 11:49:r0:rotr@base_46:bijective 12:50:r6:mul@base_38:lossy 13:51:r3:add@base_43:inject 14:57:r2:add@base_52:inject 15:61:r4:load@base_57:inject +igneum-ca3-v4-uniform/89 2fb7aacebf5ed6be 0 0:0:0 1:0:0 2:0:0 3:0:0 4:2:0 5:0:0 6:2:1 7:2:2 8:1:1 9:1:0 10:0:0 11:2:2 12:2:2 13:2:0 14:1:1 15:1:0 2 0 0 2 0 0:5:r0:sub@base_0:inject 1:18:r0:mul@base_15:lossy 2:19:r1:shfl@base_14:inject 3:20:r2:mul@base_13:lossy 4:24:r0:sub@base_22:inject 5:28:r6:mad@base_10:inject 6:34:r3:xor@base_31:inject 7:37:r5:shfl@base_27:inject 8:39:r4:load@base_24:inject 9:43:r3:rotl@base_41:bijective 10:46:r5:rotr@base_40:bijective 11:47:r7:load@base_39:inject 12:49:r3:load@base_47:inject 13:55:r0:load@base_49:inject 14:61:r1:xor@base_58:inject 15:62:r7:load@base_61:inject +igneum-ca3-v4-uniform/90 3d8af24aac52e081 0 0:0:0 1:0:0 2:0:0 3:0:0 4:1:1 5:1:1 6:1:1 7:2:0 8:1:1 9:1:0 10:0:0 11:0:0 12:0:0 13:0:0 14:1:0 15:0:0 1 1 0 0 0 0:1:r6:mad@base_0:inject 1:3:r4:load@base_1:inject 2:5:r0:load@base_3:inject 3:8:r1:xor@base_7:inject 4:14:r5:rotl@base_13:bijective 5:17:r7:add@base_12:inject 6:21:r6:or@base_19:lossy 7:27:r5:xor@base_23:inject 8:30:r1:mad@base_25:inject 9:54:r3:rotr@base_50:bijective 10:55:r4:add@base_53:inject 11:58:r1:add@base_49:inject 12:59:r5:load@base_54:inject 13:60:r2:load@base_59:inject 14:61:r6:load@base_58:inject 15:62:r0:load@base_55:inject +igneum-ca3-v4-uniform/91 0b98f10c70327bcf 0 0:2:1 1:2:2 2:1:0 3:1:1 4:0:0 5:0:0 6:2:0 7:0:0 8:1:0 9:1:0 10:2:0 11:2:0 12:2:2 13:2:0 14:0:0 15:2:0 2 0 0 1 1 0:2:r2:rotr@base_1:bijective 1:4:r0:load@base_2:inject 2:7:r4:add@base_6:inject 3:8:r0:load@base_7:inject 4:11:r2:mulhi@base_9:lossy 5:25:r6:mul@base_15:lossy 6:26:r0:xor@base_14:inject 7:28:r6:load@base_26:inject 8:29:r3:load@base_28:inject 9:34:r6:sub@base_31:inject 10:35:r4:load@base_29:inject 11:37:r6:load@base_35:inject 12:45:r5:mad@base_42:inject 13:46:r4:load@base_45:inject 14:50:r5:xor@base_49:inject 15:61:r6:sub@base_56:inject +igneum-ca3-v4-uniform/92 6d82dd59d74736e3 0 0:2:1 1:1:1 2:0:0 3:0:0 4:2:3 5:2:1 6:0:0 7:0:0 8:2:3 9:0:0 10:2:0 11:2:0 12:0:0 13:0:0 14:2:3 15:2:1 4 0 0 1 3 0:1:r0:rotl@base_0:bijective 1:3:r0:mad@base_2:inject 2:5:r4:load@base_3:inject 3:8:r7:mulhi@base_7:lossy 4:9:r5:load@base_8:inject 5:14:r0:rotr@base_13:bijective 6:21:r1:add@base_15:inject 7:26:r6:load@base_21:inject 8:34:r1:rotr@base_28:bijective 9:35:r7:load@base_34:inject 10:41:r4:rotl@base_31:bijective 11:42:r6:mul@base_36:lossy 12:44:r3:rotl@base_33:bijective 13:56:r0:mulhi@base_48:lossy 14:59:r1:mulhi@base_55:lossy 15:60:r6:shfl@base_58:inject +igneum-ca3-v4-uniform/93 d35690902dcd37da 0 0:0:0 1:0:0 2:2:2 3:0:0 4:2:0 5:2:0 6:1:0 7:2:1 8:0:0 9:0:0 10:2:1 11:0:0 12:0:0 13:0:0 14:2:3 15:2:0 3 0 0 3 0 0:5:r7:mad@base_4:inject 1:8:r1:xor@base_6:inject 2:9:r3:shfl@base_7:inject 3:14:r6:rotl@base_13:bijective 4:17:r0:load@base_5:inject 5:21:r4:load@base_17:inject 6:22:r5:mul@base_12:lossy 7:23:r2:add@base_19:inject 8:24:r3:load@base_21:inject 9:25:r4:load@base_22:inject 10:30:r7:load@base_24:inject 11:47:r6:mul@base_43:lossy 12:53:r1:add@base_40:inject 13:54:r7:mul@base_52:lossy 14:56:r5:load@base_54:inject 15:61:r1:mad@base_58:inject +igneum-ca3-v4-uniform/94 c1f078d2f356d403 0 0:1:0 1:2:0 2:2:3 3:1:0 4:2:2 5:2:1 6:1:0 7:2:1 8:2:3 9:0:0 10:0:0 11:0:0 12:2:0 13:1:1 14:0:0 15:1:0 3 0 0 1 2 0:6:r5:mulhi@base_5:lossy 1:9:r0:mulhi@base_1:lossy 2:18:r0:add@base_12:inject 3:30:r6:mad@base_21:inject 4:31:r0:shfl@base_26:inject 5:32:r5:sub@base_25:inject 6:34:r7:load@base_30:inject 7:41:r1:add@base_33:inject 8:42:r5:add@base_35:inject 9:49:r4:sub@base_44:inject 10:52:r1:add@base_45:inject 11:54:r3:xor@base_39:inject 12:57:r6:load@base_52:inject 13:58:r7:load@base_49:inject 14:59:r2:add@base_48:inject 15:62:r7:mul@base_61:lossy +igneum-ca3-v4-uniform/95 1667690bc4709a91 0 0:1:1 1:0:0 2:0:0 3:2:1 4:1:0 5:1:0 6:1:1 7:1:1 8:1:1 9:1:1 10:1:1 11:0:0 12:2:2 13:2:0 14:0:0 15:1:0 1 0 0 1 0 0:1:r0:mad@base_0:inject 1:3:r3:xor@base_2:inject 2:4:r1:load@base_1:inject 3:8:r7:load@base_4:inject 4:12:r4:rotl@base_9:bijective 5:28:r2:rotl@base_18:bijective 6:30:r4:rotl@base_16:bijective 7:35:r7:rotl@base_24:bijective 8:37:r6:xor@base_36:inject 9:38:r0:mul@base_34:lossy 10:39:r2:xor@base_29:inject 11:49:r5:rotr@base_47:bijective 12:51:r0:xor@base_44:inject 13:52:r2:load@base_49:inject 14:54:r3:load@base_51:inject 15:61:r0:add@base_60:inject +igneum-ca3-v4-uniform/96 3f7df15486064d87 0 0:0:0 1:2:0 2:2:1 3:0:0 4:1:0 5:2:2 6:0:0 7:2:1 8:2:0 9:0:0 10:0:0 11:0:0 12:0:0 13:0:0 14:2:2 15:2:2 1 0 0 1 0 0:1:r3:shfl@base_0:inject 1:13:r7:add@base_8:inject 2:14:r1:rotr@base_5:bijective 3:16:r2:mad@base_15:inject 4:18:r3:mul@base_12:lossy 5:25:r5:load@base_16:inject 6:29:r2:shfl@base_22:inject 7:31:r4:mad@base_30:inject 8:37:r0:sub@base_34:inject 9:38:r3:load@base_37:inject 10:42:r0:rotl@base_40:bijective 11:44:r1:load@base_38:inject 12:47:r7:mad@base_39:inject 13:51:r1:mad@base_45:inject 14:61:r7:add@base_59:inject 15:63:r0:shfl@base_48:inject +igneum-ca3-v4-uniform/97 684a221166b37bbc 0 0:1:1 1:2:0 2:1:0 3:1:1 4:0:0 5:2:0 6:1:0 7:1:1 8:1:0 9:2:0 10:1:0 11:2:1 12:2:1 13:1:1 14:1:0 15:0:0 3 2 0 1 0 0:2:r0:mul@base_1:lossy 1:4:r6:load@base_2:inject 2:6:r2:shfl@base_5:inject 3:9:r1:sub@base_0:inject 4:11:r0:sub@base_8:inject 5:12:r1:mad@base_10:inject 6:17:r4:shfl@base_13:inject 7:18:r2:load@base_17:inject 8:28:r5:sub@base_26:inject 9:31:r0:xor@base_16:inject 10:36:r6:or@base_29:lossy 11:37:r3:xor@base_34:inject 12:40:r0:rotr@base_39:bijective 13:48:r0:or@base_41:lossy 14:51:r2:add@base_45:inject 15:58:r4:load@base_51:inject +igneum-ca3-v4-uniform/98 a760af8368f8c173 0 0:2:2 1:1:0 2:0:0 3:2:2 4:2:2 5:2:0 6:1:0 7:2:1 8:1:0 9:0:0 10:0:0 11:0:0 12:0:0 13:0:0 14:1:0 15:0:0 2 1 0 1 0 0:5:r7:mul@base_4:lossy 1:11:r7:sub@base_10:inject 2:16:r5:sub@base_14:inject 3:17:r3:load@base_11:inject 4:19:r1:add@base_18:inject 5:20:r6:mad@base_13:inject 6:22:r4:add@base_21:inject 7:24:r5:load@base_20:inject 8:25:r2:load@base_22:inject 9:29:r0:shfl@base_15:inject 10:46:r0:xor@base_38:inject 11:47:r3:mad@base_39:inject 12:49:r2:xor@base_40:inject 13:52:r5:load@base_46:inject 14:56:r2:sub@base_50:inject 15:62:r4:or@base_55:lossy +igneum-ca3-v4-uniform/99 5a4d837e96337d68 0 0:2:3 1:0:0 2:2:2 3:2:3 4:0:0 5:2:0 6:1:0 7:1:0 8:2:1 9:1:0 10:1:1 11:1:1 12:1:0 13:0:0 14:0:0 15:2:1 2 1 0 1 0 0:6:r6:mad@base_3:inject 1:7:r5:rotl@base_2:bijective 2:11:r7:or@base_8:lossy 3:16:r6:mul@base_14:lossy 4:24:r1:rotl@base_19:bijective 5:26:r0:load@base_24:inject 6:29:r5:rotr@base_28:bijective 7:31:r4:load@base_29:inject 8:32:r2:mad@base_10:inject 9:37:r1:load@base_31:inject 10:42:r7:rotl@base_38:bijective 11:51:r3:rotr@base_47:bijective 12:52:r0:load@base_51:inject 13:56:r0:add@base_53:inject 14:59:r3:load@base_52:inject 15:61:r4:add@base_48:inject +igneum-ca3-v4-uniform/100 294382be2cd8ea24 0 0:2:2 1:1:0 2:1:0 3:0:0 4:2:1 5:0:0 6:0:0 7:2:3 8:1:1 9:2:3 10:0:0 11:0:0 12:0:0 13:1:1 14:2:2 15:2:2 1 0 0 1 0 0:1:r7:mad@base_0:inject 1:3:r3:load@base_1:inject 2:5:r1:mad@base_2:inject 3:9:r4:mul@base_6:lossy 4:10:r6:load@base_9:inject 5:12:r6:mad@base_11:inject 6:15:r0:load@base_3:inject 7:21:r1:shfl@base_19:inject 8:23:r4:load@base_12:inject 9:30:r5:xor@base_29:inject 10:40:r1:rotl@base_25:bijective 11:45:r7:shfl@base_42:inject 12:47:r4:mad@base_46:inject 13:49:r0:load@base_47:inject 14:56:r0:add@base_54:inject 15:61:r3:xor@base_55:inject +igneum-ca3-v4-uniform/101 3c872d313e2afc50 0 0:1:1 1:1:0 2:0:0 3:0:0 4:0:0 5:2:2 6:1:1 7:2:2 8:1:0 9:0:0 10:0:0 11:0:0 12:0:0 13:1:0 14:1:1 15:0:0 2 1 0 1 0 0:1:r2:mad@base_0:inject 1:9:r6:mul@base_7:lossy 2:13:r6:sub@base_12:inject 3:18:r0:load@base_9:inject 4:22:r2:rotl@base_20:bijective 5:24:r6:load@base_22:inject 6:26:r3:load@base_24:inject 7:28:r6:mad@base_25:inject 8:29:r1:load@base_28:inject 9:33:r6:or@base_32:lossy 10:34:r7:add@base_30:inject 11:35:r4:shfl@base_15:inject 12:37:r3:load@base_29:inject 13:38:r2:load@base_37:inject 14:44:r3:sub@base_40:inject 15:48:r1:mad@base_47:inject +igneum-ca3-v4-uniform/102 04ff1249a13b0eb1 0 0:1:1 1:1:0 2:1:1 3:2:1 4:2:1 5:1:1 6:1:0 7:0:0 8:2:2 9:2:0 10:2:3 11:0:0 12:1:0 13:1:0 14:1:1 15:0:0 2 0 0 1 1 0:3:r5:xor@base_1:inject 1:15:r0:mulhi@base_13:lossy 2:16:r4:xor@base_9:inject 3:17:r1:xor@base_11:inject 4:25:r1:sub@base_22:inject 5:31:r6:rotr@base_30:bijective 6:40:r0:add@base_33:inject 7:41:r2:mad@base_35:inject 8:45:r7:add@base_43:inject 9:46:r0:mul@base_44:lossy 10:48:r1:load@base_41:inject 11:53:r5:load@base_46:inject 12:55:r3:mad@base_42:inject 13:58:r2:add@base_49:inject 14:59:r4:rotl@base_50:bijective 15:61:r0:load@base_58:inject +igneum-ca3-v4-uniform/103 84c4bda0207fc874 0 0:0:0 1:0:0 2:0:0 3:0:0 4:2:3 5:2:2 6:2:1 7:0:0 8:1:0 9:2:0 10:2:0 11:0:0 12:1:1 13:0:0 14:0:0 15:0:0 1 0 0 0 1 0:3:r2:sub@base_2:inject 1:10:r5:shfl@base_5:inject 2:11:r0:rotr@base_7:bijective 3:14:r1:rotr@base_6:bijective 4:17:r7:load@base_14:inject 5:20:r0:mulhi@base_16:lossy 6:24:r2:add@base_18:inject 7:28:r3:mad@base_27:inject 8:35:r4:sub@base_33:inject 9:36:r1:load@base_35:inject 10:49:r6:add@base_43:inject 11:50:r1:shfl@base_41:inject 12:52:r4:load@base_49:inject 13:55:r5:add@base_53:inject 14:59:r0:sub@base_48:inject 15:63:r2:rotr@base_61:bijective +igneum-ca3-v4-uniform/104 f5b65dbcf3ada0b4 0 0:0:0 1:0:0 2:0:0 3:1:0 4:2:3 5:0:0 6:0:0 7:2:2 8:2:1 9:0:0 10:0:0 11:0:0 12:0:0 13:1:1 14:2:1 15:2:2 5 2 0 1 2 0:1:r5:xor@shadow_248:inject 1:13:r7:mulhi@base_12:lossy 2:17:r0:mulhi@base_11:lossy 3:19:r4:add@base_18:inject 4:26:r1:mad@base_15:inject 5:29:r0:mul@base_25:lossy 6:32:r3:load@base_26:inject 7:33:r1:add@base_28:inject 8:38:r4:xor@base_24:inject 9:40:r3:add@base_35:inject 10:42:r0:sub@base_41:inject 11:46:r1:or@base_36:lossy 12:48:r5:load@base_32:inject 13:55:r7:or@base_50:lossy 14:56:r4:load@base_55:inject 15:60:r0:sub@base_51:inject +igneum-ca3-v4-uniform/105 702ebd68206e5c3e 0 0:2:2 1:1:1 2:2:0 3:2:2 4:2:1 5:1:0 6:2:1 7:0:0 8:2:2 9:0:0 10:1:0 11:0:0 12:0:0 13:1:1 14:0:0 15:1:0 3 1 0 1 1 0:9:r4:rotl@base_2:bijective 1:11:r1:sub@base_7:inject 2:14:r5:mulhi@base_5:lossy 3:16:r3:mul@base_1:lossy 4:18:r7:mad@base_10:inject 5:22:r6:rotr@base_20:bijective 6:28:r7:load@base_22:inject 7:32:r1:rotl@base_30:bijective 8:40:r4:add@base_33:inject 9:41:r6:load@base_32:inject 10:48:r7:or@base_45:lossy 11:49:r1:shfl@base_46:inject 12:51:r0:load@base_48:inject 13:56:r6:rotl@base_55:bijective 14:57:r2:load@base_51:inject 15:63:r3:rotr@base_60:bijective +igneum-ca3-v4-uniform/106 b93d81794f2fda2b 0 0:1:0 1:0:0 2:2:0 3:1:0 4:0:0 5:2:2 6:1:1 7:0:0 8:2:1 9:2:2 10:1:0 11:2:2 12:2:0 13:0:0 14:2:1 15:2:3 1 0 0 0 1 0:6:r0:xor@base_3:inject 1:15:r5:rotr@base_11:bijective 2:18:r2:load@base_6:inject 3:23:r7:xor@base_19:inject 4:24:r2:xor@base_22:inject 5:27:r3:xor@base_25:inject 6:28:r1:mulhi@base_17:lossy 7:31:r2:sub@base_29:inject 8:33:r0:shfl@base_32:inject 9:45:r5:add@base_39:inject 10:47:r7:add@base_35:inject 11:53:r2:load@base_47:inject 12:55:r3:load@base_45:inject 13:56:r1:xor@base_51:inject 14:58:r3:load@base_56:inject 15:59:r7:load@base_55:inject +igneum-ca3-v4-uniform/107 d5f54cd71ef04d64 0 0:2:1 1:1:0 2:1:1 3:2:2 4:1:1 5:2:0 6:1:0 7:2:0 8:1:1 9:1:1 10:0:0 11:0:0 12:2:1 13:1:0 14:0:0 15:1:0 3 1 0 0 2 0:6:r6:xor@base_3:inject 1:7:r7:mulhi@base_1:lossy 2:8:r2:load@base_6:inject 3:10:r2:rotr@base_9:bijective 4:11:r0:mad@base_5:inject 5:15:r1:add@base_13:inject 6:16:r6:load@base_15:inject 7:20:r1:load@base_16:inject 8:26:r1:or@base_24:lossy 9:28:r6:shfl@base_19:inject 10:34:r7:load@base_28:inject 11:39:r5:mulhi@base_38:lossy 12:41:r4:rotl@base_32:bijective 13:46:r0:add@base_44:inject 14:53:r1:mad@base_50:inject 15:58:r2:add@base_37:inject +igneum-ca3-v4-uniform/108 bbb8518b0fb4cf57 0 0:2:1 1:1:1 2:2:2 3:0:0 4:1:1 5:2:1 6:0:0 7:1:1 8:1:1 9:2:0 10:2:2 11:2:2 12:2:2 13:0:0 14:1:0 15:1:0 2 1 0 1 0 0:1:r6:or@base_0:lossy 1:10:r2:add@base_5:inject 2:12:r0:load@base_10:inject 3:17:r3:add@base_3:inject 4:21:r7:load@base_17:inject 5:22:r1:load@base_12:inject 6:25:r7:rotl@base_24:bijective 7:31:r5:load@base_22:inject 8:34:r4:rotr@base_26:bijective 9:43:r0:sub@base_42:inject 10:45:r4:mul@base_38:lossy 11:47:r7:sub@base_46:inject 12:54:r7:sub@base_49:inject 13:55:r2:load@base_45:inject 14:56:r4:sub@base_52:inject 15:63:r0:load@base_56:inject +igneum-ca3-v4-uniform/109 72c613d2f254a75d 0 0:0:0 1:1:1 2:1:1 3:2:3 4:2:0 5:1:0 6:2:0 7:1:0 8:0:0 9:1:1 10:2:2 11:0:0 12:0:0 13:0:0 14:2:0 15:2:1 3 2 0 1 0 0:3:r0:shfl@base_2:inject 1:5:r6:add@base_4:inject 2:7:r5:load@base_5:inject 3:10:r7:load@base_3:inject 4:11:r0:load@base_10:inject 5:12:r1:load@base_7:inject 6:14:r3:xor@base_13:inject 7:18:r6:load@base_12:inject 8:20:r1:or@base_19:lossy 9:22:r7:mad@base_17:inject 10:35:r0:xor@base_33:inject 11:40:r3:or@base_28:lossy 12:41:r1:rotl@base_26:bijective 13:46:r2:xor@base_44:inject 14:47:r6:load@base_46:inject 15:55:r0:mul@base_48:lossy +igneum-ca3-v4-uniform/110 d2f3c04575a1f558 0 0:1:1 1:2:1 2:0:0 3:0:0 4:1:0 5:0:0 6:0:0 7:1:0 8:2:1 9:2:3 10:2:1 11:0:0 12:2:0 13:1:0 14:2:1 15:0:0 6 2 1 3 1 0:5:r4:add@base_0:inject 1:13:r0:mul@base_7:lossy 2:14:r5:mul@base_11:lossy 3:16:r6:sub@base_15:inject 4:18:r4:load@base_13:inject 5:19:r2:rotl@base_17:bijective 6:20:r3:load@base_19:inject 7:26:r7:xor@base_25:inject 8:27:r1:add@base_23:inject 9:30:r4:mulhi@base_29:lossy 10:40:r0:or@base_34:lossy 11:42:r3:mul@base_39:lossy 12:44:r0:or@base_43:lossy-or-chain1 13:45:r6:load@base_44:inject 14:52:r1:rotl@base_47:bijective 15:60:r0:rotr@base_56:bijective +igneum-ca3-v4-uniform/111 7bf112f6589809f6 0 0:0:0 1:1:1 2:0:0 3:0:0 4:2:3 5:1:0 6:1:0 7:0:0 8:1:1 9:0:0 10:1:0 11:2:2 12:2:2 13:1:1 14:1:1 15:1:1 2 2 1 0 0 0:1:r2:shfl@shadow_250:inject 1:3:r3:load@base_1:inject 2:7:r2:add@base_2:inject 3:16:r5:or@base_13:lossy-or-chain1 4:23:r4:rotr@base_19:bijective 5:27:r7:shfl@base_10:inject 6:29:r3:load@base_27:inject 7:30:r1:mad@base_18:inject 8:33:r0:xor@base_21:inject 9:36:r2:shfl@base_35:inject 10:37:r4:sub@base_31:inject 11:45:r1:rotl@base_44:bijective 12:47:r7:shfl@base_38:inject 13:51:r7:mad@base_49:inject 14:57:r5:xor@base_55:inject 15:60:r6:or@base_59:lossy +igneum-ca3-v4-uniform/112 9285a87ec3a0fccc 0 0:2:1 1:1:0 2:2:1 3:1:1 4:2:3 5:0:0 6:0:0 7:2:2 8:2:2 9:0:0 10:2:1 11:1:0 12:2:2 13:1:1 14:0:0 15:1:0 5 0 0 4 1 0:2:r7:rotr@base_1:bijective 1:4:r4:rotr@base_3:bijective 2:5:r6:load@base_4:inject 3:11:r7:rotl@base_7:bijective 4:17:r0:mad@base_14:inject 5:22:r5:rotl@base_13:bijective 6:26:r4:add@base_23:inject 7:27:r1:load@base_26:inject 8:33:r3:mad@base_32:inject 9:34:r2:mul@base_19:lossy 10:38:r0:sub@base_18:inject 11:39:r1:add@base_29:inject 12:40:r7:mulhi@base_24:lossy 13:45:r3:mul@base_37:lossy 14:59:r3:mul@base_49:lossy 15:60:r5:mul@base_48:lossy +igneum-ca3-v4-uniform/113 8fb726ef3ecc9269 0 0:0:0 1:2:3 2:1:0 3:2:3 4:1:1 5:2:2 6:0:0 7:2:3 8:1:0 9:2:0 10:0:0 11:0:0 12:0:0 13:2:0 14:1:0 15:1:0 2 0 0 2 0 0:4:r7:shfl@base_3:inject 1:5:r3:rotr@base_2:bijective 2:7:r5:shfl@base_6:inject 3:8:r1:load@base_4:inject 4:19:r5:rotl@base_17:bijective 5:20:r7:mul@base_16:lossy 6:27:r1:load@base_20:inject 7:32:r7:rotr@base_30:bijective 8:33:r6:mul@base_31:lossy 9:39:r5:sub@base_35:inject 10:40:r2:load@base_39:inject 11:42:r7:load@base_40:inject 12:44:r2:rotl@base_43:bijective 13:55:r0:shfl@base_54:inject 14:58:r4:add@base_53:inject 15:61:r3:load@base_58:inject +igneum-ca3-v4-uniform/114 88334bab015e6d44 0 0:2:2 1:0:0 2:2:1 3:1:1 4:1:1 5:0:0 6:1:1 7:2:1 8:1:0 9:1:1 10:1:0 11:0:0 12:1:0 13:0:0 14:2:0 15:1:0 1 0 0 1 0 0:4:r2:add@base_1:inject 1:9:r5:mul@base_3:lossy 2:10:r0:load@base_9:inject 3:12:r3:add@base_8:inject 4:14:r0:load@base_12:inject 5:15:r7:sub@base_11:inject 6:17:r4:load@base_15:inject 7:26:r2:shfl@base_13:inject 8:30:r0:xor@base_16:inject 9:32:r5:sub@base_28:inject 10:35:r2:xor@base_29:inject 11:40:r2:xor@base_36:inject 12:43:r6:load@base_40:inject 13:44:r3:add@base_41:inject 14:48:r2:load@base_43:inject 15:60:r2:xor@base_59:inject +igneum-ca3-v4-uniform/115 01d6b7c7aecdc600 0 0:1:1 1:2:2 2:1:1 3:0:0 4:1:0 5:0:0 6:1:0 7:2:3 8:2:3 9:0:0 10:0:0 11:0:0 12:2:0 13:0:0 14:2:1 15:0:0 3 2 0 0 1 0:1:r1:add@base_0:inject 1:11:r3:mad@base_9:inject 2:15:r4:add@base_12:inject 3:16:r3:mad@base_13:inject 4:19:r2:load@base_11:inject 5:20:r5:load@base_19:inject 6:21:r1:load@base_20:inject 7:24:r7:load@base_15:inject 8:31:r2:or@base_30:lossy 9:32:r3:shfl@base_29:inject 10:35:r5:or@base_34:lossy 11:39:r6:mulhi@base_38:lossy 12:48:r5:rotl@base_42:bijective 13:53:r2:xor@base_44:inject 14:55:r0:rotl@base_47:bijective 15:60:r1:rotl@base_52:bijective +igneum-ca3-v4-uniform/116 15a540b9423ad9c9 0 0:0:0 1:1:1 2:0:0 3:2:1 4:2:1 5:1:1 6:1:0 7:0:0 8:1:0 9:1:0 10:0:0 11:2:2 12:0:0 13:2:3 14:0:0 15:0:0 3 2 1 1 0 0:5:r2:shfl@base_0:inject 1:9:r1:rotr@base_8:bijective 2:10:r5:load@base_9:inject 3:15:r5:rotl@base_13:bijective 4:18:r2:load@base_10:inject 5:20:r6:or@base_12:lossy 6:26:r3:load@base_20:inject 7:28:r0:or@base_16:lossy-or-chain1 8:36:r5:rotl@base_34:bijective 9:40:r4:rotl@base_29:bijective 10:44:r7:mul@base_21:lossy 11:51:r2:shfl@base_43:inject 12:54:r7:rotl@base_47:bijective 13:57:r1:xor@base_55:inject 14:59:r0:load@base_54:inject 15:60:r3:shfl@base_58:inject +igneum-ca3-v4-uniform/117 aeb3dd57ecdc8876 0 0:1:1 1:0:0 2:0:0 3:0:0 4:1:1 5:1:1 6:1:1 7:1:0 8:2:1 9:2:1 10:2:1 11:0:0 12:2:1 13:0:0 14:1:1 15:1:1 2 0 0 0 2 0:1:r5:mulhi@base_0:lossy 1:4:r3:rotr@base_2:bijective 2:5:r0:add@base_3:inject 3:8:r4:load@base_5:inject 4:10:r2:load@base_8:inject 5:12:r0:sub@base_6:inject 6:13:r1:rotl@base_7:bijective 7:15:r4:load@base_10:inject 8:23:r0:rotl@base_21:bijective 9:42:r4:xor@base_34:inject 10:45:r2:mulhi@base_36:lossy 11:50:r7:add@base_47:inject 12:52:r1:load@base_45:inject 13:53:r0:load@base_52:inject 14:57:r4:load@base_53:inject 15:62:r3:mad@base_61:inject +igneum-ca3-v4-uniform/118 4d736b1c4a2c9eb9 0 0:1:1 1:1:0 2:0:0 3:1:0 4:2:0 5:0:0 6:0:0 7:1:0 8:1:1 9:2:1 10:0:0 11:0:0 12:1:0 13:0:0 14:2:2 15:0:0 3 0 0 0 3 0:3:r2:rotr@base_2:bijective 1:5:r6:load@base_3:inject 2:6:r5:rotl@base_4:bijective 3:8:r7:load@base_5:inject 4:9:r1:load@base_8:inject 5:18:r4:mulhi@base_15:lossy 6:27:r4:add@base_23:inject 7:28:r1:sub@base_25:inject 8:31:r7:mulhi@base_16:lossy 9:32:r1:mulhi@base_30:lossy 10:34:r2:load@base_31:inject 11:41:r6:sub@base_11:inject 12:46:r3:rotr@base_40:bijective 13:47:r4:add@base_45:inject 14:56:r6:rotr@base_51:bijective 15:57:r2:add@base_42:inject +igneum-ca3-v4-uniform/119 d3b19d272fb12986 0 0:1:0 1:0:0 2:1:1 3:0:0 4:2:1 5:2:3 6:2:1 7:1:1 8:0:0 9:0:0 10:2:0 11:2:1 12:1:1 13:2:3 14:0:0 15:1:1 3 2 0 1 0 0:1:r4:or@shadow_255:lossy 1:2:r7:load@base_1:inject 2:8:r5:add@base_7:inject 3:12:r1:add@base_3:inject 4:13:r4:load@base_8:inject 5:17:r7:shfl@base_16:inject 6:22:r0:load@base_12:inject 7:29:r1:add@base_24:inject 8:31:r6:add@base_20:inject 9:32:r2:xor@base_19:inject 10:33:r5:sub@base_30:inject 11:36:r4:add@base_23:inject 12:43:r1:xor@base_40:inject 13:46:r4:add@base_38:inject 14:56:r4:mul@base_49:lossy 15:62:r5:or@base_53:lossy +igneum-ca3-v4-uniform/120 691b974fa5ac2d50 0 0:2:3 1:1:1 2:1:0 3:0:0 4:0:0 5:1:0 6:2:3 7:2:0 8:2:3 9:2:2 10:2:0 11:2:1 12:1:1 13:2:3 14:0:0 15:0:0 3 0 0 3 0 0:4:r4:rotr@base_0:bijective 1:6:r3:mul@base_1:lossy 2:7:r5:load@base_4:inject 3:8:r7:load@base_7:inject 4:9:r4:load@base_8:inject 5:10:r1:rotl@base_3:bijective 6:12:r4:load@base_10:inject 7:13:r2:load@base_12:inject 8:24:r4:sub@base_18:inject 9:26:r5:load@base_9:inject 10:39:r5:rotr@base_34:bijective 11:42:r7:rotr@base_36:bijective 12:44:r6:mad@base_40:inject 13:45:r1:load@base_39:inject 14:48:r4:mul@base_46:lossy 15:53:r4:mul@base_49:lossy +igneum-ca3-v4-uniform/121 6685cd2eff0ebfe0 0 0:0:0 1:2:2 2:2:0 3:0:0 4:2:3 5:2:1 6:2:2 7:0:0 8:0:0 9:0:0 10:2:0 11:1:0 12:0:0 13:0:0 14:1:1 15:0:0 2 0 0 1 1 0:1:r1:mul@base_0:lossy 1:2:r4:load@base_1:inject 2:3:r0:load@base_2:inject 3:5:r5:load@base_3:inject 4:6:r1:sub@base_4:inject 5:12:r7:load@base_6:inject 6:14:r1:load@base_12:inject 7:19:r1:rotl@base_17:bijective 8:29:r4:mad@base_26:inject 9:30:r2:load@base_14:inject 10:36:r6:add@base_20:inject 11:39:r5:load@base_30:inject 12:40:r0:shfl@base_35:inject 13:47:r7:load@base_39:inject 14:54:r2:mulhi@base_44:lossy 15:60:r6:xor@base_58:inject +igneum-ca3-v4-uniform/122 8adc01dfb4294663 0 0:1:0 1:1:0 2:2:3 3:0:0 4:2:1 5:1:0 6:0:0 7:1:0 8:2:2 9:1:1 10:1:1 11:2:1 12:1:0 13:2:1 14:0:0 15:1:0 1 0 0 0 1 0:9:r2:rotr@base_2:bijective 1:10:r4:shfl@base_8:inject 2:16:r0:mulhi@base_11:lossy 3:17:r1:load@base_16:inject 4:19:r4:xor@base_14:inject 5:20:r1:load@base_19:inject 6:22:r6:mad@base_15:inject 7:25:r0:load@base_22:inject 8:26:r4:rotl@base_23:bijective 9:37:r6:shfl@base_35:inject 10:48:r3:mad@base_47:inject 11:49:r6:xor@base_44:inject 12:52:r5:add@base_36:inject 13:54:r1:load@base_26:inject 14:55:r3:load@base_52:inject 15:59:r4:rotr@base_58:bijective +igneum-ca3-v4-uniform/123 bf867ef72c9faf09 0 0:1:0 1:1:1 2:0:0 3:0:0 4:0:0 5:1:1 6:2:0 7:1:0 8:0:0 9:0:0 10:1:1 11:2:1 12:1:0 13:1:0 14:0:0 15:0:0 2 0 0 1 1 0:2:r2:mulhi@base_0:lossy 1:3:r0:load@base_2:inject 2:5:r6:shfl@base_1:inject 3:11:r0:add@base_10:inject 4:13:r0:add@base_12:inject 5:15:r2:add@base_9:inject 6:23:r5:mad@base_14:inject 7:28:r3:load@base_15:inject 8:37:r0:xor@base_34:inject 9:48:r7:xor@base_43:inject 10:51:r5:xor@base_40:inject 11:53:r4:load@base_48:inject 12:56:r1:load@base_53:inject 13:57:r3:sub@base_55:inject 14:59:r6:mul@base_58:lossy 15:63:r5:rotr@base_61:bijective +igneum-ca3-v4-uniform/124 47acaae55fdfbee7 0 0:1:1 1:2:2 2:2:2 3:1:1 4:2:1 5:2:3 6:1:1 7:2:2 8:2:0 9:2:3 10:0:0 11:0:0 12:1:1 13:2:1 14:0:0 15:0:0 1 1 0 0 0 0:2:r0:mad@base_1:inject 1:6:r5:load@base_2:inject 2:8:r2:load@base_6:inject 3:9:r7:rotl@base_0:bijective 4:12:r1:load@base_8:inject 5:15:r4:xor@base_5:inject 6:16:r7:rotl@base_14:bijective 7:17:r3:add@base_10:inject 8:31:r4:mad@base_29:inject 9:41:r7:xor@base_35:inject 10:42:r5:rotl@base_37:bijective 11:48:r2:load@base_42:inject 12:54:r0:mad@base_49:inject 13:55:r3:xor@base_46:inject 14:56:r1:or@base_44:lossy 15:61:r0:xor@base_59:inject +igneum-ca3-v4-uniform/125 2d8995efee563884 0 0:0:0 1:0:0 2:1:1 3:1:0 4:2:2 5:0:0 6:0:0 7:0:0 8:1:1 9:0:0 10:0:0 11:1:0 12:0:0 13:1:0 14:2:1 15:1:1 3 1 0 2 0 0:8:r0:add@base_7:inject 1:12:r6:add@base_4:inject 2:13:r0:load@base_12:inject 3:16:r4:mad@base_15:inject 4:23:r5:load@base_16:inject 5:24:r2:mul@base_22:lossy 6:27:r2:or@base_25:lossy 7:30:r6:mul@base_29:lossy 8:37:r6:sub@base_36:inject 9:43:r7:xor@base_33:inject 10:47:r0:sub@base_44:inject 11:51:r2:mad@base_48:inject 12:57:r1:shfl@base_49:inject 13:60:r5:add@base_50:inject 14:62:r3:load@base_57:inject 15:63:r4:rotl@base_61:bijective +igneum-ca3-v4-uniform/126 278b937d6380bc94 0 0:0:0 1:1:0 2:1:0 3:2:3 4:2:0 5:2:0 6:1:1 7:2:0 8:0:0 9:2:1 10:2:3 11:2:0 12:2:1 13:1:1 14:2:3 15:0:0 4 1 0 1 2 0:2:r5:shfl@base_1:inject 1:11:r6:mulhi@base_8:lossy 2:30:r7:mul@base_19:lossy 3:35:r5:mulhi@base_26:lossy 4:38:r0:add@base_33:inject 5:39:r4:xor@base_34:inject 6:41:r6:add@base_25:inject 7:43:r7:add@base_42:inject 8:47:r6:load@base_43:inject 9:50:r1:rotl@base_44:bijective 10:55:r2:load@base_41:inject 11:56:r5:or@base_52:lossy 12:58:r6:load@base_56:inject 13:60:r0:load@base_55:inject 14:62:r1:load@base_58:inject 15:63:r3:load@base_60:inject +igneum-ca3-v4-uniform/127 6857d633fe5de5a9 0 0:0:0 1:1:0 2:0:0 3:2:2 4:0:0 5:2:0 6:1:1 7:0:0 8:0:0 9:0:0 10:1:0 11:2:2 12:2:2 13:2:0 14:2:1 15:2:2 1 0 0 1 0 0:3:r4:shfl@base_2:inject 1:12:r2:add@base_1:inject 2:18:r3:sub@base_13:inject 3:22:r6:add@base_0:inject 4:28:r7:shfl@base_9:inject 5:31:r0:mul@base_29:lossy 6:32:r2:mad@base_25:inject 7:38:r4:load@base_22:inject 8:42:r6:load@base_28:inject 9:44:r2:xor@base_39:inject 10:45:r1:xor@base_40:inject 11:47:r5:load@base_42:inject 12:51:r3:load@base_45:inject 13:52:r1:load@base_47:inject 14:53:r6:load@base_52:inject 15:62:r5:sub@base_48:inject +igneum-ca3-v4-uniform/128 0a57a4ac7cc594d7 0 0:1:1 1:0:0 2:1:1 3:1:1 4:1:1 5:0:0 6:0:0 7:1:0 8:1:1 9:1:1 10:1:0 11:0:0 12:2:0 13:2:2 14:1:1 15:0:0 2 0 0 1 1 0:4:r0:mul@base_0:lossy 1:15:r6:xor@base_6:inject 2:18:r3:xor@base_12:inject 3:19:r5:load@base_18:inject 4:33:r6:add@base_23:inject 5:35:r2:mad@base_27:inject 6:36:r5:shfl@base_34:inject 7:38:r4:load@base_36:inject 8:41:r6:load@base_38:inject 9:44:r7:sub@base_43:inject 10:46:r4:rotr@base_42:bijective 11:54:r0:xor@base_29:inject 12:56:r6:mad@base_48:inject 13:57:r4:add@base_47:inject 14:59:r5:mulhi@base_58:lossy 15:62:r0:load@base_57:inject +igneum-ca3-v4-uniform/129 9a7e94ef9498a787 0 0:0:0 1:2:1 2:0:0 3:0:0 4:2:3 5:2:0 6:0:0 7:1:0 8:1:1 9:0:0 10:1:1 11:1:0 12:1:1 13:2:2 14:2:2 15:0:0 5 0 0 3 2 0:1:r6:mulhi@base_0:lossy 1:2:r0:load@base_1:inject 2:3:r5:mul@shadow_238:lossy 3:6:r3:load@base_3:inject 4:7:r0:load@base_6:inject 5:9:r4:shfl@base_5:inject 6:11:r6:xor@base_10:inject 7:22:r7:mulhi@base_19:lossy 8:24:r2:xor@base_17:inject 9:26:r7:mul@base_23:lossy 10:36:r7:mul@base_27:lossy 11:40:r0:load@base_36:inject 12:51:r1:shfl@base_50:inject 13:52:r3:load@base_51:inject 14:54:r7:load@base_52:inject 15:61:r0:xor@base_58:inject +igneum-ca3-v4-uniform/130 fc8a9995753e123c 0 0:0:0 1:2:1 2:1:0 3:1:1 4:1:0 5:0:0 6:2:3 7:1:1 8:0:0 9:2:2 10:2:2 11:2:3 12:1:1 13:2:3 14:1:1 15:1:1 0 0 0 0 0 0:4:r2:mad@base_0:inject 1:10:r5:xor@base_1:inject 2:16:r3:load@base_4:inject 3:22:r1:load@base_16:inject 4:23:r5:xor@base_11:inject 5:31:r0:load@base_22:inject 6:35:r2:add@base_34:inject 7:41:r6:xor@base_32:inject 8:47:r4:rotl@base_45:bijective 9:52:r4:add@base_49:inject 10:53:r5:add@base_36:inject 11:54:r3:xor@base_51:inject 12:55:r1:load@base_54:inject 13:59:r0:xor@base_56:inject 14:61:r6:load@base_53:inject 15:62:r2:sub@base_57:inject +igneum-ca3-v4-uniform/131 cc6f3f823752eb5f 0 0:2:2 1:0:0 2:1:0 3:1:0 4:2:1 5:1:1 6:0:0 7:1:0 8:1:1 9:0:0 10:2:0 11:2:3 12:1:0 13:0:0 14:1:1 15:1:1 2 0 0 0 2 0:1:r0:mad@shadow_254:inject 1:3:r1:load@base_1:inject 2:9:r7:rotl@base_4:bijective 3:11:r3:add@base_8:inject 4:28:r2:rotr@base_25:bijective 5:29:r6:load@base_28:inject 6:30:r0:xor@base_19:inject 7:33:r7:sub@base_27:inject 8:37:r0:xor@base_35:inject 9:38:r5:mulhi@base_32:lossy 10:39:r3:add@base_34:inject 11:46:r7:load@base_37:inject 12:47:r5:add@base_44:inject 13:49:r7:rotl@base_48:bijective 14:55:r6:add@base_53:inject 15:62:r7:mulhi@base_51:lossy +igneum-ca3-v4-uniform/132 dbcbf055a54fc55c 0 0:0:0 1:0:0 2:1:1 3:1:0 4:2:1 5:2:2 6:1:1 7:2:1 8:2:3 9:1:0 10:2:3 11:1:1 12:1:1 13:0:0 14:1:1 15:1:1 0 0 0 0 0 0:3:r5:mad@base_0:inject 1:4:r4:add@base_1:inject 2:7:r7:rotr@base_2:bijective 3:12:r0:rotl@base_11:bijective 4:17:r7:add@base_15:inject 5:26:r7:sub@base_19:inject 6:29:r1:rotl@base_28:bijective 7:30:r3:rotr@base_27:bijective 8:32:r4:load@base_29:inject 9:35:r0:xor@base_34:inject 10:47:r7:shfl@base_45:inject 11:52:r2:xor@base_51:inject 12:56:r1:mad@base_54:inject 13:61:r1:sub@base_57:inject 14:62:r7:load@base_56:inject 15:63:r5:load@base_62:inject +igneum-ca3-v4-uniform/133 fef1a6816c9714cf 0 0:2:0 1:2:2 2:1:1 3:0:0 4:1:0 5:0:0 6:1:1 7:0:0 8:1:0 9:2:1 10:0:0 11:1:1 12:1:1 13:1:0 14:2:3 15:1:0 8 0 0 3 5 0:3:r0:mul@base_1:lossy 1:5:r5:shfl@base_2:inject 2:13:r1:add@base_10:inject 3:18:r4:mulhi@base_12:lossy 4:19:r5:mulhi@base_15:lossy 5:22:r6:load@base_18:inject 6:26:r1:mulhi@base_16:lossy 7:31:r7:xor@base_20:inject 8:33:r1:sub@base_28:inject 9:37:r4:rotr@base_30:bijective 10:38:r0:mul@base_35:lossy 11:44:r3:add@base_39:inject 12:50:r6:mulhi@base_49:lossy 13:51:r5:mulhi@base_46:lossy 14:55:r2:mul@base_24:lossy 15:58:r7:shfl@base_48:inject +igneum-ca3-v4-uniform/134 7224d159922f16ec 0 0:2:2 1:1:0 2:2:1 3:0:0 4:0:0 5:1:1 6:2:1 7:2:0 8:0:0 9:0:0 10:0:0 11:2:1 12:2:2 13:1:1 14:0:0 15:2:3 3 0 0 3 0 0:3:r1:xor@base_2:inject 1:9:r7:add@base_8:inject 2:13:r5:load@base_3:inject 3:16:r6:rotl@base_15:bijective 4:17:r2:add@base_10:inject 5:21:r3:mul@base_14:lossy 6:23:r0:load@base_17:inject 7:25:r7:add@base_19:inject 8:30:r5:xor@base_28:inject 9:31:r2:add@base_22:inject 10:35:r7:mul@base_33:lossy 11:39:r3:mul@base_38:lossy 12:40:r1:load@base_39:inject 13:41:r5:xor@base_36:inject 14:49:r2:rotr@base_47:bijective 15:54:r7:add@base_53:inject +igneum-ca3-v4-uniform/135 257c9221d79f1820 0 0:2:3 1:1:1 2:2:1 3:0:0 4:1:0 5:1:0 6:1:1 7:1:1 8:1:0 9:2:0 10:2:0 11:1:1 12:1:0 13:1:0 14:0:0 15:1:0 4 0 0 2 2 0:3:r3:sub@base_0:inject 1:5:r0:mulhi@base_1:lossy 2:6:r7:add@base_2:inject 3:18:r5:rotr@base_16:bijective 4:23:r7:add@base_21:inject 5:26:r3:sub@base_25:inject 6:28:r0:load@base_26:inject 7:30:r6:xor@base_20:inject 8:33:r4:mulhi@base_22:lossy 9:35:r3:load@base_33:inject 10:38:r5:load@base_30:inject 11:39:r0:rotr@base_31:bijective 12:47:r4:mul@base_43:lossy 13:49:r7:rotl@base_46:bijective 14:56:r1:mul@base_51:lossy 15:58:r5:shfl@base_50:inject +igneum-ca3-v4-uniform/136 73c8bae01e52712e 0 0:1:0 1:1:1 2:1:1 3:1:1 4:0:0 5:1:1 6:2:3 7:2:0 8:0:0 9:2:2 10:0:0 11:1:1 12:2:2 13:1:0 14:0:0 15:0:0 4 1 0 2 1 0:2:r1:rotr@base_1:bijective 1:3:r2:load@base_2:inject 2:4:r3:load@base_3:inject 3:24:r7:or@base_20:lossy 4:25:r1:load@base_4:inject 5:28:r2:xor@base_26:inject 6:31:r6:add@base_30:inject 7:39:r4:mulhi@base_32:lossy 8:41:r4:shfl@base_40:inject 9:42:r3:load@base_41:inject 10:44:r2:mul@base_38:lossy 11:47:r0:load@base_44:inject 12:52:r3:mul@base_48:lossy 13:53:r2:load@base_47:inject 14:54:r4:add@base_51:inject 15:58:r6:shfl@base_57:inject +igneum-ca3-v4-uniform/137 5176f7d027c5c124 0 0:0:0 1:2:2 2:2:3 3:1:1 4:1:1 5:0:0 6:2:3 7:2:1 8:2:1 9:0:0 10:2:3 11:0:0 12:1:0 13:1:1 14:2:2 15:0:0 3 0 0 1 2 0:2:r5:mulhi@base_0:lossy 1:3:r4:load@base_2:inject 2:8:r6:xor@base_5:inject 3:9:r1:rotl@base_7:bijective 4:12:r4:rotl@base_11:bijective 5:15:r5:load@base_12:inject 6:17:r1:add@base_13:inject 7:27:r7:add@base_19:inject 8:35:r3:rotl@base_33:bijective 9:36:r5:sub@base_32:inject 10:38:r4:load@base_36:inject 11:41:r0:load@base_27:inject 12:42:r3:mulhi@base_39:lossy 13:44:r7:load@base_42:inject 14:52:r1:mul@base_47:lossy 15:59:r5:add@base_57:inject +igneum-ca3-v4-uniform/138 4db772814ddb3d18 0 0:0:0 1:2:3 2:0:0 3:1:0 4:1:1 5:1:0 6:2:1 7:0:0 8:2:2 9:2:1 10:1:1 11:1:0 12:0:0 13:2:1 14:0:0 15:0:0 5 2 0 1 2 0:6:r6:rotr@base_0:bijective 1:8:r7:rotr@base_7:bijective 2:10:r6:mul@base_9:lossy 3:21:r2:shfl@base_17:inject 4:23:r7:mulhi@base_13:lossy 5:24:r5:or@base_5:lossy 6:25:r0:mulhi@base_14:lossy 7:38:r7:xor@base_32:inject 8:47:r0:mad@base_40:inject 9:49:r7:rotr@base_48:bijective 10:53:r2:sub@base_42:inject 11:55:r1:add@base_51:inject 12:57:r3:or@base_46:lossy 13:58:r0:load@base_55:inject 14:61:r1:add@base_59:inject 15:63:r1:xor@base_62:inject +igneum-ca3-v4-uniform/139 2089f4d890c5d0bf 0 0:2:2 1:0:0 2:1:1 3:2:0 4:0:0 5:2:0 6:1:0 7:2:3 8:0:0 9:1:0 10:2:0 11:2:3 12:0:0 13:2:0 14:0:0 15:1:0 6 1 0 4 1 0:1:r1:sub@base_0:inject 1:5:r6:mad@base_4:inject 2:10:r7:xor@base_2:inject 3:13:r0:load@base_10:inject 4:15:r5:rotr@base_14:bijective 5:18:r5:mul@base_16:lossy 6:24:r3:mul@base_22:lossy 7:27:r0:add@base_17:inject 8:29:r5:rotl@base_23:bijective 9:34:r6:mulhi@base_21:lossy 10:39:r3:or@base_35:lossy 11:41:r2:load@base_27:inject 12:48:r4:add@base_44:inject 13:49:r7:sub@base_45:inject 14:60:r6:mul@base_59:lossy 15:63:r3:mul@base_57:lossy +igneum-ca3-v4-uniform/140 87aa68dd1f595ae7 0 0:2:3 1:0:0 2:1:0 3:2:3 4:2:2 5:1:1 6:0:0 7:1:0 8:2:3 9:2:2 10:2:3 11:0:0 12:0:0 13:0:0 14:1:0 15:1:0 3 0 0 2 1 0:1:r1:mul@base_0:lossy 1:2:r5:shfl@shadow_251:inject 2:7:r3:mad@base_4:inject 3:11:r5:rotr@base_8:bijective 4:20:r5:shfl@base_16:inject 5:22:r7:mul@base_3:lossy 6:23:r4:load@base_20:inject 7:25:r1:add@base_24:inject 8:26:r5:load@base_23:inject 9:29:r6:add@base_28:inject 10:31:r1:load@base_29:inject 11:45:r7:mulhi@base_40:lossy 12:47:r0:mad@base_43:inject 13:48:r1:sub@base_46:inject 14:50:r5:rotr@base_49:bijective 15:57:r7:add@base_54:inject +igneum-ca3-v4-uniform/141 764b89e2e3645183 0 0:0:0 1:2:2 2:0:0 3:1:1 4:1:0 5:1:1 6:1:0 7:1:0 8:2:1 9:1:1 10:0:0 11:0:0 12:1:0 13:0:0 14:2:2 15:2:1 1 0 0 1 0 0:5:r7:rotl@base_1:bijective 1:6:r0:load@base_5:inject 2:23:r5:sub@base_19:inject 3:25:r7:add@base_12:inject 4:31:r4:rotr@base_30:bijective 5:34:r6:load@base_25:inject 6:37:r5:xor@base_24:inject 7:39:r7:rotl@base_36:bijective 8:40:r6:xor@base_38:inject 9:44:r3:rotr@base_42:bijective 10:45:r0:load@base_44:inject 11:49:r5:mul@base_43:lossy 12:50:r7:load@base_49:inject 13:52:r3:rotr@base_48:bijective 14:57:r4:mad@base_55:inject 15:61:r3:shfl@base_53:inject +igneum-ca3-v4-uniform/142 d09b68dd76e273c2 0 0:0:0 1:0:0 2:1:0 3:0:0 4:0:0 5:0:0 6:1:1 7:2:1 8:2:1 9:2:2 10:2:1 11:1:1 12:1:0 13:0:0 14:1:0 15:0:0 5 0 0 3 2 0:1:r6:mul@base_0:lossy 1:6:r7:load@base_1:inject 2:7:r4:load@base_6:inject 3:10:r7:sub@base_8:inject 4:14:r5:add@base_3:inject 5:24:r4:mulhi@base_11:lossy 6:27:r7:mul@base_17:lossy 7:29:r1:mad@base_25:inject 8:34:r4:rotr@base_30:bijective 9:39:r1:mad@base_37:inject 10:40:r6:rotr@base_38:bijective 11:43:r6:xor@base_41:inject 12:52:r7:add@base_47:inject 13:53:r1:mul@base_42:lossy 14:57:r2:load@base_52:inject 15:58:r4:mulhi@base_55:lossy +igneum-ca3-v4-uniform/143 5e790883a7761d89 0 0:0:0 1:1:1 2:2:0 3:0:0 4:1:0 5:1:1 6:1:0 7:1:1 8:0:0 9:2:1 10:2:1 11:1:1 12:0:0 13:1:0 14:1:0 15:1:0 3 0 0 2 1 0:4:r6:mad@base_1:inject 1:5:r2:xor@base_2:inject 2:12:r0:sub@base_6:inject 3:15:r7:add@base_14:inject 4:17:r4:load@base_15:inject 5:18:r0:mul@base_16:lossy 6:20:r2:load@base_18:inject 7:21:r6:rotr@base_11:bijective 8:22:r2:load@base_21:inject 9:24:r5:load@base_22:inject 10:34:r6:mul@base_32:lossy 11:38:r4:rotl@base_28:bijective 12:45:r0:load@base_24:inject 13:53:r3:mulhi@base_46:lossy 14:58:r2:shfl@base_49:inject 15:62:r0:sub@base_55:inject +igneum-ca3-v4-uniform/144 1ef49de187ac2154 0 0:1:1 1:1:0 2:1:0 3:2:3 4:2:3 5:1:1 6:0:0 7:1:1 8:0:0 9:1:1 10:2:3 11:1:1 12:1:1 13:1:1 14:0:0 15:1:0 1 0 0 1 0 0:5:r6:shfl@base_0:inject 1:7:r0:shfl@base_6:inject 2:10:r3:load@base_5:inject 3:12:r1:sub@base_3:inject 4:16:r5:mad@base_8:inject 5:18:r3:shfl@base_17:inject 6:21:r4:mad@base_19:inject 7:25:r7:rotl@base_11:bijective 8:30:r0:add@base_27:inject 9:34:r6:shfl@base_28:inject 10:37:r2:sub@base_31:inject 11:39:r2:add@base_38:inject 12:42:r4:sub@base_41:inject 13:44:r5:mad@base_23:inject 14:47:r0:add@base_46:inject 15:52:r7:mul@base_51:lossy +igneum-ca3-v4-uniform/145 328205d976fdaf9b 0 0:2:1 1:1:1 2:2:2 3:2:1 4:1:1 5:2:2 6:2:0 7:0:0 8:1:1 9:2:3 10:0:0 11:0:0 12:1:0 13:2:1 14:0:0 15:2:3 4 1 0 2 1 0:1:r4:mad@base_0:inject 1:2:r0:or@shadow_245:lossy 2:6:r5:load@base_2:inject 3:11:r3:load@base_6:inject 4:12:r0:mul@base_9:lossy 5:18:r3:load@base_12:inject 6:25:r0:mul@base_14:lossy 7:26:r6:load@base_25:inject 8:29:r7:load@base_26:inject 9:30:r5:load@base_18:inject 10:33:r0:load@base_29:inject 11:37:r1:mulhi@base_31:lossy 12:40:r7:load@base_33:inject 13:42:r3:load@base_40:inject 14:61:r2:rotl@base_56:bijective 15:62:r4:add@base_60:inject +igneum-ca3-v4-uniform/146 535eba712af8ff81 0 0:0:0 1:2:3 2:1:0 3:0:0 4:1:0 5:0:0 6:0:0 7:1:0 8:2:0 9:0:0 10:2:3 11:1:1 12:1:1 13:2:3 14:2:0 15:2:3 2 1 0 1 0 0:3:r3:shfl@base_2:inject 1:7:r4:or@base_6:lossy 2:12:r6:rotr@base_9:bijective 3:19:r2:shfl@base_18:inject 4:22:r0:rotl@base_16:bijective 5:31:r7:rotl@base_28:bijective 6:33:r1:rotl@base_21:bijective 7:34:r2:xor@base_30:inject 8:36:r6:rotl@base_25:bijective 9:42:r4:rotl@base_35:bijective 10:43:r5:rotl@base_40:bijective 11:49:r7:mad@base_44:inject 12:53:r4:add@base_51:inject 13:58:r2:mul@base_56:lossy 14:59:r6:rotl@base_48:bijective 15:63:r3:rotr@base_37:bijective +igneum-ca3-v4-uniform/147 51f4c2cb6d2463fb 0 0:2:0 1:1:0 2:2:1 3:0:0 4:2:0 5:1:0 6:2:0 7:0:0 8:0:0 9:0:0 10:2:3 11:2:1 12:0:0 13:0:0 14:1:0 15:0:0 4 1 0 1 2 0:4:r2:mulhi@base_2:lossy 1:5:r6:load@base_4:inject 2:13:r3:rotr@base_8:bijective 3:14:r0:rotr@base_9:bijective 4:15:r6:load@base_13:inject 5:20:r1:mul@base_18:lossy 6:34:r2:sub@base_32:inject 7:40:r2:add@base_37:inject 8:43:r4:or@base_29:lossy 9:45:r7:load@base_43:inject 10:49:r3:mulhi@base_44:lossy 11:52:r6:shfl@base_51:inject 12:53:r1:shfl@base_50:inject 13:58:r7:load@base_53:inject 14:61:r0:xor@base_56:inject 15:62:r1:rotl@base_55:bijective +igneum-ca3-v4-uniform/148 16707fa34ea24259 0 0:1:1 1:2:3 2:1:0 3:1:0 4:1:0 5:0:0 6:2:2 7:2:2 8:1:1 9:2:2 10:2:2 11:0:0 12:0:0 13:2:0 14:2:1 15:1:1 2 0 0 0 2 0:1:r1:xor@base_0:inject 1:2:r4:rotl@shadow_254:bijective 2:6:r4:shfl@base_5:inject 3:15:r3:shfl@base_12:inject 4:21:r4:xor@base_7:inject 5:23:r1:shfl@base_14:inject 6:25:r5:load@base_23:inject 7:37:r6:xor@base_30:inject 8:41:r0:mad@base_29:inject 9:50:r7:xor@base_39:inject 10:54:r5:mulhi@base_48:lossy 11:55:r0:shfl@base_45:inject 12:56:r1:mulhi@base_53:lossy 13:59:r6:add@base_58:inject 14:61:r5:load@base_59:inject 15:62:r4:load@base_61:inject +igneum-ca3-v4-uniform/149 d04f367931ff9fee 0 0:2:1 1:0:0 2:0:0 3:1:0 4:1:0 5:1:1 6:0:0 7:0:0 8:1:1 9:0:0 10:0:0 11:2:2 12:2:1 13:0:0 14:1:1 15:0:0 3 0 0 1 2 0:2:r4:add@base_0:inject 1:11:r7:rotr@base_1:bijective 2:16:r0:mul@base_15:lossy 3:17:r6:load@base_11:inject 4:18:r5:rotl@base_10:bijective 5:21:r2:load@base_18:inject 6:23:r3:load@base_21:inject 7:24:r4:mulhi@base_12:lossy 8:28:r1:add@base_25:inject 9:30:r0:mad@base_26:inject 10:34:r7:load@base_28:inject 11:35:r6:xor@base_32:inject 12:36:r5:rotr@base_33:bijective 13:54:r2:mulhi@base_53:lossy 14:59:r4:rotr@base_56:bijective 15:62:r5:shfl@base_61:inject +igneum-ca3-v4-uniform/150 f44f4de2e7d52992 0 0:2:3 1:1:0 2:2:0 3:0:0 4:2:1 5:2:3 6:0:0 7:0:0 8:1:1 9:1:1 10:0:0 11:2:3 12:1:1 13:1:1 14:1:1 15:1:0 3 1 0 2 0 0:2:r6:add@base_1:inject 1:3:r5:load@base_2:inject 2:8:r6:add@base_7:inject 3:9:r3:load@base_8:inject 4:12:r7:mad@base_5:inject 5:14:r0:shfl@base_4:inject 6:23:r1:mad@base_15:inject 7:27:r5:add@base_24:inject 8:34:r7:xor@base_19:inject 9:38:r4:rotl@base_35:bijective 10:40:r1:mul@base_30:lossy 11:43:r7:or@base_42:lossy 12:48:r1:sub@base_44:inject 13:53:r6:mul@base_39:lossy 14:54:r5:load@base_53:inject 15:57:r7:mad@base_49:inject +igneum-ca3-v4-uniform/151 4a06e30fb19eed7b 0 0:2:1 1:1:0 2:2:0 3:0:0 4:2:2 5:0:0 6:1:0 7:2:0 8:2:2 9:2:3 10:0:0 11:1:1 12:1:0 13:2:2 14:2:2 15:0:0 1 1 0 0 0 0:4:r0:shfl@base_2:inject 1:7:r1:load@base_4:inject 2:9:r6:shfl@base_5:inject 3:12:r2:load@base_9:inject 4:14:r0:rotl@base_10:bijective 5:15:r5:xor@base_6:inject 6:16:r6:or@base_13:lossy 7:21:r0:load@base_16:inject 8:32:r5:xor@base_30:inject 9:38:r2:load@base_21:inject 10:43:r3:add@base_34:inject 11:44:r7:load@base_38:inject 12:54:r5:xor@base_47:inject 13:58:r1:sub@base_55:inject 14:59:r4:load@base_58:inject 15:61:r0:xor@base_51:inject +igneum-ca3-v4-uniform/152 b3a646111fc31467 0 0:1:1 1:2:1 2:0:0 3:0:0 4:1:0 5:2:1 6:0:0 7:1:0 8:0:0 9:1:1 10:2:3 11:0:0 12:2:3 13:2:2 14:0:0 15:2:2 4 0 0 2 2 0:1:r1:mul@base_0:lossy 1:10:r5:add@base_9:inject 2:17:r6:mulhi@base_4:lossy 3:22:r0:load@base_10:inject 4:26:r4:mulhi@base_12:lossy 5:28:r2:mad@base_27:inject 6:31:r0:load@base_26:inject 7:32:r3:load@base_28:inject 8:36:r2:load@base_32:inject 9:37:r5:mad@base_13:inject 10:40:r0:load@base_37:inject 11:48:r0:mad@base_47:inject 12:50:r6:mul@base_41:lossy 13:51:r5:shfl@base_42:inject 14:53:r1:mad@base_49:inject 15:56:r2:load@base_53:inject +igneum-ca3-v4-uniform/153 9f2c80beb87aea4e 0 0:0:0 1:1:0 2:2:2 3:2:3 4:1:0 5:2:3 6:1:0 7:1:1 8:1:1 9:2:2 10:0:0 11:0:0 12:0:0 13:2:3 14:0:0 15:2:1 6 0 0 4 2 0:8:r3:rotl@base_3:bijective 1:10:r4:mulhi@base_1:lossy 2:17:r5:xor@base_14:inject 3:19:r7:rotr@base_16:bijective 4:27:r3:xor@base_23:inject 5:29:r4:load@base_27:inject 6:36:r2:mulhi@base_31:lossy 7:40:r7:mul@base_32:lossy 8:46:r0:load@base_36:inject 9:47:r1:mul@base_44:lossy 10:50:r4:load@base_40:inject 11:54:r2:load@base_50:inject 12:56:r3:load@base_54:inject 13:58:r6:mul@base_49:lossy 14:61:r0:shfl@base_52:inject 15:62:r7:mul@base_59:lossy +igneum-ca3-v4-uniform/154 87842d70af7cd2f8 0 0:0:0 1:0:0 2:0:0 3:1:1 4:1:1 5:1:1 6:0:0 7:2:0 8:0:0 9:2:0 10:2:3 11:0:0 12:2:0 13:0:0 14:0:0 15:0:0 2 0 0 1 1 0:2:r3:rotr@base_0:bijective 1:4:r0:xor@base_1:inject 2:13:r6:load@base_2:inject 3:17:r5:rotr@base_5:bijective 4:21:r3:add@base_20:inject 5:23:r7:rotr@base_15:bijective 6:25:r1:shfl@base_24:inject 7:29:r6:load@base_21:inject 8:30:r0:mul@base_28:lossy 9:39:r5:shfl@base_38:inject 10:43:r4:load@base_29:inject 11:47:r7:mulhi@base_45:lossy 12:51:r2:rotl@base_50:bijective 13:52:r5:load@base_47:inject 14:54:r4:add@base_48:inject 15:60:r7:add@base_59:inject +igneum-ca3-v4-uniform/155 d73298f239f4b798 0 0:2:2 1:1:0 2:2:2 3:0:0 4:2:2 5:0:0 6:1:0 7:1:1 8:2:3 9:1:0 10:2:1 11:1:1 12:2:0 13:1:0 14:0:0 15:0:0 2 0 0 1 1 0:6:r4:mad@base_0:inject 1:8:r1:add@base_4:inject 2:14:r4:add@base_12:inject 3:17:r6:shfl@base_7:inject 4:18:r7:xor@base_10:inject 5:27:r6:mad@base_24:inject 6:30:r0:mulhi@base_22:lossy 7:31:r4:load@base_27:inject 8:44:r7:add@base_43:inject 9:47:r1:load@base_17:inject 10:48:r3:add@base_42:inject 11:50:r6:load@base_47:inject 12:51:r5:load@base_50:inject 13:53:r2:mul@base_52:lossy 14:55:r6:load@base_53:inject 15:59:r0:shfl@base_36:inject +igneum-ca3-v4-uniform/156 eeaa9cfdfc27fb70 0 0:2:2 1:2:2 2:1:1 3:1:0 4:1:0 5:0:0 6:0:0 7:2:0 8:2:1 9:1:1 10:1:1 11:2:1 12:0:0 13:2:1 14:2:0 15:1:1 3 2 0 0 1 0:6:r2:shfl@base_5:inject 1:13:r4:or@base_3:lossy 2:16:r7:sub@base_10:inject 3:18:r4:rotl@base_17:bijective 4:22:r6:xor@base_14:inject 5:28:r4:add@base_25:inject 6:32:r3:or@base_21:lossy 7:39:r0:load@base_32:inject 8:41:r4:rotr@base_40:bijective 9:44:r7:mulhi@base_43:lossy 10:47:r5:xor@base_45:inject 11:48:r2:load@base_18:inject 12:51:r1:shfl@base_50:inject 13:55:r4:add@base_53:inject 14:61:r7:add@base_60:inject 15:63:r4:sub@base_58:inject +igneum-ca3-v4-uniform/157 98fe29e5c3734c0c 0 0:0:0 1:1:1 2:0:0 3:0:0 4:0:0 5:0:0 6:2:0 7:1:0 8:0:0 9:0:0 10:0:0 11:2:3 12:1:1 13:1:1 14:1:0 15:0:0 1 0 0 1 0 0:3:r3:sub@base_0:inject 1:5:r6:load@base_3:inject 2:12:r7:add@base_11:inject 3:14:r4:xor@base_7:inject 4:19:r2:xor@base_17:inject 5:20:r0:load@base_19:inject 6:33:r2:add@base_27:inject 7:35:r3:mul@base_30:lossy 8:42:r4:rotr@base_32:bijective 9:43:r0:add@base_40:inject 10:46:r1:xor@base_44:inject 11:47:r6:add@base_34:inject 12:48:r5:xor@base_45:inject 13:49:r7:load@base_48:inject 14:50:r2:load@base_47:inject 15:56:r1:add@base_54:inject +igneum-ca3-v4-uniform/158 c6174de064c497bb 0 0:2:3 1:2:3 2:0:0 3:1:0 4:1:0 5:0:0 6:2:3 7:2:2 8:0:0 9:1:1 10:2:3 11:0:0 12:0:0 13:0:0 14:2:0 15:1:0 1 0 0 1 0 0:7:r4:mad@base_6:inject 1:8:r7:xor@base_1:inject 2:11:r0:shfl@base_3:inject 3:16:r2:load@base_8:inject 4:22:r0:load@base_16:inject 5:27:r7:xor@base_24:inject 6:29:r4:shfl@base_21:inject 7:34:r2:xor@base_31:inject 8:36:r3:rotr@base_30:bijective 9:38:r5:add@base_32:inject 10:40:r2:load@base_38:inject 11:42:r5:load@base_40:inject 12:44:r4:load@base_42:inject 13:53:r3:xor@base_46:inject 14:58:r6:mul@base_54:lossy 15:59:r7:load@base_58:inject +igneum-ca3-v4-uniform/159 0238302fd37217fd 1 0:1:1 1:1:1 2:0:0 3:2:2 4:0:0 5:2:0 6:0:0 7:0:0 8:1:0 9:0:0 10:0:0 11:1:0 12:0:0 13:0:0 14:0:0 15:0:0 5 2 0 1 2 0:2:r5:rotr@base_1:bijective 1:5:r1:rotl@base_3:bijective 2:17:r7:mul@base_16:lossy 3:22:r6:xor@base_15:inject 4:24:r3:rotr@base_19:bijective 5:29:r6:mulhi@base_23:lossy 6:30:r2:rotl@base_26:bijective 7:35:r3:load@base_30:inject 8:39:r4:or@base_32:lossy 9:42:r6:mulhi@base_36:lossy 10:47:r4:rotl@base_41:bijective 11:49:r5:or@base_48:lossy 12:55:r2:rotl@base_53:bijective 13:56:r1:add@base_54:inject 14:60:r3:load@base_55:inject 15:61:r1:sub@base_57:inject +igneum-ca3-v4-uniform/160 0abb3dfecd294e78 0 0:2:2 1:0:0 2:2:1 3:1:1 4:1:0 5:1:1 6:0:0 7:2:3 8:1:1 9:2:2 10:2:1 11:1:1 12:1:1 13:2:1 14:0:0 15:1:0 2 1 0 0 1 0:8:r7:rotl@base_5:bijective 1:9:r3:or@base_0:lossy 2:11:r3:mulhi@base_10:lossy 3:12:r4:load@base_9:inject 4:28:r6:rotr@base_15:bijective 5:29:r0:xor@base_21:inject 6:34:r5:xor@base_26:inject 7:37:r6:load@base_34:inject 8:49:r1:load@base_29:inject 9:51:r4:shfl@base_45:inject 10:54:r0:xor@base_52:inject 11:55:r7:load@base_54:inject 12:57:r6:xor@base_43:inject 13:59:r2:shfl@base_32:inject 14:62:r2:add@base_61:inject 15:63:r0:xor@base_58:inject +igneum-ca3-v4-uniform/161 d23a3fe5d92ede55 0 0:0:0 1:1:1 2:1:0 3:0:0 4:1:0 5:2:3 6:1:1 7:0:0 8:0:0 9:0:0 10:1:1 11:2:2 12:2:0 13:1:1 14:2:0 15:2:2 0 0 0 0 0 0:3:r7:add@base_2:inject 1:4:r2:load@base_3:inject 2:7:r0:sub@base_5:inject 3:12:r1:mad@base_11:inject 4:13:r6:load@base_7:inject 5:24:r7:add@base_22:inject 6:26:r5:load@base_12:inject 7:30:r1:load@base_26:inject 8:36:r1:add@base_34:inject 9:43:r7:shfl@base_35:inject 10:51:r1:rotr@base_47:bijective 11:52:r2:sub@base_48:inject 12:53:r5:load@base_52:inject 13:55:r7:load@base_53:inject 14:58:r6:load@base_43:inject 15:62:r4:add@base_49:inject +igneum-ca3-v4-uniform/162 f373465d38dbbe60 1 0:1:0 1:1:1 2:1:1 3:1:0 4:0:0 5:1:1 6:2:3 7:0:0 8:1:1 9:1:1 10:0:0 11:1:0 12:1:1 13:0:0 14:2:3 15:1:0 4 2 0 0 2 0:2:r3:shfl@base_1:inject 1:7:r7:xor@base_3:inject 2:11:r5:or@base_6:lossy 3:12:r3:load@base_11:inject 4:13:r7:load@base_12:inject 5:21:r3:mad@base_20:inject 6:25:r0:shfl@base_22:inject 7:26:r6:xor@base_19:inject 8:34:r3:load@base_26:inject 9:38:r1:mulhi@base_24:lossy 10:46:r5:xor@base_36:inject 11:47:r0:rotr@base_44:bijective 12:49:r3:or@base_42:lossy 13:54:r5:mulhi@base_52:lossy 14:57:r7:xor@base_55:inject 15:62:r4:load@base_54:inject +igneum-ca3-v4-uniform/163 97a89294a15e6142 0 0:2:2 1:2:3 2:2:0 3:0:0 4:1:0 5:1:1 6:1:0 7:2:1 8:1:0 9:1:1 10:1:0 11:0:0 12:2:3 13:2:2 14:0:0 15:1:1 1 0 0 0 1 0:1:r4:sub@shadow_255:inject 1:2:r7:load@base_1:inject 2:15:r3:mad@base_14:inject 3:19:r5:mad@base_13:inject 4:25:r6:rotr@base_18:bijective 5:31:r3:rotl@base_30:bijective 6:33:r1:add@base_32:inject 7:36:r4:load@base_25:inject 8:37:r0:shfl@base_28:inject 9:39:r2:load@base_36:inject 10:40:r6:xor@base_34:inject 11:42:r3:load@base_40:inject 12:53:r6:add@base_41:inject 13:56:r1:mulhi@base_50:lossy 14:61:r5:load@base_56:inject 15:62:r3:xor@base_54:inject +igneum-ca3-v4-uniform/164 faa4edb3bb3af99e 0 0:1:0 1:1:1 2:0:0 3:0:0 4:2:3 5:1:0 6:1:0 7:0:0 8:1:0 9:1:1 10:0:0 11:1:0 12:1:0 13:1:0 14:2:2 15:0:0 5 0 0 2 3 0:1:r3:shfl@base_0:inject 1:4:r1:load@base_1:inject 2:8:r6:load@base_4:inject 3:9:r3:sub@base_5:inject 4:18:r1:mulhi@base_14:lossy 5:24:r7:mul@base_12:lossy 6:27:r4:mul@base_20:lossy 7:30:r7:xor@base_25:inject 8:31:r5:mulhi@base_23:lossy 9:33:r3:load@base_30:inject 10:38:r1:mad@base_21:inject 11:40:r7:load@base_38:inject 12:51:r2:mulhi@base_41:lossy 13:57:r1:rotl@base_56:bijective 14:60:r5:load@base_57:inject 15:62:r4:xor@base_50:inject +igneum-ca3-v4-uniform/165 3a79d493e5fafef9 0 0:1:1 1:0:0 2:0:0 3:2:2 4:1:1 5:0:0 6:2:3 7:2:1 8:0:0 9:1:1 10:2:3 11:2:0 12:1:0 13:0:0 14:0:0 15:2:3 3 0 0 3 0 0:8:r4:xor@base_6:inject 1:10:r3:mul@base_2:lossy 2:27:r0:xor@base_20:inject 3:29:r4:xor@base_24:inject 4:34:r6:rotl@base_33:bijective 5:37:r3:load@base_34:inject 6:38:r1:load@base_37:inject 7:41:r5:mul@base_32:lossy 8:45:r1:load@base_41:inject 9:50:r5:sub@base_49:inject 10:51:r0:load@base_45:inject 11:52:r2:load@base_38:inject 12:54:r3:mul@base_46:lossy 13:57:r6:sub@base_53:inject 14:59:r0:load@base_54:inject 15:61:r4:xor@base_60:inject +igneum-ca3-v4-uniform/166 313a94f6bdf64405 0 0:1:1 1:0:0 2:1:1 3:1:0 4:0:0 5:1:0 6:1:1 7:2:3 8:2:3 9:1:0 10:0:0 11:0:0 12:1:1 13:1:1 14:2:0 15:2:3 4 2 1 1 1 0:2:r3:or@base_1:lossy-or-chain1 1:4:r4:load@base_2:inject 2:5:r2:load@base_4:inject 3:6:r1:load@base_5:inject 4:9:r2:load@base_6:inject 5:10:r5:mul@base_8:lossy 6:15:r0:rotr@base_11:bijective 7:23:r6:xor@base_19:inject 8:26:r2:mad@base_17:inject 9:39:r0:or@base_34:lossy 10:49:r4:mulhi@base_40:lossy 11:51:r2:mad@base_50:inject 12:52:r3:shfl@base_48:inject 13:59:r7:mad@base_53:inject 14:60:r2:mad@base_57:inject 15:62:r6:add@base_45:inject +igneum-ca3-v4-uniform/167 cc108e9c88604add 0 0:2:3 1:2:1 2:1:1 3:2:2 4:0:0 5:2:1 6:0:0 7:2:1 8:1:0 9:2:0 10:2:3 11:0:0 12:0:0 13:0:0 14:2:1 15:0:0 5 1 0 2 2 0:3:r5:shfl@base_1:inject 1:7:r6:load@base_3:inject 2:8:r0:mul@base_0:lossy 3:19:r1:add@base_14:inject 4:27:r3:add@base_26:inject 5:29:r7:shfl@base_24:inject 6:33:r1:mul@base_32:lossy 7:41:r6:add@base_38:inject 8:47:r6:mulhi@base_42:lossy 9:48:r5:shfl@base_46:inject 10:52:r1:load@base_48:inject 11:55:r3:mulhi@base_30:lossy 12:60:r2:mad@base_54:inject 13:61:r5:load@base_60:inject 14:62:r4:shfl@base_56:inject 15:63:r0:or@base_53:lossy +igneum-ca3-v4-uniform/168 d1c3d80f3234928d 0 0:0:0 1:0:0 2:1:0 3:1:0 4:2:3 5:0:0 6:2:1 7:2:0 8:2:3 9:0:0 10:1:1 11:0:0 12:0:0 13:0:0 14:0:0 15:2:3 2 0 0 2 0 0:2:r5:rotr@base_1:bijective 1:14:r6:xor@base_13:inject 2:15:r4:shfl@base_9:inject 3:16:r5:load@base_15:inject 4:18:r1:shfl@base_0:inject 5:20:r4:load@base_16:inject 6:26:r7:sub@base_10:inject 7:27:r4:load@base_26:inject 8:36:r1:add@base_33:inject 9:40:r1:rotl@base_39:bijective 10:42:r2:add@base_38:inject 11:45:r0:load@base_40:inject 12:47:r1:mul@base_44:lossy 13:54:r1:rotr@base_53:bijective 14:57:r0:rotr@base_51:bijective 15:60:r3:mul@base_58:lossy +igneum-ca3-v4-uniform/169 667bb8cb29203823 0 0:1:1 1:2:2 2:1:0 3:2:2 4:1:0 5:0:0 6:0:0 7:1:0 8:0:0 9:2:3 10:2:0 11:0:0 12:0:0 13:0:0 14:2:0 15:2:0 1 0 0 1 0 0:9:r0:add@base_2:inject 1:20:r2:load@base_9:inject 2:21:r7:add@base_19:inject 3:22:r5:rotl@base_18:bijective 4:24:r1:load@base_21:inject 5:25:r3:load@base_22:inject 6:27:r7:xor@base_23:inject 7:29:r6:sub@base_26:inject 8:31:r0:rotl@base_15:bijective 9:33:r4:mad@base_32:inject 10:40:r1:rotr@base_38:bijective 11:46:r3:load@base_40:inject 12:49:r0:load@base_46:inject 13:50:r7:mul@base_45:lossy 14:54:r7:shfl@base_51:inject 15:62:r1:add@base_61:inject +igneum-ca3-v4-uniform/170 d28c2540d4ca8e76 0 0:2:3 1:0:0 2:0:0 3:2:1 4:0:0 5:1:1 6:2:3 7:2:3 8:1:0 9:0:0 10:2:3 11:0:0 12:0:0 13:2:1 14:0:0 15:2:2 1 0 0 1 0 0:16:r3:mad@base_13:inject 1:19:r5:load@base_16:inject 2:20:r1:add@base_18:inject 3:22:r2:mad@base_17:inject 4:25:r4:load@base_19:inject 5:27:r6:xor@base_15:inject 6:29:r2:rotl@base_24:bijective 7:30:r7:load@base_22:inject 8:34:r1:shfl@base_31:inject 9:43:r7:add@base_42:inject 10:48:r0:shfl@base_45:inject 11:51:r1:mul@base_44:lossy 12:52:r7:shfl@base_49:inject 13:54:r4:load@base_34:inject 14:58:r0:load@base_54:inject 15:60:r6:sub@base_56:inject +igneum-ca3-v4-uniform/171 91bf2401159b8a46 0 0:2:2 1:0:0 2:2:0 3:1:1 4:0:0 5:0:0 6:0:0 7:2:1 8:0:0 9:2:3 10:0:0 11:0:0 12:2:1 13:0:0 14:0:0 15:2:0 3 0 0 1 2 0:2:r1:sub@base_1:inject 1:3:r5:load@base_2:inject 2:4:r7:load@base_3:inject 3:9:r6:sub@base_8:inject 4:12:r6:add@base_11:inject 5:15:r5:xor@base_10:inject 6:16:r4:add@base_14:inject 7:18:r1:rotr@base_13:bijective 8:22:r0:xor@base_19:inject 9:36:r1:mulhi@base_29:lossy 10:39:r2:shfl@base_37:inject 11:40:r3:load@base_39:inject 12:49:r2:add@base_47:inject 13:53:r7:mulhi@base_46:lossy 14:57:r6:add@base_54:inject 15:60:r3:mul@base_42:lossy +igneum-ca3-v4-uniform/172 a52a383afd9ae23d 0 0:0:0 1:2:0 2:2:0 3:0:0 4:0:0 5:1:0 6:1:0 7:2:1 8:1:0 9:2:3 10:0:0 11:2:3 12:0:0 13:0:0 14:0:0 15:2:0 1 0 0 1 0 0:2:r2:rotl@base_1:bijective 1:4:r0:add@base_3:inject 2:5:r6:load@base_4:inject 3:13:r0:rotr@base_11:bijective 4:16:r4:xor@base_9:inject 5:28:r1:shfl@base_20:inject 6:29:r2:rotl@base_22:bijective 7:30:r7:rotl@base_21:bijective 8:31:r4:add@base_26:inject 9:32:r5:mul@base_24:lossy 10:41:r4:add@base_38:inject 11:42:r7:add@base_39:inject 12:43:r3:load@base_41:inject 13:44:r0:load@base_43:inject 14:56:r4:shfl@base_55:inject 15:62:r2:load@base_56:inject +igneum-ca3-v4-uniform/173 799bbe59303fda00 0 0:2:3 1:2:2 2:0:0 3:2:3 4:1:0 5:2:1 6:1:0 7:2:3 8:2:1 9:0:0 10:2:1 11:2:0 12:1:1 13:0:0 14:1:1 15:1:0 1 1 0 0 0 0:3:r3:rotr@base_1:bijective 1:4:r2:load@base_3:inject 2:7:r5:shfl@base_5:inject 3:10:r3:xor@base_8:inject 4:14:r5:or@base_11:lossy 5:17:r6:load@base_14:inject 6:23:r7:sub@base_20:inject 7:30:r7:rotl@base_29:bijective 8:33:r5:load@base_23:inject 9:47:r7:sub@base_44:inject 10:49:r4:rotr@base_31:bijective 11:50:r2:load@base_33:inject 12:51:r6:sub@base_41:inject 13:58:r5:mad@base_53:inject 14:59:r0:load@base_58:inject 15:60:r1:add@base_46:inject +igneum-ca3-v4-uniform/174 4354a229f6804f5b 0 0:1:1 1:0:0 2:0:0 3:2:3 4:2:3 5:2:0 6:2:2 7:2:0 8:0:0 9:0:0 10:0:0 11:2:0 12:0:0 13:1:1 14:2:3 15:2:2 5 1 0 3 1 0:3:r2:sub@base_1:inject 1:4:r1:mad@base_2:inject 2:8:r6:load@base_4:inject 3:13:r1:add@base_7:inject 4:14:r4:or@base_12:lossy 5:20:r5:load@base_14:inject 6:24:r3:load@base_8:inject 7:29:r7:rotr@base_27:bijective 8:30:r6:load@base_20:inject 9:33:r3:mulhi@base_28:lossy 10:38:r5:xor@base_35:inject 11:46:r2:mul@base_42:lossy 12:49:r3:shfl@base_43:inject 13:53:r1:mul@base_31:lossy 14:59:r2:mul@base_55:lossy 15:60:r7:xor@base_50:inject +igneum-ca3-v4-uniform/175 db8a26588cc0d97b 0 0:0:0 1:2:2 2:1:0 3:2:0 4:2:3 5:1:0 6:0:0 7:2:2 8:0:0 9:1:0 10:2:3 11:2:1 12:2:2 13:1:1 14:1:1 15:2:1 3 0 0 3 0 0:3:r4:add@base_1:inject 1:6:r1:mul@base_5:lossy 2:19:r3:shfl@base_14:inject 3:25:r0:add@base_22:inject 4:28:r2:mad@base_26:inject 5:31:r1:rotr@base_30:bijective 6:33:r5:shfl@base_4:inject 7:36:r3:load@base_28:inject 8:43:r2:mul@base_34:lossy 9:49:r2:shfl@base_45:inject 10:54:r0:mul@base_52:lossy 11:55:r7:load@base_49:inject 12:57:r0:load@base_55:inject 13:58:r3:xor@base_50:inject 14:62:r5:load@base_58:inject 15:63:r7:rotl@base_59:bijective +igneum-ca3-v4-uniform/176 c3c28be852485806 0 0:1:1 1:1:0 2:2:2 3:0:0 4:1:0 5:2:1 6:2:0 7:1:1 8:1:0 9:2:2 10:2:3 11:2:2 12:2:2 13:0:0 14:0:0 15:1:0 1 1 0 0 0 0:7:r7:mad@base_4:inject 1:12:r1:load@base_7:inject 2:13:r0:shfl@base_3:inject 3:14:r3:rotr@base_10:bijective 4:19:r6:load@base_13:inject 5:25:r2:mad@base_23:inject 6:26:r0:sub@base_22:inject 7:30:r1:load@base_26:inject 8:32:r7:or@base_28:lossy 9:41:r0:add@base_37:inject 10:48:r6:rotl@base_34:bijective 11:50:r3:xor@base_49:inject 12:51:r4:add@base_36:inject 13:58:r6:xor@base_55:inject 14:60:r0:xor@base_59:inject 15:63:r1:shfl@base_61:inject +igneum-ca3-v4-uniform/177 0e8c379ff4c0397a 0 0:0:0 1:0:0 2:1:0 3:2:0 4:2:0 5:2:3 6:1:1 7:0:0 8:2:1 9:0:0 10:1:1 11:1:1 12:2:1 13:2:2 14:2:3 15:2:1 3 1 1 0 2 0:5:r2:or@base_1:lossy-or-chain1 1:10:r7:load@base_5:inject 2:12:r2:rotl@base_8:bijective 3:18:r5:load@base_12:inject 4:22:r4:load@base_18:inject 5:23:r7:load@base_22:inject 6:24:r6:rotl@base_3:bijective 7:33:r1:mulhi@base_26:lossy 8:39:r3:rotr@base_36:bijective 9:40:r5:add@base_25:inject 10:42:r1:load@base_40:inject 11:43:r4:mulhi@base_38:lossy 12:44:r2:rotl@base_31:bijective 13:52:r7:shfl@base_45:inject 14:55:r3:load@base_43:inject 15:59:r7:shfl@base_57:inject +igneum-ca3-v4-uniform/178 b3514a99f22cbf89 0 0:2:3 1:1:0 2:2:3 3:1:0 4:1:1 5:2:3 6:2:1 7:1:1 8:2:2 9:0:0 10:2:2 11:0:0 12:0:0 13:0:0 14:0:0 15:0:0 2 0 0 1 1 0:3:r2:xor@base_1:inject 1:9:r7:mad@base_4:inject 2:16:r3:add@base_13:inject 3:19:r1:rotl@base_14:bijective 4:26:r5:mulhi@base_25:lossy 5:31:r2:rotr@base_30:bijective 6:32:r0:load@base_26:inject 7:34:r2:mul@base_33:lossy 8:39:r2:mad@base_36:inject 9:40:r4:load@base_39:inject 10:41:r7:shfl@base_20:inject 11:43:r3:add@base_22:inject 12:50:r4:load@base_41:inject 13:51:r3:load@base_50:inject 14:53:r0:load@base_51:inject 15:60:r4:xor@base_55:inject +igneum-ca3-v4-uniform/179 139ec65356229ecb 0 0:2:0 1:1:1 2:1:1 3:2:0 4:1:1 5:2:2 6:0:0 7:2:3 8:0:0 9:1:0 10:2:2 11:1:0 12:0:0 13:2:2 14:0:0 15:0:0 3 2 0 1 0 0:1:r6:shfl@base_0:inject 1:6:r0:load@base_1:inject 2:10:r0:sub@base_8:inject 3:11:r3:xor@base_4:inject 4:15:r6:load@base_11:inject 5:20:r1:or@base_18:lossy 6:23:r7:load@base_15:inject 7:24:r5:xor@base_19:inject 8:25:r3:load@base_23:inject 9:29:r6:load@base_24:inject 10:39:r2:mul@base_22:lossy 11:50:r0:rotl@base_48:bijective 12:53:r7:load@base_50:inject 13:55:r4:or@base_38:lossy 14:62:r6:load@base_53:inject 15:63:r5:shfl@base_60:inject +igneum-ca3-v4-uniform/180 8533b53673c917ec 0 0:2:0 1:1:0 2:2:0 3:2:0 4:0:0 5:1:1 6:2:2 7:2:3 8:0:0 9:1:1 10:2:0 11:0:0 12:0:0 13:1:0 14:1:1 15:1:0 1 1 0 0 0 0:2:r3:sub@shadow_255:inject 1:11:r0:load@base_2:inject 2:14:r4:add@base_8:inject 3:15:r5:mad@base_7:inject 4:20:r2:load@base_15:inject 5:25:r7:xor@base_24:inject 6:31:r0:load@base_14:inject 7:37:r6:rotl@base_29:bijective 8:42:r5:mad@base_36:inject 9:43:r0:load@base_42:inject 10:46:r3:sub@base_39:inject 11:47:r7:load@base_46:inject 12:52:r5:shfl@base_50:inject 13:54:r7:xor@base_51:inject 14:58:r2:add@base_55:inject 15:61:r2:or@base_60:lossy +igneum-ca3-v4-uniform/181 5137dad5cde1b7da 0 0:0:0 1:2:0 2:0:0 3:0:0 4:1:1 5:2:1 6:0:0 7:0:0 8:0:0 9:0:0 10:2:1 11:1:0 12:2:0 13:0:0 14:2:1 15:1:0 3 0 0 1 2 0:7:r6:mulhi@base_5:lossy 1:9:r5:mulhi@base_8:lossy 2:13:r7:add@base_12:inject 3:15:r1:add@base_10:inject 4:16:r3:load@base_15:inject 5:19:r2:shfl@base_11:inject 6:20:r1:load@base_19:inject 7:21:r6:load@base_20:inject 8:24:r6:mad@base_23:inject 9:25:r7:load@base_21:inject 10:26:r1:rotr@base_22:bijective 11:31:r1:rotl@base_30:bijective 12:32:r2:shfl@base_29:inject 13:56:r1:mul@base_55:lossy 14:59:r3:load@base_56:inject 15:62:r0:load@base_59:inject +igneum-ca3-v4-uniform/182 71244ffb589f5b9b 0 0:1:0 1:2:2 2:1:0 3:1:1 4:1:1 5:0:0 6:2:0 7:1:0 8:2:3 9:2:0 10:2:1 11:0:0 12:1:0 13:2:3 14:1:0 15:2:2 2 0 0 0 2 0:3:r5:rotl@base_1:bijective 1:12:r4:mulhi@base_6:lossy 2:18:r6:add@base_7:inject 3:19:r5:xor@base_9:inject 4:20:r0:load@base_19:inject 5:21:r6:load@base_20:inject 6:29:r2:sub@base_28:inject 7:32:r0:rotr@base_30:bijective 8:43:r3:load@base_32:inject 9:48:r5:rotr@base_37:bijective 10:51:r6:add@base_44:inject 11:53:r5:load@base_51:inject 12:54:r7:mulhi@base_34:lossy 13:56:r6:load@base_54:inject 14:60:r7:load@base_56:inject 15:61:r4:load@base_43:inject +igneum-ca3-v4-uniform/183 c20fe0df63cfe068 0 0:1:1 1:0:0 2:2:2 3:2:1 4:1:0 5:0:0 6:0:0 7:1:1 8:1:0 9:1:1 10:2:0 11:0:0 12:1:0 13:2:3 14:0:0 15:0:0 4 2 0 2 0 0:4:r7:shfl@base_3:inject 1:6:r4:add@base_0:inject 2:7:r1:load@base_4:inject 3:14:r0:shfl@base_9:inject 4:15:r7:load@base_6:inject 5:22:r4:add@base_16:inject 6:23:r3:or@base_11:lossy 7:25:r7:add@base_21:inject 8:26:r0:load@base_23:inject 9:37:r0:sub@base_31:inject 10:44:r4:add@base_42:inject 11:49:r1:or@base_41:lossy 12:52:r6:mul@base_51:lossy 13:56:r2:rotl@base_40:bijective 14:59:r7:mul@base_57:lossy 15:60:r0:mad@base_55:inject +igneum-ca3-v4-uniform/184 7139d04328a6f15b 0 0:2:0 1:0:0 2:1:0 3:1:0 4:2:1 5:2:3 6:2:3 7:0:0 8:2:1 9:0:0 10:0:0 11:2:3 12:1:0 13:2:0 14:0:0 15:0:0 5 0 0 4 1 0:6:r5:xor@base_5:inject 1:7:r3:load@base_6:inject 2:9:r0:load@base_7:inject 3:12:r6:mad@base_2:inject 4:13:r2:mul@base_3:lossy 5:14:r3:add@base_8:inject 6:16:r7:load@base_14:inject 7:24:r6:mulhi@base_21:lossy 8:25:r4:load@base_24:inject 9:35:r2:shfl@base_19:inject 10:37:r3:mul@base_33:lossy 11:39:r4:mul@base_34:lossy 12:40:r1:load@base_39:inject 13:41:r0:load@base_35:inject 14:48:r5:mul@base_44:lossy 15:49:r6:add@base_47:inject +igneum-ca3-v4-uniform/185 e3a0c4ea0ee08db1 0 0:0:0 1:2:0 2:2:2 3:2:0 4:0:0 5:0:0 6:2:2 7:2:3 8:1:1 9:0:0 10:0:0 11:2:3 12:1:1 13:0:0 14:0:0 15:1:0 1 0 0 0 1 0:2:r7:mad@base_1:inject 1:3:r6:load@base_2:inject 2:7:r4:rotr@base_6:bijective 3:16:r7:mad@base_15:inject 4:21:r4:load@base_16:inject 5:27:r5:rotl@base_24:bijective 6:33:r3:load@base_27:inject 7:34:r4:add@base_26:inject 8:42:r5:load@base_33:inject 9:45:r0:xor@base_44:inject 10:47:r2:sub@base_46:inject 11:48:r6:mulhi@base_32:lossy 12:51:r0:load@base_48:inject 13:52:r1:sub@base_36:inject 14:57:r2:xor@base_56:inject 15:62:r3:shfl@base_58:inject +igneum-ca3-v4-uniform/186 4a92b28a4b14f11f 0 0:1:1 1:2:2 2:2:0 3:1:0 4:2:0 5:0:0 6:0:0 7:0:0 8:1:0 9:0:0 10:0:0 11:1:0 12:0:0 13:1:1 14:2:2 15:2:0 3 1 0 1 1 0:2:r7:mad@base_0:inject 1:7:r6:mad@base_1:inject 2:8:r0:shfl@base_3:inject 3:11:r1:mulhi@base_10:lossy 4:13:r3:xor@base_9:inject 5:15:r4:or@base_12:lossy 6:18:r7:load@base_11:inject 7:20:r2:load@base_13:inject 8:21:r6:load@base_20:inject 9:33:r0:rotl@base_23:bijective 10:34:r7:mul@base_32:lossy 11:36:r1:rotl@base_29:bijective 12:46:r0:mad@base_45:inject 13:47:r1:xor@base_37:inject 14:55:r0:xor@base_54:inject 15:57:r5:load@base_46:inject +igneum-ca3-v4-uniform/187 8c71f33aa5f49984 0 0:1:0 1:0:0 2:2:1 3:2:1 4:2:2 5:1:1 6:2:2 7:1:1 8:2:2 9:2:0 10:1:1 11:0:0 12:2:0 13:0:0 14:1:1 15:1:0 3 2 1 0 1 0:2:r7:mulhi@base_1:lossy 1:7:r0:mad@base_3:inject 2:17:r2:add@base_16:inject 3:20:r0:shfl@base_18:inject 4:32:r0:or@base_30:lossy 5:34:r5:shfl@base_27:inject 6:35:r2:load@base_34:inject 7:39:r3:mad@base_28:inject 8:41:r1:mad@base_25:inject 9:42:r0:or@base_40:lossy-or-chain1 10:55:r0:rotl@base_47:bijective 11:58:r3:add@base_57:inject 12:60:r6:sub@base_43:inject 13:61:r4:load@base_60:inject 14:62:r2:shfl@base_54:inject 15:63:r5:load@base_55:inject +igneum-ca3-v4-uniform/188 5e4f30af90eb0890 0 0:0:0 1:0:0 2:1:0 3:1:1 4:1:0 5:2:2 6:2:0 7:1:1 8:1:0 9:2:3 10:2:3 11:1:1 12:1:1 13:2:2 14:1:0 15:1:0 0 0 0 0 0 0:3:r1:shfl@base_1:inject 1:9:r1:sub@base_8:inject 2:16:r2:load@base_3:inject 3:21:r0:shfl@base_15:inject 4:24:r3:rotr@base_14:bijective 5:27:r5:load@base_21:inject 6:28:r6:shfl@base_22:inject 7:29:r7:rotr@base_23:bijective 8:30:r5:load@base_29:inject 9:33:r0:xor@base_32:inject 10:36:r6:load@base_33:inject 11:39:r2:add@base_31:inject 12:43:r3:add@base_37:inject 13:45:r0:add@base_41:inject 14:47:r2:add@base_42:inject 15:49:r4:load@base_47:inject +igneum-ca3-v4-uniform/189 7d527a0391961fc8 0 0:1:1 1:1:0 2:1:0 3:1:1 4:2:2 5:1:0 6:0:0 7:2:1 8:2:1 9:0:0 10:2:3 11:0:0 12:0:0 13:0:0 14:0:0 15:2:1 0 0 0 0 0 0:5:r0:rotr@base_0:bijective 1:6:r7:load@base_5:inject 2:7:r3:load@base_6:inject 3:9:r7:load@base_7:inject 4:13:r3:add@base_8:inject 5:15:r7:mad@base_11:inject 6:17:r0:load@base_13:inject 7:29:r0:add@base_27:inject 8:34:r7:add@base_20:inject 9:36:r2:load@base_34:inject 10:38:r4:load@base_36:inject 11:41:r6:mad@base_30:inject 12:42:r1:rotr@base_16:bijective 13:44:r6:xor@base_43:inject 14:59:r5:mad@base_39:inject 15:60:r2:rotl@base_56:bijective +igneum-ca3-v4-uniform/190 ed7a02a8de1767ec 0 0:1:0 1:0:0 2:1:0 3:2:3 4:0:0 5:0:0 6:2:0 7:0:0 8:1:0 9:2:1 10:0:0 11:1:1 12:2:3 13:2:1 14:1:1 15:0:0 3 1 0 0 2 0:2:r3:mulhi@base_0:lossy 1:7:r1:sub@base_6:inject 2:12:r6:or@base_10:lossy 3:15:r2:load@base_12:inject 4:21:r1:rotr@base_19:bijective 5:25:r6:add@base_24:inject 6:30:r2:mad@base_26:inject 7:31:r7:xor@base_11:inject 8:40:r5:xor@base_37:inject 9:41:r1:rotr@base_39:bijective 10:42:r3:sub@base_38:inject 11:47:r4:mad@base_32:inject 12:51:r0:mulhi@base_44:lossy 13:55:r4:xor@base_49:inject 14:56:r3:add@base_50:inject 15:60:r2:shfl@base_58:inject +igneum-ca3-v4-uniform/191 257e96cfa9c26aec 0 0:0:0 1:0:0 2:1:1 3:2:3 4:1:1 5:0:0 6:2:2 7:0:0 8:1:0 9:1:0 10:2:0 11:0:0 12:1:1 13:1:1 14:2:3 15:1:1 3 0 0 2 1 0:6:r6:rotl@base_2:bijective 1:9:r3:mad@base_8:inject 2:12:r5:sub@base_3:inject 3:13:r7:add@base_10:inject 4:15:r1:load@base_13:inject 5:23:r2:mul@base_18:lossy 6:31:r5:rotl@base_26:bijective 7:33:r4:shfl@base_29:inject 8:37:r6:xor@base_24:inject 9:47:r6:add@base_39:inject 10:48:r3:load@base_47:inject 11:52:r7:mul@base_42:lossy 12:56:r5:add@base_55:inject 13:59:r3:add@base_51:inject 14:61:r7:mulhi@base_58:lossy 15:62:r2:load@base_61:inject +igneum-ca3-v4-uniform/192 341d23a6ea7882ab 0 0:0:0 1:1:1 2:1:1 3:1:1 4:0:0 5:1:1 6:1:1 7:2:3 8:1:1 9:0:0 10:0:0 11:2:2 12:0:0 13:1:0 14:2:2 15:2:1 4 0 0 3 1 0:3:r4:mulhi@base_0:lossy 1:6:r7:load@base_3:inject 2:9:r3:add@base_7:inject 3:15:r1:mul@base_13:lossy 4:17:r2:load@base_15:inject 5:21:r7:xor@base_14:inject 6:35:r6:mul@base_25:lossy 7:37:r5:load@base_21:inject 8:40:r0:mad@base_39:inject 9:44:r6:load@base_40:inject 10:48:r4:load@base_37:inject 11:50:r3:shfl@base_45:inject 12:51:r5:mul@base_49:lossy 13:53:r3:load@base_51:inject 14:55:r2:load@base_50:inject 15:56:r7:load@base_53:inject +igneum-ca3-v4-uniform/193 cc010bc30ed89c56 0 0:0:0 1:1:0 2:0:0 3:2:2 4:0:0 5:1:0 6:0:0 7:2:1 8:2:1 9:2:0 10:0:0 11:0:0 12:2:0 13:2:3 14:2:3 15:1:1 5 1 0 2 2 0:3:r6:mulhi@base_2:lossy 1:4:r5:load@base_3:inject 2:12:r5:mul@base_11:lossy 3:14:r3:or@base_10:lossy 4:17:r6:shfl@base_15:inject 5:22:r1:mulhi@base_19:lossy 6:36:r0:load@base_22:inject 7:37:r5:add@base_23:inject 8:46:r7:xor@base_40:inject 9:48:r3:add@base_43:inject 10:53:r4:mul@base_42:lossy 11:56:r7:rotr@base_52:bijective 12:57:r6:load@base_48:inject 13:58:r3:sub@base_55:inject 14:60:r4:add@base_59:inject 15:62:r2:shfl@base_61:inject +igneum-ca3-v4-uniform/194 61017edcf5fd230b 0 0:0:0 1:1:0 2:0:0 3:1:0 4:0:0 5:1:1 6:1:0 7:0:0 8:1:1 9:1:0 10:2:3 11:1:1 12:0:0 13:0:0 14:1:1 15:1:0 2 1 0 0 1 0:6:r2:sub@base_4:inject 1:11:r5:rotr@base_2:bijective 2:12:r3:load@base_11:inject 3:16:r0:mad@base_13:inject 4:22:r2:sub@base_21:inject 5:28:r6:xor@base_20:inject 6:30:r4:or@base_18:lossy 7:39:r3:mulhi@base_37:lossy 8:43:r0:rotl@base_42:bijective 9:44:r3:shfl@base_41:inject 10:47:r6:xor@base_35:inject 11:48:r1:load@base_44:inject 12:49:r5:load@base_43:inject 13:50:r7:load@base_28:inject 14:55:r4:rotl@base_46:bijective 15:57:r1:load@base_55:inject +igneum-ca3-v4-uniform/195 14bdd946ec46093f 0 0:2:1 1:2:0 2:2:3 3:2:1 4:1:0 5:2:0 6:2:2 7:0:0 8:0:0 9:0:0 10:1:1 11:2:1 12:2:3 13:1:1 14:0:0 15:0:0 2 1 0 1 0 0:1:r6:mad@base_0:inject 1:8:r4:shfl@base_6:inject 2:11:r1:load@base_8:inject 3:13:r7:add@base_5:inject 4:22:r7:mul@base_17:lossy 5:24:r0:load@base_22:inject 6:26:r2:mad@base_10:inject 7:27:r5:load@base_24:inject 8:32:r1:load@base_27:inject 9:35:r6:mad@base_33:inject 10:36:r4:load@base_32:inject 11:43:r7:or@base_37:lossy 12:44:r4:shfl@base_38:inject 13:55:r7:rotr@base_47:bijective 14:56:r1:load@base_55:inject 15:57:r0:sub@base_28:inject +igneum-ca3-v4-uniform/196 d8acfb008bc7e55d 0 0:0:0 1:0:0 2:1:1 3:0:0 4:2:3 5:0:0 6:0:0 7:0:0 8:1:0 9:0:0 10:0:0 11:2:0 12:1:0 13:0:0 14:0:0 15:1:0 3 0 0 2 1 0:4:r0:xor@base_3:inject 1:9:r3:mulhi@base_2:lossy 2:18:r2:xor@base_1:inject 3:20:r7:xor@base_7:inject 4:23:r1:mul@base_14:lossy 5:24:r6:mul@base_17:lossy 6:25:r3:load@base_23:inject 7:27:r7:rotl@base_26:bijective 8:28:r5:mad@base_16:inject 9:31:r4:load@base_27:inject 10:32:r5:load@base_31:inject 11:34:r0:load@base_18:inject 12:35:r4:load@base_32:inject 13:40:r3:rotr@base_37:bijective 14:41:r2:load@base_24:inject 15:58:r0:xor@base_52:inject +igneum-ca3-v4-uniform/197 22e18a738f73a74c 0 0:0:0 1:1:1 2:1:1 3:2:1 4:1:1 5:0:0 6:1:0 7:1:1 8:1:0 9:1:1 10:2:2 11:1:0 12:2:3 13:1:1 14:0:0 15:0:0 1 0 0 0 1 0:7:r5:sub@base_1:inject 1:8:r4:mad@base_6:inject 2:14:r6:rotl@base_13:bijective 3:34:r7:shfl@base_28:inject 4:38:r3:mulhi@base_15:lossy 5:39:r6:add@base_37:inject 6:41:r2:sub@base_36:inject 7:46:r1:load@base_39:inject 8:52:r2:add@base_49:inject 9:53:r0:add@base_51:inject 10:54:r3:load@base_53:inject 11:55:r5:load@base_52:inject 12:56:r7:mad@base_42:inject 13:57:r3:load@base_55:inject 14:60:r6:load@base_57:inject 15:61:r4:load@base_54:inject +igneum-ca3-v4-uniform/198 09d7d9755db6f5e8 0 0:1:1 1:1:1 2:0:0 3:1:0 4:1:0 5:1:0 6:1:1 7:1:1 8:1:1 9:0:0 10:0:0 11:2:3 12:0:0 13:1:1 14:2:0 15:1:0 5 3 0 2 0 0:6:r0:or@base_4:lossy 1:7:r2:or@base_2:lossy 2:11:r7:load@base_6:inject 3:14:r5:mad@base_1:inject 4:19:r1:load@base_11:inject 5:21:r7:shfl@base_20:inject 6:23:r6:xor@base_3:inject 7:24:r2:mad@base_12:inject 8:25:r5:add@base_16:inject 9:32:r7:mul@base_29:lossy 10:36:r1:mad@base_28:inject 11:40:r3:shfl@base_26:inject 12:42:r6:load@base_36:inject 13:47:r5:load@base_42:inject 14:54:r3:mul@base_52:lossy 15:63:r7:or@base_48:lossy +igneum-ca3-v4-uniform/199 e0e6c6dd40b7f220 0 0:0:0 1:1:0 2:1:1 3:2:3 4:1:0 5:1:0 6:0:0 7:2:1 8:0:0 9:1:0 10:1:1 11:0:0 12:2:0 13:1:1 14:1:1 15:0:0 2 0 0 2 0 0:3:r3:rotl@base_2:bijective 1:6:r5:add@base_1:inject 2:7:r2:xor@base_4:inject 3:14:r6:shfl@base_13:inject 4:15:r2:load@base_14:inject 5:16:r7:rotl@base_12:bijective 6:20:r0:mul@base_19:lossy 7:30:r3:xor@base_23:inject 8:31:r1:add@base_25:inject 9:34:r3:add@base_33:inject 10:39:r2:add@base_35:inject 11:42:r0:shfl@base_36:inject 12:51:r7:mul@base_49:lossy 13:56:r6:xor@base_47:inject 14:59:r1:rotl@base_54:bijective 15:61:r4:load@base_59:inject +igneum-ca3-v4-uniform/200 da45364d984b36d9 0 0:2:0 1:2:0 2:0:0 3:2:0 4:0:0 5:0:0 6:2:0 7:2:3 8:1:1 9:1:0 10:0:0 11:1:1 12:1:1 13:0:0 14:0:0 15:1:1 4 1 0 2 1 0:1:r4:mul@base_0:lossy 1:3:r4:xor@base_2:inject 2:4:r7:load@base_1:inject 3:5:r3:load@base_4:inject 4:11:r4:add@base_9:inject 5:13:r2:rotl@base_10:bijective 6:16:r6:or@base_6:lossy 7:17:r5:add@base_12:inject 8:19:r1:load@base_17:inject 9:28:r2:xor@base_26:inject 10:35:r6:xor@base_23:inject 11:46:r5:xor@base_45:inject 12:49:r4:shfl@base_43:inject 13:50:r0:mulhi@base_36:lossy 14:56:r2:mul@base_51:lossy 15:62:r1:shfl@base_60:inject +igneum-ca3-v4-uniform/201 63b42aee8614229d 0 0:2:3 1:2:0 2:1:0 3:0:0 4:2:2 5:1:0 6:2:2 7:0:0 8:1:1 9:0:0 10:0:0 11:0:0 12:1:1 13:2:3 14:0:0 15:2:0 1 0 0 0 1 0:6:r7:add@base_0:inject 1:8:r1:load@base_6:inject 2:17:r7:rotr@base_14:bijective 3:19:r0:xor@base_4:inject 4:31:r2:shfl@base_28:inject 5:37:r5:shfl@base_33:inject 6:38:r1:xor@base_29:inject 7:40:r5:load@base_38:inject 8:42:r4:load@base_31:inject 9:43:r6:shfl@base_27:inject 10:44:r3:mad@base_41:inject 11:49:r5:mulhi@base_48:lossy 12:57:r7:mad@base_54:inject 13:58:r3:rotr@base_56:bijective 14:61:r0:mad@base_55:inject 15:63:r7:xor@base_60:inject +igneum-ca3-v4-uniform/202 1848f091b64bba5c 0 0:1:0 1:1:0 2:0:0 3:2:1 4:2:1 5:0:0 6:2:2 7:1:0 8:0:0 9:2:0 10:2:1 11:1:0 12:0:0 13:0:0 14:1:1 15:2:0 1 0 0 1 0 0:1:r5:add@base_0:inject 1:5:r3:add@base_4:inject 2:9:r5:xor@base_3:inject 3:10:r4:sub@base_7:inject 4:14:r1:rotr@base_12:bijective 5:16:r0:add@base_8:inject 6:23:r7:add@base_2:inject 7:26:r4:mul@base_25:lossy 8:35:r0:load@base_26:inject 9:38:r3:shfl@base_33:inject 10:39:r4:sub@base_37:inject 11:44:r7:rotl@base_40:bijective 12:47:r5:rotl@base_45:bijective 13:48:r1:load@base_47:inject 14:50:r3:load@base_48:inject 15:63:r6:xor@base_51:inject +igneum-ca3-v4-uniform/203 dbace8ac551c1b7c 0 0:2:3 1:2:3 2:2:0 3:0:0 4:1:0 5:1:1 6:1:1 7:2:0 8:0:0 9:0:0 10:1:0 11:1:1 12:1:0 13:1:1 14:2:1 15:0:0 4 1 0 2 1 0:1:r4:mul@base_0:lossy 1:3:r3:shfl@base_2:inject 2:6:r7:or@base_5:lossy 3:12:r3:mul@base_11:lossy 4:15:r6:xor@base_8:inject 5:16:r3:load@base_15:inject 6:17:r0:mulhi@base_4:lossy 7:24:r2:load@base_17:inject 8:25:r5:add@base_22:inject 9:30:r4:mad@base_27:inject 10:45:r0:rotr@base_34:bijective 11:49:r7:mad@base_41:inject 12:51:r6:xor@base_47:inject 13:57:r7:add@base_55:inject 14:60:r0:mad@base_58:inject 15:62:r3:load@base_60:inject +igneum-ca3-v4-uniform/204 8e5134b8e63414d2 0 0:2:1 1:2:2 2:1:0 3:0:0 4:0:0 5:2:0 6:2:2 7:0:0 8:1:0 9:2:0 10:2:0 11:2:0 12:2:3 13:2:0 14:1:0 15:1:0 2 0 0 1 1 0:1:r3:add@base_0:inject 1:8:r1:sub@base_5:inject 2:11:r6:load@base_8:inject 3:13:r4:rotl@base_10:bijective 4:16:r3:load@base_13:inject 5:17:r2:mul@base_9:lossy 6:18:r4:load@base_17:inject 7:19:r0:load@base_11:inject 8:21:r4:rotl@base_20:bijective 9:23:r6:load@base_21:inject 10:27:r7:mulhi@base_26:lossy 11:28:r4:sub@base_22:inject 12:31:r1:rotr@base_30:bijective 13:38:r7:load@base_31:inject 14:54:r7:sub@base_48:inject 15:60:r0:add@base_57:inject +igneum-ca3-v4-uniform/205 c22391b03bed1968 0 0:2:3 1:1:0 2:0:0 3:2:3 4:2:2 5:0:0 6:0:0 7:2:1 8:0:0 9:1:0 10:2:1 11:1:1 12:0:0 13:1:1 14:2:0 15:1:1 0 0 0 0 0 0:1:r4:sub@base_0:inject 1:5:r0:load@base_1:inject 2:13:r7:mad@base_4:inject 3:15:r6:load@base_13:inject 4:20:r1:rotl@base_18:bijective 5:24:r3:load@base_20:inject 6:27:r4:load@base_24:inject 7:31:r2:xor@base_26:inject 8:42:r7:xor@base_34:inject 9:43:r1:rotr@base_33:bijective 10:44:r4:shfl@base_38:inject 11:48:r6:xor@base_39:inject 12:49:r3:rotl@base_41:bijective 13:50:r0:load@base_43:inject 14:54:r3:add@base_53:inject 15:62:r7:load@base_48:inject +igneum-ca3-v4-uniform/206 3270adc4da3dccf7 0 0:2:0 1:2:0 2:0:0 3:0:0 4:2:2 5:2:1 6:0:0 7:2:2 8:0:0 9:1:0 10:2:1 11:2:0 12:0:0 13:2:2 14:1:0 15:2:3 3 0 0 3 0 0:9:r1:mul@base_8:lossy 1:11:r2:rotl@base_10:bijective 2:13:r0:rotl@base_0:bijective 3:21:r5:shfl@base_16:inject 4:22:r7:mul@base_14:lossy 5:23:r6:add@base_15:inject 6:24:r1:mad@base_12:inject 7:25:r4:load@base_23:inject 8:27:r0:load@base_22:inject 9:29:r6:mad@base_26:inject 10:36:r5:load@base_25:inject 11:37:r3:rotr@base_32:bijective 12:55:r6:sub@base_46:inject 13:57:r7:add@base_56:inject 14:59:r2:mul@base_50:lossy 15:60:r0:rotl@base_58:bijective +igneum-ca3-v4-uniform/207 386a4f6c17589b39 0 0:2:0 1:0:0 2:1:1 3:2:1 4:0:0 5:2:1 6:1:0 7:0:0 8:1:1 9:1:0 10:0:0 11:2:3 12:0:0 13:1:0 14:2:0 15:1:1 1 1 0 0 0 0:1:r5:xor@base_0:inject 1:2:r3:load@base_1:inject 2:8:r1:load@base_2:inject 3:10:r0:load@base_8:inject 4:11:r1:add@base_9:inject 5:13:r5:sub@base_3:inject 6:19:r0:or@base_17:lossy 7:27:r4:load@base_19:inject 8:34:r7:rotr@base_22:bijective 9:39:r6:rotl@base_36:bijective 10:46:r6:shfl@base_44:inject 11:49:r4:load@base_46:inject 12:50:r2:load@base_39:inject 13:56:r1:rotl@base_48:bijective 14:62:r6:shfl@base_59:inject 15:63:r1:rotl@base_57:bijective +igneum-ca3-v4-uniform/208 eb07523cdec96b87 0 0:1:0 1:0:0 2:1:1 3:2:0 4:0:0 5:1:1 6:2:1 7:2:3 8:1:1 9:1:0 10:1:1 11:2:1 12:0:0 13:2:1 14:1:1 15:0:0 2 2 0 0 0 0:1:r5:xor@base_0:inject 1:9:r0:rotl@base_2:bijective 2:16:r6:mad@base_8:inject 3:18:r2:load@base_16:inject 4:20:r0:mad@base_17:inject 5:28:r0:sub@base_27:inject 6:32:r0:or@base_31:lossy 7:33:r6:load@base_28:inject 8:40:r7:add@base_26:inject 9:45:r5:load@base_40:inject 10:46:r0:mad@base_37:inject 11:48:r1:shfl@base_44:inject 12:50:r6:sub@base_43:inject 13:54:r7:mad@base_51:inject 14:59:r6:or@base_56:lossy 15:60:r3:shfl@base_53:inject +igneum-ca3-v4-uniform/209 f132ad0b7a62c73e 0 0:0:0 1:0:0 2:1:0 3:0:0 4:2:3 5:1:1 6:0:0 7:1:1 8:1:1 9:2:2 10:2:1 11:1:1 12:2:2 13:2:3 14:0:0 15:0:0 0 0 0 0 0 0:4:r6:mad@base_2:inject 1:7:r1:xor@base_6:inject 2:8:r3:shfl@base_5:inject 3:10:r5:load@base_8:inject 4:11:r6:load@base_10:inject 5:13:r7:add@base_9:inject 6:14:r5:load@base_11:inject 7:20:r1:sub@base_19:inject 8:24:r0:add@base_21:inject 9:29:r6:rotl@base_22:bijective 10:38:r2:load@base_24:inject 11:40:r5:rotl@base_39:bijective 12:42:r6:load@base_40:inject 13:47:r4:load@base_42:inject 14:53:r3:sub@base_51:inject 15:58:r6:load@base_53:inject +igneum-ca3-v4-uniform/210 57174177dbacb4f2 0 0:0:0 1:2:2 2:1:1 3:1:0 4:1:1 5:2:3 6:2:3 7:1:0 8:0:0 9:1:1 10:2:2 11:2:1 12:2:1 13:2:3 14:1:1 15:2:2 2 0 0 1 1 0:3:r2:rotl@base_1:bijective 1:5:r6:sub@base_4:inject 2:15:r2:rotl@base_13:bijective 3:17:r1:mul@base_14:lossy 4:24:r5:rotl@base_12:bijective 5:26:r6:mulhi@base_22:lossy 6:31:r3:xor@base_28:inject 7:33:r1:shfl@base_27:inject 8:37:r0:load@base_33:inject 9:41:r6:load@base_37:inject 10:43:r4:add@base_35:inject 11:45:r3:shfl@base_44:inject 12:51:r2:load@base_45:inject 13:54:r1:rotr@base_50:bijective 14:57:r7:add@base_56:inject 15:60:r4:add@base_53:inject +igneum-ca3-v4-uniform/211 8085dbc7582ef3bc 0 0:0:0 1:1:1 2:0:0 3:1:1 4:2:2 5:0:0 6:0:0 7:1:0 8:2:3 9:0:0 10:2:1 11:2:0 12:2:1 13:1:0 14:1:0 15:0:0 2 0 0 2 0 0:2:r6:add@base_1:inject 1:4:r1:xor@base_3:inject 2:5:r4:load@base_4:inject 3:10:r0:mul@base_9:lossy 4:19:r2:mad@base_15:inject 5:20:r6:load@base_19:inject 6:21:r0:load@base_20:inject 7:29:r5:rotl@base_23:bijective 8:32:r2:shfl@base_31:inject 9:37:r7:shfl@base_24:inject 10:45:r1:mul@base_42:lossy 11:46:r3:load@base_45:inject 12:51:r7:shfl@base_48:inject 13:53:r5:xor@base_49:inject 14:56:r1:add@base_52:inject 15:59:r7:load@base_56:inject +igneum-ca3-v4-uniform/212 fcc40d97005e319b 0 0:0:0 1:2:3 2:1:0 3:2:2 4:2:0 5:0:0 6:1:1 7:1:0 8:1:0 9:1:0 10:1:0 11:0:0 12:1:1 13:1:0 14:0:0 15:2:0 3 1 0 1 1 0:4:r1:shfl@base_0:inject 1:8:r7:rotl@base_1:bijective 2:14:r4:sub@base_9:inject 3:18:r5:mul@base_10:lossy 4:20:r2:shfl@base_13:inject 5:31:r4:load@base_18:inject 6:32:r6:load@base_14:inject 7:33:r3:xor@base_25:inject 8:34:r2:load@base_33:inject 9:41:r2:xor@base_38:inject 10:42:r5:load@base_41:inject 11:49:r7:or@base_48:lossy 12:55:r5:xor@base_43:inject 13:60:r1:mulhi@base_53:lossy 14:61:r2:sub@base_51:inject 15:63:r4:sub@base_59:inject +igneum-ca3-v4-uniform/213 c2a4d757ff0a2831 0 0:0:0 1:2:2 2:1:1 3:2:3 4:1:1 5:0:0 6:2:1 7:2:2 8:2:2 9:1:1 10:2:0 11:0:0 12:2:2 13:2:0 14:0:0 15:2:1 2 0 0 2 0 0:5:r5:mad@base_4:inject 1:13:r5:xor@base_10:inject 2:21:r1:mul@base_14:lossy 3:22:r6:add@base_19:inject 4:23:r3:shfl@base_17:inject 5:29:r5:rotl@base_25:bijective 6:36:r0:load@base_23:inject 7:38:r7:xor@base_31:inject 8:43:r1:add@base_35:inject 9:46:r0:load@base_43:inject 10:48:r4:load@base_21:inject 11:50:r5:mul@base_42:lossy 12:51:r0:load@base_50:inject 13:52:r7:shfl@base_47:inject 14:57:r6:load@base_46:inject 15:58:r3:sub@base_49:inject +igneum-ca3-v4-uniform/214 9097d4cb5f1b482b 1 0:2:2 1:2:1 2:0:0 3:2:0 4:2:1 5:1:1 6:1:1 7:2:1 8:2:1 9:0:0 10:1:1 11:2:2 12:0:0 13:0:0 14:1:0 15:2:2 4 0 0 2 2 0:3:r5:mul@base_2:lossy 1:5:r7:mul@base_4:lossy 2:8:r3:xor@base_7:inject 3:22:r0:rotl@base_16:bijective 4:24:r2:mulhi@base_15:lossy 5:28:r4:mad@base_23:inject 6:32:r1:load@base_24:inject 7:37:r3:mulhi@base_29:lossy 8:40:r4:load@base_37:inject 9:42:r5:load@base_40:inject 10:52:r0:rotl@base_49:bijective 11:55:r6:add@base_46:inject 12:57:r4:shfl@base_51:inject 13:58:r1:mad@base_56:inject 14:59:r7:add@base_48:inject 15:62:r0:rotl@base_61:bijective +igneum-ca3-v4-uniform/215 91c5420ec7000427 0 0:0:0 1:2:0 2:2:1 3:2:0 4:0:0 5:1:0 6:1:1 7:0:0 8:1:0 9:2:1 10:0:0 11:2:0 12:1:0 13:0:0 14:0:0 15:0:0 3 0 0 2 1 0:2:r1:mul@base_0:lossy 1:11:r4:rotl@base_6:bijective 2:17:r7:add@base_5:inject 3:18:r6:load@base_17:inject 4:20:r0:rotr@base_15:bijective 5:21:r5:load@base_20:inject 6:23:r2:load@base_21:inject 7:31:r6:mulhi@base_27:lossy 8:35:r1:rotl@base_29:bijective 9:37:r3:rotr@base_36:bijective 10:38:r4:load@base_35:inject 11:39:r5:load@base_31:inject 12:44:r2:mul@base_33:lossy 13:49:r0:xor@base_32:inject 14:51:r2:load@base_49:inject 15:62:r0:xor@base_61:inject +igneum-ca3-v4-uniform/216 04a402e5eeead8d5 0 0:0:0 1:0:0 2:2:3 3:1:0 4:0:0 5:0:0 6:0:0 7:1:0 8:1:1 9:2:2 10:2:3 11:1:0 12:1:1 13:2:1 14:2:0 15:2:0 4 1 0 2 1 0:1:r1:shfl@base_0:inject 1:7:r0:shfl@base_5:inject 2:8:r3:mul@base_4:lossy 3:10:r5:load@base_7:inject 4:12:r2:load@base_10:inject 5:14:r4:or@base_13:lossy 6:25:r5:sub@base_18:inject 7:30:r4:load@base_25:inject 8:44:r7:mulhi@base_20:lossy 9:47:r4:xor@base_36:inject 10:49:r2:mul@base_43:lossy 11:50:r6:shfl@base_46:inject 12:51:r5:load@base_50:inject 13:52:r6:load@base_51:inject 14:54:r1:shfl@base_39:inject 15:62:r4:rotl@base_60:bijective +igneum-ca3-v4-uniform/217 2564352efb687da0 0 0:0:0 1:1:0 2:2:0 3:2:3 4:2:2 5:2:1 6:1:1 7:1:1 8:0:0 9:2:0 10:0:0 11:2:3 12:0:0 13:2:2 14:0:0 15:1:0 2 1 0 1 0 0:2:r4:shfl@base_1:inject 1:3:r3:load@base_2:inject 2:6:r6:xor@base_4:inject 3:7:r5:load@base_3:inject 4:9:r1:rotl@base_5:bijective 5:15:r6:rotl@base_12:bijective 6:27:r5:mul@base_16:lossy 7:32:r1:or@base_31:lossy 8:35:r2:rotl@base_20:bijective 9:36:r3:add@base_33:inject 10:39:r7:shfl@base_29:inject 11:42:r4:load@base_36:inject 12:44:r1:load@base_39:inject 13:46:r3:sub@base_41:inject 14:49:r6:add@base_34:inject 15:63:r3:xor@base_56:inject +igneum-ca3-v4-uniform/218 cb1d4ecaca513240 0 0:2:1 1:0:0 2:0:0 3:2:1 4:0:0 5:1:0 6:0:0 7:1:1 8:2:2 9:2:2 10:0:0 11:1:1 12:2:1 13:2:1 14:1:0 15:2:3 1 0 0 0 1 0:2:r5:rotl@base_1:bijective 1:3:r7:load@base_2:inject 2:10:r5:rotr@base_9:bijective 3:12:r1:mulhi@base_5:lossy 4:14:r0:load@base_12:inject 5:18:r0:mad@base_17:inject 6:22:r5:load@base_14:inject 7:23:r2:xor@base_19:inject 8:25:r6:xor@base_20:inject 9:27:r0:load@base_25:inject 10:29:r1:mad@base_13:inject 11:30:r7:shfl@base_24:inject 12:31:r5:load@base_30:inject 13:35:r7:mad@base_34:inject 14:53:r3:mad@base_39:inject 15:61:r6:rotr@base_42:bijective +igneum-ca3-v4-uniform/219 7ebd6fb59089b735 0 0:0:0 1:0:0 2:1:1 3:1:0 4:1:0 5:1:1 6:0:0 7:1:0 8:0:0 9:2:2 10:2:3 11:2:0 12:1:0 13:2:2 14:2:3 15:0:0 1 0 0 1 0 0:2:r2:mad@base_0:inject 1:4:r5:load@base_2:inject 2:5:r6:add@base_1:inject 3:7:r1:rotl@base_6:bijective 4:13:r2:load@base_7:inject 5:21:r6:rotl@base_16:bijective 6:22:r3:mul@base_17:lossy 7:35:r7:xor@base_30:inject 8:36:r1:add@base_31:inject 9:37:r0:shfl@base_23:inject 10:38:r6:sub@base_25:inject 11:42:r5:rotl@base_41:bijective 12:48:r2:sub@base_39:inject 13:49:r3:sub@base_40:inject 14:50:r4:load@base_36:inject 15:63:r6:add@base_62:inject +igneum-ca3-v4-uniform/220 e5cea6cb37937f13 0 0:2:0 1:2:0 2:0:0 3:0:0 4:2:1 5:1:0 6:1:0 7:2:3 8:2:0 9:0:0 10:0:0 11:1:0 12:1:0 13:2:3 14:0:0 15:2:1 3 1 0 2 0 0:1:r1:mul@base_0:lossy 1:12:r4:rotl@base_10:bijective 2:15:r0:load@base_12:inject 3:17:r6:rotr@base_6:bijective 4:18:r7:load@base_15:inject 5:20:r3:mad@base_11:inject 6:23:r4:or@base_16:lossy 7:25:r0:shfl@base_22:inject 8:30:r7:shfl@base_29:inject 9:33:r6:shfl@base_27:inject 10:35:r1:load@base_17:inject 11:39:r2:mul@base_31:lossy 12:42:r1:add@base_37:inject 13:48:r4:shfl@base_47:inject 14:51:r3:shfl@base_50:inject 15:58:r2:xor@base_55:inject +igneum-ca3-v4-uniform/221 e073a3564a9e7b12 0 0:1:1 1:1:1 2:0:0 3:0:0 4:1:0 5:0:0 6:0:0 7:1:1 8:0:0 9:0:0 10:1:1 11:2:0 12:0:0 13:0:0 14:0:0 15:2:2 1 0 0 0 1 0:2:r5:mad@base_0:inject 1:9:r1:mulhi@base_7:lossy 2:15:r5:shfl@base_12:inject 3:16:r2:add@base_11:inject 4:17:r0:load@base_9:inject 5:23:r0:sub@base_21:inject 6:26:r4:load@base_23:inject 7:31:r5:shfl@base_25:inject 8:33:r1:xor@base_27:inject 9:36:r4:rotl@base_34:bijective 10:39:r3:sub@base_24:inject 11:40:r0:load@base_39:inject 12:42:r3:add@base_41:inject 13:47:r2:mad@base_38:inject 14:50:r6:rotl@base_29:bijective 15:54:r1:xor@base_53:inject +igneum-ca3-v4-uniform/222 960b7937d34ab0d1 0 0:2:0 1:0:0 2:1:0 3:0:0 4:0:0 5:0:0 6:0:0 7:0:0 8:0:0 9:0:0 10:2:3 11:0:0 12:2:0 13:1:1 14:0:0 15:0:0 2 0 0 0 2 0:2:r5:shfl@base_1:inject 1:4:r6:load@base_2:inject 2:6:r5:load@base_4:inject 3:13:r1:shfl@base_12:inject 4:14:r6:shfl@base_5:inject 5:19:r1:mulhi@base_16:lossy 6:20:r6:add@base_18:inject 7:21:r7:load@base_19:inject 8:30:r5:rotl@base_22:bijective 9:32:r7:rotl@base_31:bijective 10:36:r3:load@base_30:inject 11:40:r7:shfl@base_37:inject 12:48:r6:mulhi@base_46:lossy 13:50:r4:load@base_36:inject 14:51:r0:add@base_49:inject 15:56:r1:xor@base_47:inject +igneum-ca3-v4-uniform/223 60dd5fd0427f28c2 0 0:2:0 1:1:1 2:0:0 3:2:1 4:0:0 5:0:0 6:2:0 7:2:2 8:0:0 9:2:2 10:1:0 11:2:1 12:2:3 13:1:1 14:0:0 15:0:0 5 0 0 5 0 0:16:r3:mul@base_14:lossy 1:17:r1:mad@base_10:inject 2:20:r7:mul@base_18:lossy 3:22:r6:mul@base_21:lossy 4:25:r4:load@base_20:inject 5:26:r3:add@base_24:inject 6:28:r1:load@base_25:inject 7:29:r5:load@base_22:inject 8:36:r4:sub@base_32:inject 9:40:r1:mul@base_39:lossy 10:45:r2:mad@base_44:inject 11:46:r0:load@base_45:inject 12:50:r1:mad@base_47:inject 13:53:r6:mul@base_41:lossy 14:54:r4:load@base_53:inject 15:57:r0:rotl@base_56:bijective +igneum-ca3-v4-uniform/224 f7ba0cfc3af39caf 0 0:1:1 1:2:2 2:0:0 3:2:0 4:2:3 5:1:1 6:2:3 7:2:2 8:1:0 9:0:0 10:0:0 11:2:3 12:0:0 13:1:1 14:1:1 15:2:3 2 1 0 0 1 0:3:r2:sub@base_2:inject 1:7:r6:mad@base_5:inject 2:9:r7:rotr@base_6:bijective 3:16:r7:sub@base_15:inject 4:17:r0:add@base_11:inject 5:18:r6:load@base_17:inject 6:20:r4:shfl@base_14:inject 7:21:r1:mulhi@base_12:lossy 8:25:r2:load@base_21:inject 9:30:r0:xor@base_28:inject 10:34:r5:rotr@base_32:bijective 11:35:r6:or@base_24:lossy 12:48:r0:add@base_45:inject 13:51:r5:xor@base_44:inject 14:54:r2:add@base_50:inject 15:63:r0:rotl@base_58:bijective +igneum-ca3-v4-uniform/225 ebad3ed48d01374f 0 0:0:0 1:1:0 2:0:0 3:2:1 4:2:0 5:0:0 6:0:0 7:0:0 8:1:1 9:0:0 10:2:1 11:2:3 12:2:0 13:2:0 14:2:1 15:0:0 4 0 0 2 2 0:2:r7:mul@base_0:lossy 1:3:r2:load@base_2:inject 2:8:r3:load@base_3:inject 3:11:r4:rotr@base_7:bijective 4:13:r1:xor@base_6:inject 5:18:r0:mulhi@base_17:lossy 6:21:r2:load@base_13:inject 7:25:r1:sub@base_24:inject 8:32:r5:load@base_25:inject 9:39:r2:rotl@base_38:bijective 10:40:r1:mul@base_37:lossy 11:41:r0:load@base_39:inject 12:48:r7:rotr@base_42:bijective 13:52:r6:xor@base_50:inject 14:56:r1:mulhi@base_54:lossy 15:57:r0:load@base_52:inject +igneum-ca3-v4-uniform/226 058decafd2b8aeb3 0 0:2:1 1:2:0 2:0:0 3:1:0 4:0:0 5:0:0 6:0:0 7:1:1 8:2:2 9:1:1 10:0:0 11:2:2 12:2:0 13:1:1 14:1:0 15:0:0 3 0 0 2 1 0:1:r5:xor@base_0:inject 1:2:r0:rotr@shadow_251:bijective 2:11:r5:shfl@base_9:inject 3:14:r2:add@base_6:inject 4:15:r7:add@base_13:inject 5:16:r0:load@base_15:inject 6:22:r0:mulhi@base_21:lossy 7:27:r6:load@base_22:inject 8:28:r3:load@base_27:inject 9:44:r2:mul@base_30:lossy 10:45:r1:mul@base_35:lossy 11:46:r0:sub@base_37:inject 12:54:r7:xor@base_51:inject 13:55:r5:add@base_40:inject 14:57:r3:load@base_55:inject 15:58:r4:load@base_57:inject +igneum-ca3-v4-uniform/227 077167186bbc9aef 0 0:0:0 1:0:0 2:1:1 3:2:3 4:2:3 5:2:3 6:1:1 7:2:0 8:0:0 9:0:0 10:2:2 11:2:2 12:2:2 13:1:1 14:2:1 15:2:0 3 0 0 1 2 0:2:r7:mulhi@base_1:lossy 1:7:r4:mad@base_5:inject 2:13:r2:xor@base_8:inject 3:15:r3:load@base_13:inject 4:17:r4:sub@base_11:inject 5:19:r2:add@base_18:inject 6:20:r5:mul@base_14:lossy 7:27:r4:sub@base_26:inject 8:33:r0:rotl@base_32:bijective 9:38:r3:mulhi@base_25:lossy 10:40:r0:load@base_38:inject 11:43:r2:rotl@base_36:bijective 12:45:r6:load@base_43:inject 13:46:r7:add@base_44:inject 14:47:r5:mad@base_39:inject 15:50:r0:load@base_46:inject +igneum-ca3-v4-uniform/228 ae177b3b1d46b7ca 0 0:1:0 1:2:3 2:2:2 3:1:0 4:1:0 5:0:0 6:0:0 7:0:0 8:2:0 9:1:1 10:0:0 11:1:0 12:0:0 13:2:0 14:0:0 15:0:0 3 0 0 2 1 0:2:r2:mul@base_1:lossy 1:4:r1:rotl@base_3:bijective 2:13:r5:shfl@base_9:inject 3:18:r2:xor@base_15:inject 4:23:r2:shfl@base_22:inject 5:24:r6:load@base_13:inject 6:27:r3:xor@base_12:inject 7:37:r1:mul@base_36:lossy 8:39:r5:sub@base_38:inject 9:43:r3:rotl@base_41:bijective 10:49:r0:mulhi@base_47:lossy 11:54:r1:rotr@base_48:bijective 12:55:r3:load@base_54:inject 13:56:r5:add@base_53:inject 14:57:r6:load@base_55:inject 15:63:r7:add@base_59:inject +igneum-ca3-v4-uniform/229 48ec7615bb4b490a 0 0:2:2 1:2:1 2:1:1 3:1:0 4:0:0 5:0:0 6:1:0 7:0:0 8:0:0 9:1:0 10:2:2 11:0:0 12:1:0 13:0:0 14:1:1 15:1:0 1 0 0 1 0 0:5:r5:mad@base_2:inject 1:7:r1:add@base_4:inject 2:9:r3:load@base_5:inject 3:10:r0:rotl@base_6:bijective 4:20:r7:xor@base_18:inject 5:21:r4:rotr@base_13:bijective 6:28:r6:load@base_20:inject 7:31:r0:load@base_21:inject 8:35:r5:load@base_28:inject 9:41:r7:rotl@base_39:bijective 10:48:r2:mad@base_46:inject 11:53:r6:shfl@base_50:inject 12:54:r4:mul@base_32:lossy 13:55:r3:shfl@base_44:inject 14:56:r0:add@base_49:inject 15:61:r1:load@base_53:inject +igneum-ca3-v4-uniform/230 0d6b5f4e34245fae 0 0:0:0 1:2:1 2:2:1 3:2:0 4:0:0 5:0:0 6:2:1 7:1:0 8:0:0 9:2:2 10:2:3 11:2:0 12:0:0 13:0:0 14:0:0 15:0:0 1 0 0 0 1 0:1:r6:sub@base_0:inject 1:6:r7:rotl@base_5:bijective 2:9:r1:rotl@base_3:bijective 3:11:r2:shfl@base_8:inject 4:12:r7:load@base_9:inject 5:15:r2:load@base_12:inject 6:22:r7:mad@base_21:inject 7:27:r0:mulhi@base_25:lossy 8:34:r1:load@base_27:inject 9:39:r0:xor@base_36:inject 10:42:r1:add@base_41:inject 11:43:r3:load@base_39:inject 12:56:r7:shfl@base_54:inject 13:57:r3:shfl@base_47:inject 14:60:r2:load@base_42:inject 15:62:r0:xor@base_59:inject +igneum-ca3-v4-uniform/231 241e7d68c28b4a4a 0 0:0:0 1:1:1 2:1:0 3:0:0 4:2:0 5:1:0 6:0:0 7:0:0 8:1:1 9:2:3 10:2:2 11:2:1 12:2:1 13:0:0 14:2:1 15:1:0 4 2 0 2 0 0:2:r4:xor@base_1:inject 1:6:r3:rotr@base_5:bijective 2:13:r0:mul@base_12:lossy 3:26:r5:add@base_18:inject 4:33:r4:mul@base_27:lossy 5:34:r6:load@base_33:inject 6:36:r4:xor@base_35:inject 7:37:r2:sub@base_31:inject 8:40:r4:or@base_39:lossy 9:44:r2:load@base_40:inject 10:47:r3:mad@base_22:inject 11:50:r2:add@base_49:inject 12:55:r4:add@base_45:inject 13:57:r1:load@base_55:inject 14:62:r0:or@base_60:lossy 15:63:r4:load@base_57:inject +igneum-ca3-v4-uniform/232 18f49ee27dfc1629 0 0:1:0 1:2:2 2:0:0 3:0:0 4:1:1 5:2:2 6:0:0 7:2:3 8:2:1 9:2:1 10:2:2 11:2:1 12:2:2 13:2:2 14:1:0 15:2:0 4 0 0 2 2 0:1:r4:add@shadow_245:inject 1:4:r1:rotr@base_2:bijective 2:6:r1:mul@base_5:lossy 3:11:r6:xor@base_8:inject 4:20:r2:mul@base_19:lossy 5:21:r4:xor@base_15:inject 6:24:r3:load@base_21:inject 7:25:r5:load@base_24:inject 8:32:r7:load@base_20:inject 9:41:r5:xor@base_29:inject 10:43:r4:rotl@base_34:bijective 11:44:r3:load@base_41:inject 12:50:r1:xor@base_45:inject 13:52:r7:load@base_50:inject 14:54:r2:mulhi@base_51:lossy 15:62:r7:mulhi@base_56:lossy +igneum-ca3-v4-uniform/233 b780de663264a48f 0 0:2:0 1:0:0 2:0:0 3:1:0 4:2:0 5:0:0 6:1:1 7:1:0 8:1:0 9:1:0 10:2:3 11:1:1 12:0:0 13:2:0 14:1:0 15:2:3 1 0 0 0 1 0:6:r3:mad@base_2:inject 1:32:r2:mulhi@base_10:lossy 2:35:r6:add@base_28:inject 3:36:r1:sub@base_29:inject 4:40:r7:add@base_19:inject 5:41:r2:load@base_36:inject 6:42:r3:rotr@base_38:bijective 7:45:r6:shfl@base_44:inject 8:47:r1:shfl@base_43:inject 9:48:r5:load@base_42:inject 10:51:r4:rotl@base_50:bijective 11:53:r6:mad@base_49:inject 12:56:r1:load@base_51:inject 13:58:r0:add@base_57:inject 14:60:r7:load@base_58:inject 15:62:r6:load@base_60:inject +igneum-ca3-v4-uniform/234 9720f0e5efe3f83c 0 0:1:0 1:2:1 2:1:0 3:2:3 4:2:0 5:1:0 6:2:0 7:2:3 8:1:1 9:1:0 10:0:0 11:1:0 12:1:1 13:0:0 14:0:0 15:1:1 3 1 0 1 1 0:7:r6:mad@base_2:inject 1:8:r4:load@base_7:inject 2:14:r2:xor@base_3:inject 3:19:r0:shfl@base_17:inject 4:21:r2:add@base_20:inject 5:22:r4:mad@base_15:inject 6:28:r7:rotl@base_25:bijective 7:35:r6:mad@base_33:inject 8:36:r2:or@base_30:lossy 9:37:r3:shfl@base_34:inject 10:38:r1:mul@base_32:lossy 11:41:r7:xor@base_40:inject 12:49:r7:mulhi@base_48:lossy 13:53:r0:xor@base_51:inject 14:60:r5:rotr@base_52:bijective 15:63:r0:mad@base_62:inject +igneum-ca3-v4-uniform/235 5b9ee881392b2fbe 0 0:0:0 1:0:0 2:1:0 3:1:1 4:2:1 5:2:2 6:2:3 7:0:0 8:1:1 9:2:2 10:1:0 11:2:2 12:0:0 13:2:3 14:1:0 15:0:0 5 1 0 2 2 0:2:r0:or@base_1:lossy 1:3:r3:load@base_2:inject 2:6:r1:load@base_3:inject 3:7:r0:shfl@base_5:inject 4:11:r3:add@base_8:inject 5:15:r4:mul@base_14:lossy 6:16:r7:load@base_11:inject 7:21:r6:xor@base_9:inject 8:28:r0:rotl@base_18:bijective 9:33:r5:load@base_21:inject 10:36:r4:rotr@base_32:bijective 11:44:r0:shfl@base_43:inject 12:46:r1:mulhi@base_41:lossy 13:47:r7:mulhi@base_45:lossy 14:51:r3:load@base_46:inject 15:61:r1:mul@base_58:lossy +igneum-ca3-v4-uniform/236 f82ccbcfa25fd8c2 0 0:1:1 1:2:1 2:2:3 3:2:1 4:0:0 5:0:0 6:1:0 7:1:0 8:1:0 9:2:3 10:1:1 11:0:0 12:2:0 13:0:0 14:0:0 15:0:0 1 0 0 1 0 0:7:r1:shfl@base_0:inject 1:8:r4:xor@base_5:inject 2:16:r6:xor@base_10:inject 3:18:r4:load@base_16:inject 4:20:r1:add@base_19:inject 5:24:r5:shfl@base_22:inject 6:26:r2:load@base_24:inject 7:29:r6:shfl@base_21:inject 8:34:r0:load@base_29:inject 9:35:r7:load@base_34:inject 10:38:r3:load@base_35:inject 11:42:r5:rotr@base_39:bijective 12:43:r6:rotl@base_41:bijective 13:57:r6:add@base_50:inject 14:61:r4:mad@base_53:inject 15:62:r5:mul@base_60:lossy +igneum-ca3-v4-uniform/237 51fe42e1a1d8f47d 0 0:2:2 1:0:0 2:0:0 3:0:0 4:1:1 5:1:1 6:0:0 7:0:0 8:0:0 9:0:0 10:1:0 11:0:0 12:2:0 13:2:0 14:1:1 15:2:3 5 0 0 3 2 0:6:r4:mul@base_5:lossy 1:12:r4:rotr@base_10:bijective 2:19:r5:shfl@base_0:inject 3:20:r0:sub@base_13:inject 4:26:r1:rotr@base_23:bijective 5:27:r3:mad@base_17:inject 6:32:r5:mulhi@base_22:lossy 7:35:r2:mul@base_30:lossy 8:39:r7:rotr@base_33:bijective 9:40:r3:xor@base_37:inject 10:44:r4:load@base_39:inject 11:45:r3:load@base_44:inject 12:52:r5:mulhi@base_50:lossy 13:53:r6:rotr@base_48:bijective 14:54:r0:load@base_53:inject 15:63:r3:mul@base_60:lossy +igneum-ca3-v4-uniform/238 2b6f078fdfd1fc63 0 0:2:0 1:0:0 2:1:1 3:0:0 4:2:1 5:1:0 6:2:1 7:1:0 8:1:1 9:1:1 10:2:1 11:2:2 12:0:0 13:1:0 14:1:0 15:0:0 3 1 0 1 1 0:2:r1:mulhi@base_1:lossy 1:7:r1:xor@base_4:inject 2:9:r7:load@base_7:inject 3:11:r4:mul@base_10:lossy 4:19:r4:shfl@base_17:inject 5:25:r6:load@base_19:inject 6:30:r7:rotl@base_24:bijective 7:35:r4:rotr@base_22:bijective 8:39:r3:load@base_30:inject 9:41:r1:or@base_38:lossy 10:45:r5:rotr@base_43:bijective 11:46:r2:xor@base_29:inject 12:47:r0:load@base_39:inject 13:48:r5:load@base_47:inject 14:49:r4:load@base_48:inject 15:57:r4:xor@base_56:inject +igneum-ca3-v4-uniform/239 4fd89de0a6216f63 0 0:2:2 1:1:1 2:1:1 3:2:1 4:2:3 5:0:0 6:2:1 7:2:0 8:2:0 9:2:1 10:2:0 11:2:2 12:2:1 13:0:0 14:2:2 15:1:0 4 1 0 2 1 0:8:r0:mul@base_6:lossy 1:20:r5:mulhi@base_11:lossy 2:21:r4:load@base_20:inject 3:25:r5:add@base_23:inject 4:26:r6:load@base_21:inject 5:30:r7:shfl@base_27:inject 6:37:r7:or@base_31:lossy 7:41:r7:add@base_38:inject 8:43:r1:shfl@base_40:inject 9:46:r1:add@base_44:inject 10:50:r0:xor@base_47:inject 11:51:r2:add@base_48:inject 12:53:r3:rotr@base_39:bijective 13:57:r4:mad@base_45:inject 14:61:r7:shfl@base_60:inject 15:62:r3:mul@base_54:lossy +igneum-ca3-v4-uniform/240 158857290c973f4a 0 0:2:2 1:0:0 2:2:2 3:0:0 4:0:0 5:2:1 6:0:0 7:1:1 8:0:0 9:2:2 10:2:0 11:2:2 12:0:0 13:0:0 14:0:0 15:1:0 3 1 0 1 1 0:2:r1:rotr@base_1:bijective 1:5:r4:load@base_2:inject 2:8:r3:mul@base_7:lossy 3:9:r2:mad@base_0:inject 4:25:r7:mulhi@base_12:lossy 5:32:r2:load@base_25:inject 6:40:r1:xor@base_39:inject 7:41:r2:load@base_40:inject 8:42:r0:or@base_29:lossy 9:43:r6:xor@base_33:inject 10:45:r3:xor@base_36:inject 11:48:r3:shfl@base_47:inject 12:49:r5:load@base_45:inject 13:51:r6:mad@base_46:inject 14:53:r0:load@base_48:inject 15:62:r4:load@base_53:inject +igneum-ca3-v4-uniform/241 f8e5982c6eafe47c 0 0:2:0 1:0:0 2:1:1 3:0:0 4:0:0 5:2:2 6:1:1 7:0:0 8:2:1 9:2:0 10:2:3 11:0:0 12:0:0 13:1:0 14:2:0 15:2:0 3 0 0 2 1 0:6:r6:xor@base_3:inject 1:17:r1:rotl@base_9:bijective 2:18:r3:rotr@base_15:bijective 3:23:r5:rotl@base_14:bijective 4:27:r7:sub@base_22:inject 5:30:r3:xor@base_26:inject 6:33:r0:mul@base_13:lossy 7:35:r6:rotr@base_31:bijective 8:36:r7:mad@base_29:inject 9:39:r4:xor@base_37:inject 10:44:r3:add@base_40:inject 11:45:r0:mulhi@base_41:lossy 12:46:r6:add@base_42:inject 13:47:r5:mul@base_28:lossy 14:51:r7:load@base_47:inject 15:56:r2:load@base_51:inject +igneum-ca3-v4-uniform/242 82d972068ab89d6b 0 0:1:0 1:2:2 2:2:3 3:0:0 4:0:0 5:0:0 6:2:0 7:2:3 8:1:1 9:1:0 10:1:1 11:1:1 12:0:0 13:2:2 14:2:0 15:2:0 5 2 0 3 0 0:5:r7:or@base_3:lossy 1:8:r3:or@base_7:lossy 2:10:r0:mul@base_9:lossy 3:12:r3:mul@base_11:lossy 4:19:r1:xor@base_13:inject 5:27:r7:rotr@base_26:bijective 6:28:r0:xor@base_21:inject 7:32:r1:rotr@base_29:bijective 8:34:r3:mad@base_22:inject 9:37:r5:shfl@base_33:inject 10:47:r3:mul@base_46:lossy 11:49:r5:sub@base_39:inject 12:51:r6:load@base_47:inject 13:55:r4:load@base_51:inject 14:57:r5:sub@base_56:inject 15:62:r3:load@base_57:inject +igneum-ca3-v4-uniform/243 cee162d72e51d156 0 0:0:0 1:2:3 2:2:0 3:2:1 4:1:1 5:1:0 6:0:0 7:0:0 8:2:1 9:2:1 10:1:1 11:1:0 12:2:3 13:2:0 14:0:0 15:1:0 6 1 0 5 0 0:1:r2:mad@base_0:inject 1:7:r7:sub@base_6:inject 2:9:r4:load@base_1:inject 3:20:r5:mul@base_11:lossy 4:25:r3:mul@base_24:lossy 5:28:r1:load@base_25:inject 6:35:r6:rotr@base_30:bijective 7:36:r4:or@base_31:lossy 8:38:r3:mul@base_32:lossy 9:39:r1:load@base_38:inject 10:43:r3:xor@base_41:inject 11:44:r5:sub@base_22:inject 12:46:r0:load@base_43:inject 13:49:r6:mad@base_45:inject 14:56:r1:mul@base_51:lossy 15:63:r3:mul@base_53:lossy +igneum-ca3-v4-uniform/244 d0f8d04424378528 0 0:1:0 1:1:1 2:0:0 3:2:3 4:1:0 5:1:1 6:1:0 7:1:0 8:0:0 9:1:0 10:1:1 11:1:1 12:1:1 13:1:0 14:2:2 15:1:1 7 2 0 3 2 0:2:r5:mul@base_0:lossy 1:3:r4:mul@base_1:lossy 2:4:r6:load@base_3:inject 3:5:r2:load@base_2:inject 4:10:r7:mul@base_7:lossy 5:17:r5:shfl@base_15:inject 6:18:r4:load@base_17:inject 7:27:r2:mad@base_25:inject 8:29:r0:mad@base_23:inject 9:38:r7:mulhi@base_37:lossy 10:41:r1:or@base_40:lossy 11:44:r5:load@base_41:inject 12:50:r2:mulhi@base_43:lossy 13:53:r5:mad@base_51:inject 14:54:r2:add@base_52:inject 15:62:r7:or@base_57:lossy +igneum-ca3-v4-uniform/245 e44f48f770f1a689 0 0:0:0 1:0:0 2:2:2 3:2:1 4:1:0 5:0:0 6:1:1 7:2:1 8:0:0 9:2:2 10:0:0 11:0:0 12:0:0 13:2:0 14:2:1 15:0:0 3 1 0 1 1 0:2:r6:xor@base_1:inject 1:5:r7:add@base_0:inject 2:10:r3:sub@base_7:inject 3:20:r6:shfl@base_9:inject 4:21:r5:load@base_20:inject 5:22:r4:mul@base_18:lossy 6:24:r3:load@base_22:inject 7:25:r2:mulhi@base_17:lossy 8:26:r1:load@base_24:inject 9:27:r0:add@base_4:inject 10:31:r7:add@base_30:inject 11:33:r4:load@base_25:inject 12:34:r0:load@base_31:inject 13:48:r5:rotl@base_37:bijective 14:58:r5:or@base_57:lossy 15:59:r4:add@base_53:inject +igneum-ca3-v4-uniform/246 d127a9597b13916f 0 0:1:0 1:0:0 2:0:0 3:0:0 4:2:3 5:0:0 6:1:0 7:2:0 8:0:0 9:2:1 10:2:3 11:0:0 12:1:1 13:0:0 14:1:1 15:0:0 2 0 0 2 0 0:7:r6:mul@base_3:lossy 1:10:r0:mul@base_6:lossy 2:13:r0:xor@base_11:inject 3:20:r1:mad@base_18:inject 4:21:r3:sub@base_19:inject 5:29:r5:add@base_26:inject 6:30:r1:add@base_22:inject 7:31:r0:shfl@base_28:inject 8:33:r3:rotr@base_32:bijective 9:38:r6:xor@base_34:inject 10:40:r7:rotl@base_39:bijective 11:41:r2:xor@base_37:inject 12:44:r4:add@base_42:inject 13:45:r1:shfl@base_35:inject 14:46:r2:sub@base_43:inject 15:54:r5:xor@base_48:inject +igneum-ca3-v4-uniform/247 3915a1ffd9dfc57b 0 0:1:0 1:0:0 2:1:1 3:2:1 4:0:0 5:1:1 6:2:0 7:1:1 8:2:0 9:1:1 10:1:1 11:2:0 12:2:0 13:2:0 14:2:2 15:1:1 3 0 0 2 1 0:3:r4:rotr@base_0:bijective 1:5:r6:load@base_3:inject 2:11:r1:rotr@base_4:bijective 3:15:r3:mad@base_7:inject 4:16:r6:mul@base_8:lossy 5:17:r2:load@base_15:inject 6:21:r7:load@base_17:inject 7:28:r4:load@base_16:inject 8:31:r1:mul@base_30:lossy 9:37:r6:mad@base_35:inject 10:42:r7:xor@base_38:inject 11:43:r0:load@base_42:inject 12:46:r4:sub@base_44:inject 13:49:r3:shfl@base_34:inject 14:53:r2:mulhi@base_40:lossy 15:54:r3:shfl@base_52:inject +igneum-ca3-v4-uniform/248 f0dcfd3da6c9e5da 0 0:0:0 1:2:2 2:2:0 3:1:1 4:2:3 5:2:2 6:1:1 7:0:0 8:1:0 9:2:1 10:1:0 11:0:0 12:2:2 13:0:0 14:1:1 15:0:0 5 1 0 3 1 0:1:r5:add@base_0:inject 1:3:r6:mad@base_2:inject 2:8:r0:rotl@base_7:bijective 3:11:r2:load@base_3:inject 4:17:r6:mulhi@base_14:lossy 5:18:r1:load@base_17:inject 6:22:r5:add@base_6:inject 7:26:r0:load@base_18:inject 8:31:r0:mul@base_27:lossy 9:32:r2:mad@base_28:inject 10:37:r1:shfl@base_35:inject 11:38:r4:rotl@base_30:bijective 12:45:r4:mul@base_44:lossy 13:46:r5:mul@base_40:lossy 14:49:r0:mad@base_48:inject 15:58:r3:or@base_53:lossy +igneum-ca3-v4-uniform/249 3d9e5e3351fa3cfe 0 0:2:0 1:0:0 2:2:1 3:0:0 4:1:0 5:2:0 6:0:0 7:2:0 8:1:1 9:1:1 10:1:1 11:1:0 12:0:0 13:0:0 14:2:1 15:1:1 1 0 0 0 1 0:3:r2:xor@base_2:inject 1:5:r7:add@base_0:inject 2:11:r1:rotr@base_7:bijective 3:12:r3:rotr@base_9:bijective 4:17:r3:sub@base_16:inject 5:19:r0:sub@base_15:inject 6:20:r4:load@base_19:inject 7:21:r0:load@base_20:inject 8:27:r3:mulhi@base_26:lossy 9:38:r1:xor@base_18:inject 10:42:r4:load@base_38:inject 11:44:r0:xor@base_39:inject 12:46:r7:add@base_36:inject 13:48:r3:load@base_44:inject 14:59:r1:rotl@base_47:bijective 15:60:r4:add@base_53:inject +igneum-ca3-v4-uniform/250 ca675088662da713 0 0:1:0 1:0:0 2:2:3 3:1:0 4:1:1 5:2:1 6:0:0 7:0:0 8:0:0 9:0:0 10:2:0 11:2:3 12:1:0 13:2:1 14:1:0 15:0:0 3 1 0 2 0 0:1:r2:add@base_0:inject 1:3:r1:add@base_2:inject 2:9:r5:rotl@base_8:bijective 3:23:r2:sub@base_18:inject 4:24:r3:mul@base_12:lossy 5:27:r4:sub@base_19:inject 6:30:r3:rotr@base_28:bijective 7:34:r7:sub@base_22:inject 8:36:r2:mul@base_31:lossy 9:39:r0:sub@base_37:inject 10:40:r5:shfl@base_35:inject 11:46:r6:shfl@base_44:inject 12:48:r4:or@base_43:lossy 13:50:r2:load@base_46:inject 14:54:r3:shfl@base_49:inject 15:60:r4:mad@base_52:inject +igneum-ca3-v4-uniform/251 98df397c56859a93 0 0:1:1 1:1:0 2:1:1 3:1:0 4:0:0 5:0:0 6:0:0 7:0:0 8:0:0 9:2:1 10:1:1 11:2:3 12:2:3 13:1:1 14:2:0 15:2:3 4 1 0 1 2 0:3:r4:rotl@base_1:bijective 1:4:r5:mad@base_0:inject 2:6:r3:load@base_4:inject 3:12:r7:mulhi@base_11:lossy 4:15:r0:load@base_12:inject 5:16:r7:add@base_14:inject 6:21:r5:or@base_20:lossy 7:23:r1:load@base_21:inject 8:26:r2:load@base_6:inject 9:40:r2:mulhi@base_38:lossy 10:42:r7:sub@base_32:inject 11:47:r0:load@base_40:inject 12:49:r4:add@base_48:inject 13:54:r7:mul@base_53:lossy 14:57:r1:add@base_51:inject 15:58:r5:add@base_44:inject +igneum-ca3-v4-uniform/252 c17ab603bee369c0 0 0:1:0 1:2:2 2:0:0 3:2:3 4:2:3 5:0:0 6:0:0 7:2:3 8:2:2 9:0:0 10:2:0 11:2:1 12:2:0 13:2:3 14:2:2 15:1:1 4 2 1 0 2 0:6:r2:rotr@base_4:bijective 1:10:r4:mad@base_2:inject 2:18:r1:or@base_12:lossy-or-chain1 3:23:r0:xor@base_21:inject 4:25:r7:xor@base_16:inject 5:28:r2:mulhi@base_26:lossy 6:36:r3:or@base_27:lossy 7:38:r7:load@base_36:inject 8:41:r4:mulhi@base_11:lossy 9:42:r6:load@base_38:inject 10:44:r5:rotl@base_39:bijective 11:49:r5:shfl@base_48:inject 12:50:r0:load@base_44:inject 13:52:r6:load@base_49:inject 14:59:r5:shfl@base_58:inject 15:60:r1:sub@base_56:inject +igneum-ca3-v4-uniform/253 550af7eda49b2ffd 0 0:0:0 1:0:0 2:0:0 3:2:1 4:0:0 5:1:0 6:1:0 7:2:1 8:0:0 9:0:0 10:2:1 11:2:3 12:1:1 13:1:0 14:2:0 15:1:1 3 1 0 1 1 0:1:r5:sub@base_0:inject 1:6:r0:rotr@base_4:bijective 2:10:r0:rotl@base_8:bijective 3:16:r7:mul@base_14:lossy 4:17:r3:load@base_1:inject 5:20:r2:or@base_19:lossy 6:24:r1:xor@base_18:inject 7:26:r0:rotl@base_23:bijective 8:27:r5:sub@base_22:inject 9:28:r4:load@base_27:inject 10:30:r2:load@base_28:inject 11:31:r6:load@base_24:inject 12:35:r7:add@base_34:inject 13:44:r2:mulhi@base_40:lossy 14:47:r4:rotr@base_46:bijective 15:53:r1:load@base_47:inject +igneum-ca3-v4-uniform/254 f19cd0892c519e9e 1 0:1:0 1:2:1 2:1:0 3:0:0 4:1:1 5:1:0 6:1:0 7:1:1 8:2:0 9:1:0 10:1:1 11:1:0 12:0:0 13:0:0 14:0:0 15:1:1 1 1 0 0 0 0:5:r1:or@base_3:lossy 1:8:r0:shfl@base_7:inject 2:10:r4:sub@base_9:inject 3:12:r0:load@base_10:inject 4:27:r5:mad@base_25:inject 5:28:r6:add@base_24:inject 6:33:r1:mad@base_32:inject 7:36:r2:rotr@base_35:bijective 8:39:r5:load@base_33:inject 9:43:r5:rotl@base_41:bijective 10:44:r3:load@base_39:inject 11:46:r0:load@base_43:inject 12:47:r7:load@base_44:inject 13:56:r2:add@base_51:inject 14:57:r4:shfl@base_52:inject 15:59:r5:load@base_56:inject +igneum-ca3-v4-uniform/255 1b02f0d17be2a754 0 0:0:0 1:0:0 2:1:0 3:2:2 4:0:0 5:0:0 6:0:0 7:2:1 8:1:0 9:0:0 10:1:1 11:1:0 12:1:0 13:1:0 14:1:0 15:1:1 4 3 0 0 1 0:5:r3:or@base_1:lossy 1:6:r5:shfl@base_2:inject 2:14:r4:or@base_13:lossy 3:16:r2:shfl@base_12:inject 4:19:r3:load@base_16:inject 5:20:r1:rotl@base_18:bijective 6:24:r3:or@base_22:lossy 7:27:r2:shfl@base_26:inject 8:28:r6:load@base_19:inject 9:29:r1:add@base_21:inject 10:33:r2:sub@base_30:inject 11:35:r5:load@base_24:inject 12:39:r4:load@base_27:inject 13:50:r6:mulhi@base_47:lossy 14:57:r3:rotr@base_51:bijective 15:63:r2:xor@base_62:inject +igneum-ca3-v4-uniform/256 dfe6c877bdc37b18 0 0:1:0 1:1:0 2:2:2 3:1:1 4:1:0 5:2:2 6:2:3 7:1:0 8:1:1 9:1:1 10:2:0 11:0:0 12:2:0 13:1:0 14:1:0 15:0:0 2 1 0 0 1 0:4:r0:mad@base_1:inject 1:7:r2:mad@base_2:inject 2:8:r5:load@base_4:inject 3:17:r6:add@base_13:inject 4:18:r1:mad@base_14:inject 5:23:r0:load@base_17:inject 6:25:r2:shfl@base_19:inject 7:28:r7:sub@base_26:inject 8:35:r0:or@base_33:lossy 9:36:r5:load@base_25:inject 10:37:r4:shfl@base_16:inject 11:49:r4:mad@base_48:inject 12:51:r5:mad@base_46:inject 13:53:r0:rotl@base_52:bijective 14:54:r4:load@base_53:inject 15:60:r2:mulhi@base_57:lossy +igneum-ca3-v4-uniform/257 a373a01a44fd3c85 0 0:1:0 1:1:0 2:0:0 3:1:0 4:1:1 5:0:0 6:2:1 7:2:2 8:1:0 9:2:0 10:2:2 11:1:1 12:0:0 13:0:0 14:2:0 15:1:1 2 1 0 0 1 0:1:r6:or@base_0:lossy 1:8:r4:rotr@base_7:bijective 2:14:r2:rotl@base_12:bijective 3:15:r6:xor@base_11:inject 4:22:r2:xor@base_16:inject 5:24:r1:sub@base_20:inject 6:26:r5:add@base_23:inject 7:27:r4:load@base_22:inject 8:28:r7:load@base_26:inject 9:37:r1:add@base_36:inject 10:40:r6:add@base_39:inject 11:42:r1:mad@base_38:inject 12:43:r4:shfl@base_32:inject 13:47:r0:load@base_40:inject 14:56:r0:add@base_48:inject 15:60:r1:mulhi@base_58:lossy +igneum-ca3-v4-uniform/258 b47fe0e9741e2410 0 0:0:0 1:1:0 2:0:0 3:0:0 4:0:0 5:1:1 6:2:0 7:0:0 8:1:1 9:2:1 10:2:1 11:2:3 12:0:0 13:0:0 14:0:0 15:0:0 5 3 0 2 0 0:2:r7:or@base_1:lossy 1:4:r5:shfl@base_0:inject 2:5:r2:load@base_4:inject 3:10:r6:add@base_9:inject 4:13:r3:add@base_11:inject 5:14:r4:add@base_8:inject 6:17:r5:load@base_14:inject 7:19:r6:or@base_15:lossy 8:26:r3:shfl@base_22:inject 9:32:r7:xor@base_29:inject 10:36:r3:xor@base_35:inject 11:39:r0:mul@base_25:lossy 12:42:r6:or@base_37:lossy 13:45:r2:load@base_42:inject 14:48:r7:sub@base_34:inject 15:52:r1:mul@base_51:lossy +igneum-ca3-v4-uniform/259 295f6ff0ebc135a3 0 0:2:3 1:1:1 2:0:0 3:0:0 4:2:0 5:0:0 6:0:0 7:1:0 8:2:1 9:1:0 10:0:0 11:0:0 12:0:0 13:0:0 14:1:1 15:0:0 7 1 0 5 1 0:1:r4:mul@base_0:lossy 1:6:r3:mul@base_4:lossy 2:7:r2:load@base_1:inject 3:13:r4:mul@base_9:lossy 4:16:r1:sub@base_12:inject 5:29:r3:mad@base_21:inject 6:32:r6:add@base_18:inject 7:37:r7:or@base_34:lossy 8:39:r5:load@base_37:inject 9:41:r3:mul@base_36:lossy 10:42:r5:sub@base_40:inject 11:43:r0:load@base_42:inject 12:45:r2:mulhi@base_44:lossy 13:48:r7:mul@base_47:lossy 14:56:r3:shfl@base_54:inject 15:62:r6:load@base_56:inject +igneum-ca3-v4-uniform/260 2ab567b2dc918684 0 0:2:0 1:1:0 2:0:0 3:0:0 4:0:0 5:1:1 6:2:1 7:0:0 8:2:2 9:1:0 10:2:2 11:2:1 12:0:0 13:0:0 14:0:0 15:1:0 3 0 0 2 1 0:1:r3:add@base_0:inject 1:3:r2:load@base_1:inject 2:7:r0:xor@base_5:inject 3:22:r3:rotr@base_19:bijective 4:27:r1:shfl@base_25:inject 5:37:r2:add@base_33:inject 6:43:r0:shfl@base_18:inject 7:44:r1:sub@base_39:inject 8:47:r3:mul@base_26:lossy 9:48:r6:xor@base_46:inject 10:52:r7:mad@base_51:inject 11:55:r0:mulhi@base_53:lossy 12:57:r1:mad@base_56:inject 13:58:r6:mul@base_54:lossy 14:60:r4:add@base_59:inject 15:62:r2:xor@base_61:inject +igneum-ca3-v4-uniform/261 8bf58feb1f4f9657 1 0:2:3 1:0:0 2:1:0 3:1:0 4:0:0 5:1:1 6:1:1 7:1:0 8:1:0 9:1:0 10:2:3 11:1:1 12:1:0 13:2:2 14:2:0 15:0:0 2 0 0 1 1 0:2:r0:mul@base_0:lossy 1:19:r3:add@base_17:inject 2:24:r4:mulhi@base_23:lossy 3:28:r5:xor@base_21:inject 4:29:r0:add@base_5:inject 5:33:r2:add@base_20:inject 6:34:r0:sub@base_32:inject 7:36:r4:rotl@base_27:bijective 8:38:r6:rotl@base_35:bijective 9:41:r5:load@base_33:inject 10:43:r1:load@base_41:inject 11:44:r0:load@base_38:inject 12:50:r4:mad@base_49:inject 13:52:r3:load@base_43:inject 14:61:r0:sub@base_48:inject 15:62:r3:xor@base_60:inject +igneum-ca3-v4-uniform/262 88baf8a3e0844eb5 0 0:0:0 1:0:0 2:0:0 3:2:3 4:2:0 5:1:0 6:2:2 7:0:0 8:2:0 9:2:1 10:2:0 11:0:0 12:0:0 13:2:3 14:2:1 15:1:0 3 0 0 1 2 0:3:r5:rotr@base_0:bijective 1:6:r6:load@base_3:inject 2:10:r7:mulhi@base_4:lossy 3:19:r1:sub@base_12:inject 4:20:r2:add@base_5:inject 5:32:r0:xor@base_26:inject 6:35:r4:xor@base_14:inject 7:36:r6:load@base_32:inject 8:38:r1:mulhi@base_37:lossy 9:39:r5:mad@base_34:inject 10:42:r2:load@base_35:inject 11:44:r1:shfl@base_43:inject 12:56:r6:xor@base_40:inject 13:57:r3:add@base_52:inject 14:59:r0:add@base_55:inject 15:62:r2:mul@base_51:lossy +igneum-ca3-v4-uniform/263 79ec15a0fbefac9a 0 0:0:0 1:2:3 2:2:3 3:0:0 4:2:3 5:1:0 6:1:0 7:0:0 8:1:0 9:1:0 10:1:1 11:1:1 12:1:0 13:0:0 14:2:1 15:1:1 2 1 0 1 0 0:2:r6:shfl@base_1:inject 1:4:r7:add@base_0:inject 2:12:r5:or@base_8:lossy 3:24:r4:add@base_20:inject 4:25:r1:sub@base_21:inject 5:26:r0:xor@base_23:inject 6:31:r2:mul@base_28:lossy 7:38:r7:load@base_31:inject 8:40:r2:mad@base_34:inject 9:42:r4:add@base_36:inject 10:46:r6:rotr@base_35:bijective 11:55:r4:rotr@base_53:bijective 12:57:r2:xor@base_56:inject 13:59:r7:add@base_48:inject 14:60:r1:load@base_59:inject 15:62:r3:load@base_26:inject +igneum-ca3-v4-uniform/264 9dbc3ea015e1c9a2 0 0:1:0 1:2:3 2:0:0 3:1:1 4:1:0 5:2:1 6:1:1 7:0:0 8:2:0 9:1:0 10:0:0 11:0:0 12:2:2 13:2:2 14:1:1 15:2:0 6 1 0 3 2 0:1:r5:xor@base_0:inject 1:3:r4:load@base_1:inject 2:9:r5:mul@base_8:lossy 3:11:r6:load@base_3:inject 4:13:r4:load@base_9:inject 5:14:r3:shfl@base_12:inject 6:18:r3:mulhi@base_15:lossy 7:24:r5:load@base_18:inject 8:29:r7:or@base_26:lossy 9:40:r5:mulhi@base_39:lossy 10:46:r7:mul@base_45:lossy 11:55:r4:mul@base_48:lossy 12:56:r7:load@base_55:inject 13:58:r4:load@base_56:inject 14:59:r0:rotl@base_54:bijective 15:60:r2:mad@base_44:inject +igneum-ca3-v4-uniform/265 ad8546d191f90991 0 0:2:3 1:2:2 2:1:0 3:0:0 4:2:3 5:2:1 6:0:0 7:2:0 8:0:0 9:1:0 10:1:0 11:1:1 12:2:3 13:2:3 14:0:0 15:2:3 0 0 0 0 0 0:1:r3:shfl@base_0:inject 1:3:r2:rotl@base_2:bijective 2:7:r5:rotl@base_4:bijective 3:8:r3:rotr@base_6:bijective 4:10:r0:load@base_3:inject 5:11:r7:add@base_9:inject 6:13:r4:xor@base_12:inject 7:17:r0:shfl@base_15:inject 8:20:r6:load@base_11:inject 9:28:r3:sub@base_27:inject 10:33:r5:add@base_16:inject 11:35:r2:load@base_20:inject 12:37:r6:load@base_35:inject 13:44:r5:xor@base_42:inject 14:50:r7:xor@base_46:inject 15:55:r6:xor@base_54:inject +igneum-ca3-v4-uniform/266 a17562e28afb50dd 0 0:1:1 1:2:0 2:1:1 3:0:0 4:1:1 5:1:0 6:2:1 7:2:1 8:2:1 9:0:0 10:2:0 11:1:0 12:1:1 13:0:0 14:1:1 15:2:1 4 2 0 1 1 0:4:r0:add@base_3:inject 1:9:r2:rotr@base_8:bijective 2:10:r0:shfl@base_5:inject 3:11:r5:xor@base_6:inject 4:18:r3:load@base_4:inject 5:19:r7:or@base_17:lossy 6:22:r1:or@base_16:lossy 7:24:r5:sub@base_23:inject 8:25:r4:load@base_24:inject 9:30:r7:xor@base_27:inject 10:48:r5:sub@base_44:inject 11:49:r1:mad@base_38:inject 12:50:r6:load@base_48:inject 13:57:r1:load@base_50:inject 14:59:r2:mulhi@base_51:lossy 15:62:r5:mul@base_55:lossy +igneum-ca3-v4-uniform/267 8d3ee8475be6ac77 0 0:2:0 1:0:0 2:1:1 3:0:0 4:0:0 5:2:1 6:2:0 7:1:1 8:1:0 9:1:0 10:2:2 11:1:0 12:0:0 13:1:0 14:1:0 15:0:0 1 0 0 1 0 0:5:r6:mad@base_0:inject 1:15:r7:shfl@base_14:inject 2:16:r6:shfl@base_7:inject 3:17:r5:mad@base_11:inject 4:27:r6:xor@base_20:inject 5:35:r1:load@base_17:inject 6:36:r0:load@base_35:inject 7:37:r7:load@base_27:inject 8:38:r2:mul@base_33:lossy 9:39:r1:load@base_38:inject 10:42:r3:mad@base_41:inject 11:47:r4:load@base_42:inject 12:50:r2:load@base_47:inject 13:53:r0:sub@base_51:inject 14:56:r4:sub@base_55:inject 15:61:r0:xor@base_59:inject +igneum-ca3-v4-uniform/268 98024ada71fd1ae0 0 0:2:3 1:2:3 2:2:0 3:2:0 4:2:2 5:0:0 6:0:0 7:1:1 8:2:0 9:2:3 10:0:0 11:0:0 12:2:2 13:0:0 14:2:0 15:0:0 2 0 0 2 0 0:1:r0:mul@base_0:lossy 1:7:r3:rotl@base_6:bijective 2:15:r3:rotr@base_11:bijective 3:19:r5:xor@base_17:inject 4:20:r2:add@base_12:inject 5:23:r0:mad@base_21:inject 6:26:r7:load@base_20:inject 7:27:r6:mad@base_22:inject 8:28:r1:rotr@base_25:bijective 9:31:r5:load@base_23:inject 10:33:r0:load@base_31:inject 11:41:r1:mad@base_39:inject 12:45:r7:rotr@base_35:bijective 13:46:r0:rotl@base_37:bijective 14:52:r3:mul@base_48:lossy 15:54:r5:add@base_51:inject +igneum-ca3-v4-uniform/269 a208cbe6bdb5d947 1 0:1:1 1:0:0 2:0:0 3:0:0 4:2:2 5:0:0 6:2:0 7:1:1 8:0:0 9:2:0 10:0:0 11:1:1 12:0:0 13:2:2 14:1:0 15:2:2 6 2 0 2 2 0:5:r3:add@base_1:inject 1:6:r7:load@base_5:inject 2:7:r2:shfl@base_4:inject 3:11:r4:mulhi@base_8:lossy 4:18:r5:add@base_16:inject 5:22:r1:or@base_14:lossy 6:24:r0:load@base_22:inject 7:25:r3:mul@base_21:lossy 8:30:r7:or@base_15:lossy 9:39:r2:xor@base_28:inject 10:41:r5:mulhi@base_27:lossy 11:43:r0:add@base_42:inject 12:46:r2:mad@base_40:inject 13:47:r0:shfl@base_44:inject 14:53:r5:mul@base_50:lossy 15:55:r6:rotl@base_33:bijective +igneum-ca3-v4-uniform/270 08db95e3fb2da6e0 0 0:2:2 1:0:0 2:2:2 3:1:1 4:1:1 5:1:1 6:0:0 7:2:1 8:1:0 9:1:0 10:2:1 11:0:0 12:0:0 13:2:0 14:2:1 15:0:0 1 1 0 0 0 0:1:r3:add@shadow_252:inject 1:2:r0:load@base_1:inject 2:5:r7:rotl@base_4:bijective 3:9:r2:xor@base_6:inject 4:14:r3:sub@base_12:inject 5:15:r7:xor@base_13:inject 6:16:r4:load@base_14:inject 7:18:r3:load@base_16:inject 8:23:r1:add@base_19:inject 9:28:r5:xor@base_20:inject 10:31:r1:shfl@base_30:inject 11:32:r7:load@base_31:inject 12:33:r5:or@base_29:lossy 13:36:r4:shfl@base_27:inject 14:37:r2:load@base_18:inject 15:40:r0:load@base_33:inject +igneum-ca3-v4-uniform/271 490ebdfa49b39ddc 0 0:0:0 1:1:0 2:2:3 3:2:1 4:1:0 5:2:1 6:0:0 7:1:1 8:1:1 9:2:3 10:2:3 11:1:0 12:0:0 13:0:0 14:2:0 15:0:0 1 0 0 1 0 0:1:r7:shfl@base_0:inject 1:8:r1:add@base_2:inject 2:12:r0:xor@base_11:inject 3:13:r7:rotl@base_10:bijective 4:15:r3:mul@base_5:lossy 5:19:r1:load@base_12:inject 6:41:r7:xor@base_38:inject 7:43:r3:load@base_41:inject 8:44:r4:mad@base_39:inject 9:46:r2:add@base_32:inject 10:48:r1:xor@base_47:inject 11:49:r7:rotr@base_45:bijective 12:50:r2:load@base_48:inject 13:58:r2:shfl@base_56:inject 14:59:r3:load@base_58:inject 15:63:r7:load@base_50:inject +igneum-ca3-v4-uniform/272 adb65f5d209b6cb6 1 0:2:3 1:2:3 2:1:1 3:2:3 4:0:0 5:2:0 6:1:0 7:1:1 8:0:0 9:1:0 10:0:0 11:2:2 12:0:0 13:2:0 14:0:0 15:2:3 2 1 0 1 0 0:3:r2:add@base_0:inject 1:12:r3:rotr@base_10:bijective 2:13:r2:shfl@base_11:inject 3:19:r3:shfl@base_14:inject 4:25:r6:sub@base_22:inject 5:26:r2:load@base_19:inject 6:30:r5:add@base_29:inject 7:34:r0:load@base_30:inject 8:41:r2:shfl@base_32:inject 9:48:r6:shfl@base_47:inject 10:49:r3:or@base_24:lossy 11:51:r4:load@base_48:inject 12:53:r4:add@base_52:inject 13:54:r7:load@base_53:inject 14:57:r1:mul@base_46:lossy 15:62:r5:rotr@base_56:bijective +igneum-ca3-v4-uniform/273 8c8079b0bd6e56b7 0 0:2:3 1:1:1 2:1:1 3:2:2 4:0:0 5:0:0 6:1:0 7:2:1 8:0:0 9:0:0 10:2:3 11:0:0 12:1:0 13:1:1 14:0:0 15:2:0 3 1 0 1 1 0:1:r6:rotl@base_0:bijective 1:4:r0:rotl@base_2:bijective 2:6:r6:sub@base_5:inject 3:14:r1:load@base_4:inject 4:22:r4:xor@base_21:inject 5:24:r1:load@base_22:inject 6:25:r3:or@base_17:lossy 7:27:r7:xor@base_18:inject 8:29:r1:load@base_27:inject 9:31:r5:load@base_29:inject 10:33:r4:load@base_31:inject 11:39:r6:mulhi@base_36:lossy 12:49:r4:sub@base_45:inject 13:50:r7:mad@base_48:inject 14:53:r3:mul@base_47:lossy 15:60:r0:xor@base_56:inject +igneum-ca3-v4-uniform/274 051c0324a930a0ac 0 0:2:1 1:1:1 2:0:0 3:2:0 4:1:1 5:2:0 6:0:0 7:2:0 8:0:0 9:2:0 10:0:0 11:1:1 12:0:0 13:2:0 14:1:1 15:2:0 5 1 0 4 0 0:14:r2:or@base_13:lossy 1:17:r5:shfl@base_10:inject 2:18:r1:mul@base_2:lossy 3:19:r4:add@base_4:inject 4:23:r0:xor@base_20:inject 5:26:r2:shfl@base_24:inject 6:29:r7:xor@base_22:inject 7:31:r0:mul@base_27:lossy 8:33:r7:mad@base_32:inject 9:36:r2:rotl@base_35:bijective 10:37:r5:mul@base_34:lossy 11:47:r5:shfl@base_44:inject 12:49:r6:load@base_47:inject 13:50:r4:rotr@base_28:bijective 14:54:r1:mul@base_43:lossy 15:55:r2:xor@base_53:inject +igneum-ca3-v4-uniform/275 7ace17c37f5fed87 0 0:1:1 1:0:0 2:1:0 3:0:0 4:1:1 5:1:0 6:0:0 7:0:0 8:2:2 9:0:0 10:1:1 11:2:3 12:2:2 13:1:0 14:2:2 15:1:0 2 1 0 1 0 0:4:r1:or@base_3:lossy 1:6:r5:xor@base_5:inject 2:10:r0:add@base_8:inject 3:13:r7:mad@base_0:inject 4:20:r2:shfl@base_18:inject 5:22:r0:shfl@base_21:inject 6:23:r4:load@base_10:inject 7:25:r5:load@base_23:inject 8:33:r1:load@base_25:inject 9:41:r6:sub@base_36:inject 10:43:r2:add@base_32:inject 11:56:r5:xor@base_46:inject 12:57:r3:mul@base_44:lossy 13:60:r7:sub@base_58:inject 14:61:r6:load@base_60:inject 15:62:r2:rotr@base_59:bijective +igneum-ca3-v4-uniform/276 2061a34b9dff0aa3 0 0:0:0 1:2:2 2:0:0 3:0:0 4:1:0 5:1:0 6:1:1 7:1:1 8:0:0 9:2:2 10:1:1 11:2:2 12:0:0 13:1:0 14:0:0 15:0:0 2 0 0 2 0 0:1:r4:mul@base_0:lossy 1:2:r0:load@base_1:inject 2:7:r3:add@base_3:inject 3:8:r4:sub@base_5:inject 4:13:r0:add@base_10:inject 5:15:r4:rotl@base_14:bijective 6:21:r6:add@base_17:inject 7:22:r5:load@base_7:inject 8:23:r0:load@base_15:inject 9:25:r3:load@base_22:inject 10:28:r1:xor@base_24:inject 11:43:r6:load@base_28:inject 12:45:r5:add@base_42:inject 13:51:r7:mul@base_40:lossy 14:57:r1:load@base_51:inject 15:59:r4:mad@base_58:inject +igneum-ca3-v4-uniform/277 f991dbe9190b7592 0 0:1:0 1:1:1 2:2:1 3:2:0 4:0:0 5:1:1 6:0:0 7:0:0 8:0:0 9:1:0 10:2:3 11:1:0 12:1:0 13:1:1 14:0:0 15:0:0 4 0 0 3 1 0:5:r4:mulhi@base_4:lossy 1:8:r2:load@base_5:inject 2:15:r3:mul@base_6:lossy 3:17:r4:sub@base_16:inject 4:21:r2:sub@base_9:inject 5:23:r1:add@base_18:inject 6:24:r3:load@base_21:inject 7:25:r7:mul@base_19:lossy 8:28:r6:mul@base_27:lossy 9:35:r1:load@base_28:inject 10:37:r7:load@base_35:inject 11:43:r6:sub@base_36:inject 12:50:r3:add@base_44:inject 13:59:r4:xor@base_56:inject 14:60:r2:add@base_49:inject 15:63:r5:add@base_52:inject +igneum-ca3-v4-uniform/278 4bc1b9cee1f51520 0 0:2:1 1:0:0 2:0:0 3:2:0 4:0:0 5:2:2 6:2:3 7:2:3 8:2:3 9:2:2 10:1:1 11:0:0 12:0:0 13:0:0 14:1:0 15:2:0 2 1 0 0 1 0:5:r7:rotl@base_2:bijective 1:6:r0:load@base_5:inject 2:9:r5:rotr@base_0:bijective 3:13:r7:shfl@base_10:inject 4:20:r5:shfl@base_12:inject 5:21:r4:xor@base_19:inject 6:30:r6:mad@base_28:inject 7:35:r3:load@base_30:inject 8:39:r0:add@base_26:inject 9:40:r4:add@base_38:inject 10:45:r1:mulhi@base_44:lossy 11:50:r2:or@base_27:lossy 12:53:r3:mad@base_46:inject 13:55:r3:mad@base_54:inject 14:61:r1:rotl@base_56:bijective 15:63:r0:shfl@base_52:inject +igneum-ca3-v4-uniform/279 b7f12d0a96ef788d 0 0:0:0 1:1:0 2:1:0 3:0:0 4:2:1 5:0:0 6:0:0 7:2:3 8:0:0 9:1:1 10:1:1 11:2:2 12:2:3 13:0:0 14:1:1 15:0:0 5 2 0 1 2 0:7:r3:rotl@base_5:bijective 1:9:r1:mulhi@base_6:lossy 2:13:r2:add@base_10:inject 3:16:r4:mad@base_4:inject 4:21:r7:rotl@base_20:bijective 5:27:r0:xor@base_22:inject 6:28:r6:or@base_17:lossy 7:30:r1:or@base_25:lossy 8:32:r5:load@base_30:inject 9:35:r6:rotl@base_34:bijective 10:39:r1:shfl@base_36:inject 11:51:r7:rotr@base_47:bijective 12:53:r5:rotr@base_43:bijective 13:56:r2:mul@base_50:lossy 14:58:r3:shfl@base_48:inject 15:61:r4:mulhi@base_60:lossy +igneum-ca3-v4-uniform/280 aee04c1d4bcb8d39 0 0:2:1 1:2:3 2:2:2 3:0:0 4:2:0 5:2:0 6:0:0 7:2:3 8:2:2 9:0:0 10:0:0 11:1:1 12:2:2 13:1:1 14:2:2 15:1:0 3 1 0 1 1 0:1:r7:xor@base_0:inject 1:9:r5:mulhi@base_5:lossy 2:15:r6:mad@base_4:inject 3:22:r0:mad@base_18:inject 4:29:r7:rotr@base_27:bijective 5:32:r5:rotr@base_31:bijective 6:35:r6:add@base_33:inject 7:36:r1:load@base_32:inject 8:41:r6:shfl@base_40:inject 9:44:r4:rotl@base_38:bijective 10:51:r5:sub@base_49:inject 11:53:r7:or@base_45:lossy 12:54:r2:sub@base_48:inject 13:55:r5:load@base_53:inject 14:56:r3:load@base_54:inject 15:62:r6:mul@base_50:lossy +igneum-ca3-v4-uniform/281 00cd9e659ab43893 0 0:0:0 1:2:0 2:1:1 3:2:0 4:0:0 5:0:0 6:2:2 7:0:0 8:1:0 9:2:3 10:1:1 11:2:0 12:2:1 13:2:0 14:1:1 15:2:2 3 0 0 2 1 0:3:r3:rotl@base_0:bijective 1:4:r1:load@base_3:inject 2:6:r6:add@base_1:inject 3:8:r2:load@base_6:inject 4:9:r5:load@base_8:inject 5:10:r0:load@base_9:inject 6:17:r4:rotl@base_12:bijective 7:19:r3:mul@base_18:lossy 8:32:r7:mad@base_28:inject 9:37:r1:rotl@base_35:bijective 10:48:r4:rotr@base_42:bijective 11:52:r5:mulhi@base_24:lossy 12:53:r0:mad@base_38:inject 13:56:r3:add@base_55:inject 14:58:r7:load@base_56:inject 15:59:r6:mul@base_49:lossy +igneum-ca3-v4-uniform/282 02ce20f1a4b4ab80 0 0:2:3 1:0:0 2:2:1 3:2:2 4:0:0 5:1:1 6:1:1 7:0:0 8:2:0 9:1:0 10:2:2 11:1:0 12:0:0 13:0:0 14:2:3 15:2:2 0 0 0 0 0 0:1:r5:xor@base_0:inject 1:2:r6:load@base_1:inject 2:4:r7:load@base_2:inject 3:10:r1:load@base_4:inject 4:11:r6:load@base_10:inject 5:12:r7:add@base_6:inject 6:14:r7:add@base_13:inject 7:16:r6:load@base_12:inject 8:18:r7:add@base_15:inject 9:21:r5:load@base_16:inject 10:25:r4:mad@base_22:inject 11:27:r3:load@base_25:inject 12:38:r4:add@base_36:inject 13:43:r6:rotr@base_40:bijective 14:57:r4:sub@base_51:inject 15:58:r1:rotl@base_48:bijective +igneum-ca3-v4-uniform/283 6624da4ac48ae016 0 0:1:1 1:1:1 2:1:1 3:2:2 4:0:0 5:0:0 6:0:0 7:1:0 8:0:0 9:0:0 10:1:1 11:2:1 12:0:0 13:2:3 14:0:0 15:0:0 3 1 0 2 0 0:2:r3:mul@base_1:lossy 1:3:r7:rotr@base_0:bijective 2:9:r0:shfl@base_8:inject 3:14:r4:rotr@base_10:bijective 4:16:r1:load@base_2:inject 5:28:r2:add@base_23:inject 6:31:r0:rotr@base_18:bijective 7:34:r3:load@base_31:inject 8:37:r0:mul@base_36:lossy 9:39:r4:rotl@base_27:bijective 10:42:r2:sub@base_38:inject 11:43:r6:or@base_33:lossy 12:45:r2:load@base_43:inject 13:46:r7:load@base_45:inject 14:51:r4:add@base_48:inject 15:60:r2:xor@base_47:inject +igneum-ca3-v4-uniform/284 07a2d2b7d5e244b8 0 0:2:2 1:1:0 2:2:3 3:0:0 4:2:3 5:2:2 6:0:0 7:0:0 8:1:1 9:1:1 10:2:3 11:2:1 12:1:1 13:1:0 14:0:0 15:1:1 4 1 0 0 3 0:3:r0:mad@base_2:inject 1:4:r4:mulhi@base_0:lossy 2:7:r3:rotr@base_1:bijective 3:23:r0:or@base_14:lossy 4:25:r2:mulhi@base_18:lossy 5:28:r4:xor@base_11:inject 6:33:r5:load@base_28:inject 7:35:r3:mulhi@base_31:lossy 8:36:r1:rotl@base_21:bijective 9:38:r6:rotl@base_34:bijective 10:46:r4:load@base_36:inject 11:54:r1:sub@base_53:inject 12:58:r3:shfl@base_51:inject 13:59:r0:rotr@base_52:bijective 14:61:r5:sub@base_45:inject 15:63:r4:rotl@base_48:bijective +igneum-ca3-v4-uniform/285 def258c7abd0160b 0 0:2:3 1:0:0 2:2:3 3:1:1 4:0:0 5:0:0 6:1:1 7:2:0 8:0:0 9:2:1 10:0:0 11:1:1 12:0:0 13:0:0 14:2:0 15:1:1 5 2 1 2 1 0:1:r6:xor@base_0:inject 1:3:r4:or@base_2:lossy-or-chain1 2:4:r5:load@base_3:inject 3:6:r4:sub@base_5:inject 4:19:r1:xor@base_17:inject 5:20:r7:xor@base_18:inject 6:25:r0:add@base_11:inject 7:29:r6:mul@base_27:lossy 8:32:r0:add@base_30:inject 9:33:r2:load@base_20:inject 10:36:r4:mulhi@base_34:lossy 11:38:r6:load@base_32:inject 12:40:r5:load@base_38:inject 13:46:r6:mad@base_45:inject 14:50:r1:mul@base_43:lossy 15:60:r5:or@base_59:lossy +igneum-ca3-v4-uniform/286 0c3e515c6a8f8e54 0 0:2:3 1:2:2 2:2:3 3:2:0 4:0:0 5:0:0 6:1:1 7:1:0 8:1:0 9:2:0 10:1:0 11:2:0 12:0:0 13:1:0 14:1:1 15:0:0 1 0 0 0 1 0:3:r5:shfl@base_0:inject 1:12:r6:mad@base_10:inject 2:13:r3:load@base_12:inject 3:15:r4:sub@base_4:inject 4:22:r0:rotl@base_21:bijective 5:23:r5:load@base_15:inject 6:26:r4:mulhi@base_24:lossy 7:29:r1:mad@base_28:inject 8:39:r3:xor@base_35:inject 9:49:r5:sub@base_47:inject 10:50:r0:shfl@base_38:inject 11:55:r5:sub@base_52:inject 12:56:r4:load@base_55:inject 13:59:r6:xor@base_46:inject 14:60:r7:load@base_56:inject 15:61:r2:sub@base_44:inject +igneum-ca3-v4-uniform/287 2c0e4de058e2ca28 0 0:0:0 1:2:1 2:1:0 3:1:1 4:2:0 5:2:2 6:1:0 7:2:1 8:2:1 9:0:0 10:0:0 11:2:0 12:2:3 13:0:0 14:1:0 15:2:2 2 0 0 1 1 0:8:r3:shfl@base_3:inject 1:14:r1:add@base_4:inject 2:17:r4:mad@base_16:inject 3:21:r6:shfl@base_11:inject 4:22:r2:rotl@base_20:bijective 5:24:r3:load@base_21:inject 6:28:r6:mulhi@base_26:lossy 7:29:r0:load@base_22:inject 8:30:r3:load@base_29:inject 9:32:r1:shfl@base_23:inject 10:36:r3:xor@base_33:inject 11:37:r7:add@base_31:inject 12:42:r7:mul@base_38:lossy 13:43:r1:mad@base_35:inject 14:55:r7:mad@base_44:inject 15:59:r4:load@base_55:inject +igneum-ca3-v4-uniform/288 fbb9b2b7b40fd2c9 1 0:1:0 1:1:0 2:2:1 3:0:0 4:1:0 5:0:0 6:1:0 7:1:1 8:2:3 9:0:0 10:1:1 11:1:0 12:1:0 13:2:3 14:2:1 15:0:0 0 0 0 0 0 0:5:r2:shfl@base_1:inject 1:8:r4:rotr@base_4:bijective 2:10:r7:load@base_5:inject 3:14:r5:sub@base_9:inject 4:16:r3:mad@base_7:inject 5:26:r4:add@base_24:inject 6:27:r2:sub@base_25:inject 7:30:r3:rotr@base_22:bijective 8:35:r7:sub@base_29:inject 9:37:r1:add@base_28:inject 10:45:r6:mad@base_43:inject 11:48:r5:load@base_26:inject 12:50:r0:rotl@base_49:bijective 13:54:r0:rotl@base_53:bijective 14:58:r0:add@base_55:inject 15:59:r1:xor@base_57:inject +igneum-ca3-v4-uniform/289 005911df6386440c 0 0:2:0 1:1:1 2:0:0 3:1:0 4:0:0 5:1:1 6:0:0 7:0:0 8:1:1 9:0:0 10:2:3 11:0:0 12:0:0 13:0:0 14:1:0 15:2:1 7 3 0 2 2 0:7:r1:or@base_4:lossy 1:11:r6:xor@base_0:inject 2:17:r7:or@base_13:lossy 3:18:r5:mul@base_5:lossy 4:24:r0:rotl@base_23:bijective 5:25:r6:load@base_24:inject 6:27:r3:mul@base_26:lossy 7:29:r4:load@base_27:inject 8:32:r7:mulhi@base_28:lossy 9:33:r4:load@base_32:inject 10:39:r1:rotr@base_34:bijective 11:49:r1:or@base_46:lossy 12:52:r3:mulhi@base_47:lossy 13:53:r2:add@base_37:inject 14:55:r1:load@base_53:inject 15:56:r4:load@base_49:inject +igneum-ca3-v4-uniform/290 729ac90db5ec080d 0 0:1:1 1:2:1 2:2:3 3:0:0 4:1:1 5:2:3 6:1:1 7:2:0 8:2:3 9:1:1 10:0:0 11:0:0 12:2:2 13:2:3 14:0:0 15:2:3 3 1 0 1 1 0:2:r1:mulhi@base_1:lossy 1:4:r6:add@base_3:inject 2:5:r4:load@base_4:inject 3:6:r3:load@base_5:inject 4:7:r6:load@base_6:inject 5:8:r4:load@base_7:inject 6:15:r6:rotr@base_14:bijective 7:20:r4:add@base_19:inject 8:23:r2:add@base_21:inject 9:35:r2:rotl@base_28:bijective 10:45:r0:mul@base_32:lossy 11:50:r6:mad@base_46:inject 12:58:r4:or@base_54:lossy 13:60:r1:add@base_59:inject 14:62:r0:load@base_58:inject 15:63:r7:sub@base_57:inject +igneum-ca3-v4-uniform/291 5509cf7e6693448a 0 0:1:0 1:2:3 2:2:0 3:1:0 4:2:1 5:2:1 6:2:1 7:0:0 8:1:1 9:2:2 10:1:0 11:0:0 12:2:3 13:2:3 14:0:0 15:1:0 1 0 0 0 1 0:2:r3:xor@base_0:inject 1:6:r2:mad@base_4:inject 2:7:r7:shfl@base_5:inject 3:10:r6:add@base_3:inject 4:12:r5:load@base_10:inject 5:13:r3:load@base_6:inject 6:15:r2:load@base_12:inject 7:17:r5:load@base_13:inject 8:20:r4:mad@base_18:inject 9:21:r2:mulhi@base_16:lossy 10:22:r0:load@base_15:inject 11:29:r5:load@base_21:inject 12:31:r7:load@base_29:inject 13:46:r4:rotr@base_41:bijective 14:55:r5:xor@base_37:inject 15:58:r4:add@base_54:inject +igneum-ca3-v4-uniform/292 3b1d7a65558e3632 0 0:2:1 1:2:0 2:0:0 3:2:0 4:2:1 5:0:0 6:0:0 7:1:1 8:2:2 9:0:0 10:2:2 11:2:3 12:1:1 13:0:0 14:2:0 15:1:0 4 3 0 0 1 0:1:r7:or@base_0:lossy 1:3:r1:add@base_2:inject 2:7:r7:add@base_6:inject 3:9:r4:load@base_3:inject 4:12:r6:load@base_9:inject 5:15:r4:rotl@base_10:bijective 6:16:r2:or@base_13:lossy 7:17:r0:load@base_15:inject 8:22:r3:load@base_17:inject 9:25:r7:xor@base_23:inject 10:31:r2:xor@base_24:inject 11:41:r4:mulhi@base_37:lossy 12:47:r5:rotr@base_40:bijective 13:48:r1:rotr@base_46:bijective 14:54:r6:or@base_49:lossy 15:55:r5:mad@base_52:inject +igneum-ca3-v4-uniform/293 0461cfe018156415 0 0:1:0 1:0:0 2:0:0 3:0:0 4:1:1 5:1:1 6:2:2 7:1:1 8:2:1 9:2:3 10:2:2 11:0:0 12:1:0 13:0:0 14:2:0 15:2:3 3 1 0 1 1 0:1:r6:or@base_0:lossy 1:2:r0:load@base_1:inject 2:6:r7:xor@base_5:inject 3:7:r4:rotr@base_3:bijective 4:8:r6:load@base_2:inject 5:12:r4:xor@base_11:inject 6:17:r0:load@base_7:inject 7:30:r6:mul@base_29:lossy 8:37:r3:add@base_34:inject 9:46:r1:shfl@base_28:inject 10:49:r2:rotl@base_43:bijective 11:51:r3:xor@base_45:inject 12:52:r6:shfl@base_50:inject 13:54:r5:load@base_51:inject 14:55:r0:mulhi@base_38:lossy 15:61:r7:rotr@base_53:bijective +igneum-ca3-v4-uniform/294 6f90e791463471a5 0 0:2:2 1:2:1 2:2:2 3:1:0 4:0:0 5:0:0 6:0:0 7:1:0 8:1:1 9:2:1 10:0:0 11:1:1 12:1:0 13:0:0 14:0:0 15:2:0 5 1 0 2 2 0:5:r6:or@base_0:lossy 1:8:r7:mad@base_2:inject 2:10:r5:rotl@base_7:bijective 3:12:r1:load@base_10:inject 4:15:r7:mul@base_9:lossy 5:28:r4:rotr@base_25:bijective 6:30:r3:mulhi@base_29:lossy 7:31:r0:mad@base_24:inject 8:33:r5:load@base_30:inject 9:38:r3:xor@base_37:inject 10:42:r7:add@base_26:inject 11:45:r2:mul@base_44:lossy 12:46:r6:xor@base_32:inject 13:48:r1:xor@base_47:inject 14:58:r7:shfl@base_51:inject 15:60:r5:mulhi@base_56:lossy +igneum-ca3-v4-uniform/295 9363e24fd5cc174f 0 0:2:0 1:2:1 2:1:0 3:0:0 4:0:0 5:0:0 6:1:1 7:0:0 8:1:0 9:1:0 10:1:0 11:0:0 12:1:0 13:2:1 14:2:1 15:2:2 3 0 0 2 1 0:7:r7:add@base_2:inject 1:8:r2:mul@base_4:lossy 2:10:r3:load@base_8:inject 3:11:r7:mad@base_9:inject 4:13:r4:rotr@base_12:bijective 5:16:r7:mul@base_15:lossy 6:25:r0:xor@base_21:inject 7:37:r7:mad@base_36:inject 8:42:r4:shfl@base_32:inject 9:43:r5:mulhi@base_38:lossy 10:44:r2:xor@base_23:inject 11:45:r0:load@base_43:inject 12:46:r6:load@base_42:inject 13:56:r3:load@base_37:inject 14:58:r5:sub@base_51:inject 15:62:r7:rotl@base_54:bijective +igneum-ca3-v4-uniform/296 3ad5a750f2b42a5e 0 0:2:3 1:0:0 2:1:0 3:0:0 4:1:1 5:2:1 6:1:1 7:2:0 8:0:0 9:2:0 10:2:1 11:2:1 12:2:1 13:1:0 14:0:0 15:0:0 2 1 0 0 1 0:7:r3:mad@base_5:inject 1:21:r1:xor@base_20:inject 2:22:r3:mad@base_19:inject 3:24:r6:xor@base_0:inject 4:29:r5:sub@base_26:inject 5:31:r3:or@base_27:lossy 6:36:r7:rotr@base_34:bijective 7:40:r6:sub@base_32:inject 8:44:r1:mad@base_43:inject 9:45:r6:mad@base_41:inject 10:46:r4:rotl@base_39:bijective 11:48:r2:add@base_18:inject 12:50:r3:load@base_48:inject 13:51:r1:mulhi@base_49:lossy 14:53:r3:load@base_51:inject 15:59:r0:shfl@base_33:inject +igneum-ca3-v4-uniform/297 f2f9c9ed52219eb5 0 0:2:2 1:1:0 2:2:3 3:1:1 4:2:0 5:0:0 6:1:1 7:1:0 8:0:0 9:0:0 10:0:0 11:0:0 12:0:0 13:1:1 14:2:3 15:1:0 2 1 0 0 1 0:5:r3:mulhi@base_4:lossy 1:22:r1:rotl@base_20:bijective 2:23:r7:load@base_22:inject 3:25:r0:xor@base_24:inject 4:26:r5:rotl@base_21:bijective 5:27:r6:or@base_3:lossy 6:33:r4:rotl@base_32:bijective 7:36:r5:xor@base_30:inject 8:37:r1:add@base_31:inject 9:38:r2:load@base_37:inject 10:39:r7:load@base_25:inject 11:41:r3:load@base_38:inject 12:42:r6:load@base_41:inject 13:44:r4:load@base_42:inject 14:54:r5:xor@base_51:inject 15:55:r3:load@base_54:inject +igneum-ca3-v4-uniform/298 6ad4bc503f78f668 0 0:2:2 1:0:0 2:2:0 3:2:2 4:0:0 5:2:1 6:0:0 7:2:1 8:0:0 9:2:2 10:0:0 11:1:1 12:1:0 13:1:0 14:1:0 15:2:2 4 1 0 1 2 0:2:r3:or@base_0:lossy 1:11:r2:mul@base_3:lossy 2:19:r2:rotr@base_12:bijective 3:21:r4:add@base_10:inject 4:24:r3:rotr@base_18:bijective 5:26:r0:mulhi@base_23:lossy 6:28:r6:load@base_26:inject 7:29:r5:rotl@base_14:bijective 8:32:r2:mad@base_31:inject 9:35:r7:sub@base_30:inject 10:36:r6:load@base_35:inject 11:39:r0:load@base_32:inject 12:46:r7:mulhi@base_44:lossy 13:56:r2:rotl@base_52:bijective 14:58:r5:load@base_46:inject 15:60:r7:mad@base_53:inject +igneum-ca3-v4-uniform/299 5e98b95f99b189de 0 0:1:0 1:2:1 2:2:3 3:2:0 4:0:0 5:0:0 6:0:0 7:1:1 8:1:1 9:0:0 10:1:0 11:0:0 12:0:0 13:0:0 14:1:1 15:2:1 2 0 0 2 0 0:2:r3:shfl@base_1:inject 1:9:r2:mul@base_5:lossy 2:11:r0:load@base_9:inject 3:18:r4:add@base_15:inject 4:19:r7:load@base_2:inject 5:20:r3:load@base_19:inject 6:22:r5:rotr@base_17:bijective 7:23:r1:rotr@base_16:bijective 8:32:r7:mul@base_28:lossy 9:38:r5:shfl@base_33:inject 10:44:r7:rotl@base_42:bijective 11:46:r6:sub@base_31:inject 12:50:r6:mad@base_49:inject 13:51:r1:sub@base_41:inject 14:54:r3:sub@base_48:inject 15:58:r5:xor@base_55:inject +igneum-ca3-v4-uniform/300 71feeb5000833af7 0 0:2:2 1:1:1 2:0:0 3:0:0 4:1:1 5:1:1 6:1:0 7:1:0 8:2:3 9:1:1 10:2:0 11:0:0 12:0:0 13:1:0 14:1:1 15:0:0 1 0 0 0 1 0:5:r1:mad@base_4:inject 1:9:r6:mulhi@base_6:lossy 2:10:r2:sub@base_2:inject 3:14:r2:add@base_11:inject 4:26:r4:rotl@base_24:bijective 5:29:r7:rotr@base_1:bijective 6:30:r1:xor@base_25:inject 7:36:r0:add@base_33:inject 8:40:r3:rotl@base_39:bijective 9:41:r0:load@base_40:inject 10:44:r2:load@base_41:inject 11:50:r6:rotr@base_37:bijective 12:53:r1:xor@base_38:inject 13:55:r7:add@base_45:inject 14:62:r2:load@base_50:inject 15:63:r4:rotr@base_58:bijective +igneum-ca3-v4-uniform/301 5079b8e1427bca9e 0 0:1:0 1:0:0 2:2:3 3:1:0 4:2:0 5:0:0 6:2:2 7:1:1 8:2:3 9:2:1 10:0:0 11:0:0 12:2:0 13:0:0 14:0:0 15:2:0 3 1 0 0 2 0:4:r5:mulhi@base_2:lossy 1:6:r7:load@base_4:inject 2:9:r0:add@base_8:inject 3:16:r3:rotl@base_11:bijective 4:18:r0:add@base_10:inject 5:20:r7:load@base_16:inject 6:21:r4:load@base_20:inject 7:31:r5:add@base_29:inject 8:32:r3:rotl@base_26:bijective 9:37:r2:rotr@base_5:bijective 10:39:r2:or@base_38:lossy 11:42:r7:mulhi@base_40:lossy 12:43:r6:load@base_42:inject 13:44:r0:load@base_39:inject 14:61:r7:xor@base_57:inject 15:62:r4:sub@base_60:inject +igneum-ca3-v4-uniform/302 edcb08f31a9ed935 0 0:1:1 1:2:1 2:0:0 3:2:3 4:0:0 5:0:0 6:0:0 7:2:1 8:1:1 9:1:0 10:1:0 11:2:1 12:0:0 13:0:0 14:2:0 15:1:1 1 0 0 0 1 0:2:r6:mulhi@base_0:lossy 1:3:r7:load@base_2:inject 2:5:r6:load@base_3:inject 3:6:r4:sub@base_4:inject 4:22:r2:xor@base_21:inject 5:24:r4:rotl@base_23:bijective 6:29:r2:mad@base_26:inject 7:38:r5:mad@base_37:inject 8:43:r1:sub@base_42:inject 9:46:r4:add@base_41:inject 10:49:r6:load@base_43:inject 11:50:r5:shfl@base_47:inject 12:55:r0:shfl@base_52:inject 13:60:r3:load@base_55:inject 14:62:r5:add@base_59:inject 15:63:r1:xor@base_51:inject +igneum-ca3-v4-uniform/303 bb4ca16781714df8 1 0:0:0 1:2:1 2:0:0 3:1:1 4:1:1 5:2:3 6:0:0 7:0:0 8:1:0 9:2:3 10:1:0 11:1:0 12:2:3 13:2:3 14:1:0 15:0:0 3 0 0 0 3 0:4:r6:sub@base_0:inject 1:13:r3:mulhi@base_12:lossy 2:20:r2:rotl@base_18:bijective 3:25:r5:rotr@base_21:bijective 4:29:r2:shfl@base_28:inject 5:31:r4:mulhi@base_7:lossy 6:35:r6:sub@base_32:inject 7:36:r5:load@base_35:inject 8:39:r2:load@base_36:inject 9:41:r1:rotr@base_37:bijective 10:45:r3:load@base_39:inject 11:46:r1:load@base_45:inject 12:48:r0:add@base_10:inject 13:51:r3:load@base_48:inject 14:57:r4:mulhi@base_56:lossy 15:62:r0:add@base_54:inject +igneum-ca3-v4-uniform/304 4ab0eec1becf44be 0 0:2:2 1:2:0 2:1:1 3:1:1 4:0:0 5:2:1 6:2:1 7:0:0 8:1:1 9:2:1 10:1:1 11:2:3 12:0:0 13:2:0 14:1:0 15:1:0 2 0 0 1 1 0:4:r6:rotr@base_3:bijective 1:12:r5:rotr@base_9:bijective 2:14:r0:load@base_12:inject 3:20:r5:mul@base_19:lossy 4:22:r6:rotr@base_21:bijective 5:23:r4:load@base_4:inject 6:25:r1:load@base_22:inject 7:26:r7:sub@base_24:inject 8:28:r1:mulhi@base_27:lossy 9:34:r0:load@base_20:inject 10:45:r6:load@base_34:inject 11:48:r2:load@base_45:inject 12:49:r1:mad@base_35:inject 13:53:r6:xor@base_51:inject 14:56:r5:mad@base_52:inject 15:60:r0:shfl@base_59:inject +igneum-ca3-v4-uniform/305 6594e1be88820bba 0 0:2:2 1:2:0 2:0:0 3:1:0 4:2:3 5:0:0 6:2:0 7:0:0 8:0:0 9:2:3 10:1:0 11:2:0 12:0:0 13:0:0 14:0:0 15:0:0 3 1 0 1 1 0:2:r3:mulhi@base_1:lossy 1:4:r7:load@base_2:inject 2:11:r5:xor@base_8:inject 3:13:r3:xor@base_7:inject 4:18:r7:mad@base_5:inject 5:23:r1:shfl@base_22:inject 6:30:r5:mad@base_24:inject 7:35:r4:rotl@base_26:bijective 8:36:r7:mul@base_32:lossy 9:45:r2:load@base_36:inject 10:46:r3:load@base_45:inject 11:47:r6:load@base_30:inject 12:53:r5:or@base_50:lossy 13:58:r3:sub@base_52:inject 14:61:r4:shfl@base_54:inject 15:62:r1:load@base_58:inject +igneum-ca3-v4-uniform/306 2bf66ce86f98a8cc 0 0:2:3 1:1:1 2:1:0 3:2:2 4:2:0 5:1:1 6:2:0 7:2:3 8:2:3 9:1:0 10:0:0 11:0:0 12:0:0 13:2:3 14:2:2 15:1:1 2 0 0 1 1 0:1:r1:shfl@shadow_248:inject 1:8:r0:add@base_6:inject 2:10:r3:load@base_8:inject 3:14:r0:load@base_10:inject 4:17:r7:load@base_14:inject 5:20:r6:mul@base_12:lossy 6:27:r5:mulhi@base_22:lossy 7:28:r2:load@base_27:inject 8:33:r2:shfl@base_29:inject 9:37:r1:load@base_33:inject 10:46:r4:add@base_41:inject 11:47:r7:load@base_37:inject 12:48:r5:load@base_47:inject 13:50:r0:add@base_36:inject 14:51:r1:load@base_46:inject 15:56:r5:load@base_51:inject +igneum-ca3-v4-uniform/307 e2068bb3c4ded65c 0 0:0:0 1:2:3 2:2:2 3:0:0 4:2:1 5:2:3 6:0:0 7:2:0 8:2:1 9:1:0 10:1:0 11:1:1 12:1:0 13:0:0 14:0:0 15:1:1 1 0 0 1 0 0:2:r6:add@base_0:inject 1:3:r0:load@base_2:inject 2:14:r7:rotl@base_12:bijective 3:15:r6:add@base_9:inject 4:16:r5:load@base_15:inject 5:21:r0:xor@base_17:inject 6:25:r3:mad@base_24:inject 7:26:r4:mad@base_6:inject 8:32:r5:rotr@base_23:bijective 9:35:r6:load@base_25:inject 10:43:r1:mul@base_40:lossy 11:44:r3:load@base_35:inject 12:46:r2:shfl@base_31:inject 13:47:r6:load@base_44:inject 14:48:r7:mad@base_39:inject 15:56:r4:load@base_47:inject +igneum-ca3-v4-uniform/308 8a079a255a5cefd9 1 0:0:0 1:2:3 2:0:0 3:2:0 4:2:1 5:2:3 6:1:0 7:0:0 8:1:1 9:0:0 10:1:1 11:1:0 12:2:2 13:2:2 14:0:0 15:2:1 2 1 0 0 1 0:3:r1:xor@base_1:inject 1:7:r3:or@base_6:lossy 2:15:r6:sub@base_10:inject 3:22:r1:load@base_15:inject 4:23:r0:load@base_22:inject 5:24:r3:add@base_17:inject 6:27:r4:add@base_21:inject 7:28:r7:load@base_23:inject 8:29:r6:load@base_27:inject 9:40:r1:xor@base_39:inject 10:43:r5:shfl@base_31:inject 11:49:r6:load@base_43:inject 12:51:r2:add@base_46:inject 13:52:r5:load@base_49:inject 14:59:r6:mulhi@base_53:lossy 15:61:r1:mad@base_56:inject +igneum-ca3-v4-uniform/309 9ca29d6d026b63cf 0 0:1:0 1:2:0 2:0:0 3:0:0 4:2:2 5:2:1 6:1:0 7:1:0 8:1:0 9:1:0 10:2:0 11:2:1 12:0:0 13:2:3 14:0:0 15:1:0 5 3 0 2 0 0:3:r5:mad@base_2:inject 1:4:r7:load@base_3:inject 2:5:r2:sub@base_1:inject 3:9:r2:shfl@base_7:inject 4:11:r0:rotl@base_6:bijective 5:16:r1:shfl@base_8:inject 6:22:r3:or@base_20:lossy 7:31:r4:rotr@base_28:bijective 8:33:r2:or@base_18:lossy 9:40:r1:xor@base_37:inject 10:41:r4:mad@base_38:inject 11:48:r5:mul@base_47:lossy 12:50:r4:mul@base_43:lossy 13:55:r0:or@base_52:lossy 14:62:r4:rotl@base_61:bijective 15:63:r7:add@base_57:inject +igneum-ca3-v4-uniform/310 f48b7a41f0125d7d 0 0:1:1 1:0:0 2:0:0 3:0:0 4:1:1 5:2:2 6:1:0 7:2:1 8:1:1 9:1:1 10:0:0 11:0:0 12:1:0 13:0:0 14:0:0 15:0:0 2 0 0 1 1 0:5:r7:rotl@base_4:bijective 1:8:r4:mad@base_7:inject 2:9:r6:xor@base_3:inject 3:13:r1:mul@base_10:lossy 4:14:r7:mad@base_12:inject 5:17:r7:shfl@base_15:inject 6:20:r3:load@base_8:inject 7:26:r0:add@base_23:inject 8:28:r7:load@base_26:inject 9:29:r4:load@base_13:inject 10:41:r1:shfl@base_34:inject 11:45:r3:sub@base_39:inject 12:52:r2:load@base_45:inject 13:53:r7:mulhi@base_50:lossy 14:59:r3:load@base_52:inject 15:61:r6:mad@base_49:inject +igneum-ca3-v4-uniform/311 1348870a7a93150e 0 0:2:0 1:1:1 2:2:1 3:2:2 4:0:0 5:0:0 6:2:0 7:0:0 8:1:0 9:1:0 10:1:1 11:2:1 12:0:0 13:0:0 14:0:0 15:1:0 5 4 0 1 0 0:1:r2:or@base_0:lossy 1:6:r7:xor@base_3:inject 2:7:r0:mad@base_4:inject 3:15:r7:xor@base_14:inject 4:20:r5:load@base_6:inject 5:23:r2:rotl@base_19:bijective 6:26:r1:xor@base_24:inject 7:30:r2:mul@base_28:lossy 8:36:r0:or@base_35:lossy 9:38:r6:add@base_32:inject 10:39:r4:load@base_30:inject 11:42:r7:add@base_40:inject 12:43:r5:or@base_34:lossy 13:50:r2:or@base_49:lossy 14:54:r6:load@base_43:inject 15:61:r2:rotl@base_55:bijective +igneum-ca3-v4-uniform/312 d3fa4af831fcf901 0 0:1:1 1:0:0 2:1:0 3:1:0 4:0:0 5:1:0 6:0:0 7:0:0 8:2:2 9:0:0 10:0:0 11:1:0 12:0:0 13:2:3 14:2:0 15:1:0 4 1 1 2 1 0:4:r5:or@base_3:lossy-or-chain1 1:5:r0:sub@base_2:inject 2:8:r4:load@base_5:inject 3:9:r1:load@base_8:inject 4:13:r0:xor@base_6:inject 5:16:r1:mul@base_15:lossy 6:24:r5:mulhi@base_23:lossy 7:30:r3:load@base_24:inject 8:33:r4:mul@base_28:lossy 9:37:r6:mad@base_31:inject 10:42:r2:load@base_33:inject 11:45:r6:rotl@base_44:bijective 12:48:r5:shfl@base_46:inject 13:49:r0:add@base_25:inject 14:50:r1:shfl@base_43:inject 15:63:r2:load@base_49:inject +igneum-ca3-v4-uniform/313 21a032846fb2a9c8 0 0:1:0 1:0:0 2:1:0 3:1:0 4:0:0 5:0:0 6:0:0 7:0:0 8:2:3 9:1:1 10:0:0 11:2:2 12:0:0 13:1:1 14:0:0 15:1:0 4 1 0 2 1 0:1:r1:or@shadow_251:lossy 1:7:r2:rotr@base_2:bijective 2:9:r7:load@base_7:inject 3:11:r4:mulhi@base_5:lossy 4:16:r2:rotl@base_14:bijective 5:18:r6:mul@base_13:lossy 6:21:r3:mul@base_19:lossy 7:25:r0:add@base_24:inject 8:28:r7:xor@base_22:inject 9:30:r5:add@base_23:inject 10:35:r7:load@base_30:inject 11:37:r0:mad@base_26:inject 12:46:r6:load@base_35:inject 13:51:r2:sub@base_48:inject 14:57:r0:sub@base_54:inject 15:61:r5:shfl@base_55:inject +igneum-ca3-v4-uniform/314 0f982258993ccd9c 0 0:1:1 1:0:0 2:2:0 3:0:0 4:2:3 5:0:0 6:0:0 7:2:1 8:2:0 9:1:0 10:2:2 11:1:0 12:2:0 13:0:0 14:0:0 15:2:2 2 0 0 2 0 0:9:r6:sub@base_4:inject 1:14:r2:mad@base_13:inject 2:15:r4:sub@base_10:inject 3:26:r5:mul@base_21:lossy 4:31:r0:load@base_26:inject 5:32:r6:add@base_17:inject 6:33:r3:mad@base_27:inject 7:39:r7:rotr@base_28:bijective 8:42:r5:add@base_37:inject 9:48:r6:add@base_36:inject 10:49:r2:load@base_39:inject 11:50:r5:mul@base_43:lossy 12:51:r1:load@base_48:inject 13:55:r5:xor@base_54:inject 14:60:r2:add@base_52:inject 15:63:r0:add@base_59:inject +igneum-ca3-v4-uniform/315 5753f4a4e34ea3f5 0 0:0:0 1:1:1 2:1:0 3:0:0 4:0:0 5:2:1 6:2:1 7:0:0 8:1:0 9:0:0 10:0:0 11:0:0 12:1:0 13:0:0 14:1:1 15:0:0 3 0 0 2 1 0:7:r5:mulhi@base_1:lossy 1:8:r6:add@base_6:inject 2:19:r6:add@base_16:inject 3:20:r3:load@base_19:inject 4:23:r4:load@base_20:inject 5:26:r7:shfl@base_18:inject 6:36:r0:xor@base_33:inject 7:38:r7:mul@base_28:lossy 8:40:r3:xor@base_29:inject 9:42:r5:mul@base_35:lossy 10:45:r2:load@base_38:inject 11:49:r2:add@base_48:inject 12:50:r7:load@base_49:inject 13:51:r5:load@base_50:inject 14:53:r4:xor@base_44:inject 15:62:r3:rotl@base_58:bijective +igneum-ca3-v4-uniform/316 54f6400db0692bf7 0 0:2:3 1:1:1 2:1:1 3:1:1 4:1:0 5:2:1 6:2:3 7:1:0 8:1:1 9:2:1 10:2:3 11:1:1 12:1:0 13:1:0 14:2:1 15:0:0 3 1 0 0 2 0:3:r1:mulhi@base_0:lossy 1:5:r7:mulhi@base_4:lossy 2:6:r0:load@base_5:inject 3:16:r1:add@base_14:inject 4:28:r3:rotr@base_24:bijective 5:29:r6:rotr@base_26:bijective 6:31:r0:shfl@base_22:inject 7:35:r5:mad@base_34:inject 8:37:r7:xor@base_10:inject 9:40:r2:add@base_36:inject 10:44:r6:rotl@base_41:bijective 11:49:r4:rotl@base_47:bijective 12:52:r0:sub@base_46:inject 13:60:r3:xor@base_59:inject 14:61:r7:or@base_50:lossy 15:62:r5:add@base_54:inject +igneum-ca3-v4-uniform/317 f5ee5b98fa28833a 0 0:2:1 1:1:1 2:0:0 3:0:0 4:1:1 5:2:0 6:0:0 7:1:1 8:1:1 9:2:1 10:1:1 11:2:1 12:2:3 13:0:0 14:0:0 15:2:0 6 2 0 2 2 0:3:r6:mulhi@base_2:lossy 1:5:r5:add@base_0:inject 2:13:r5:add@base_11:inject 3:14:r1:rotr@base_9:bijective 4:16:r0:load@base_14:inject 5:19:r3:rotr@base_17:bijective 6:21:r7:xor@base_18:inject 7:26:r7:sub@base_25:inject 8:32:r0:add@base_31:inject 9:33:r5:or@base_27:lossy 10:36:r5:mul@base_35:lossy 11:40:r0:mulhi@base_38:lossy 12:42:r4:or@base_30:lossy 13:43:r3:load@base_32:inject 14:53:r0:mul@base_45:lossy 15:58:r5:rotr@base_56:bijective +igneum-ca3-v4-uniform/318 497029da467aa690 0 0:0:0 1:0:0 2:2:1 3:0:0 4:0:0 5:0:0 6:2:3 7:0:0 8:2:2 9:1:0 10:1:0 11:0:0 12:1:1 13:2:1 14:2:3 15:2:3 5 3 0 2 0 0:2:r3:shfl@base_1:inject 1:4:r7:xor@base_3:inject 2:17:r2:or@base_8:lossy 3:20:r7:xor@base_9:inject 4:28:r4:sub@base_26:inject 5:31:r5:or@base_13:lossy 6:36:r3:shfl@base_35:inject 7:42:r3:sub@base_41:inject 8:43:r7:mul@base_37:lossy 9:46:r6:add@base_29:inject 10:47:r0:add@base_40:inject 11:49:r2:load@base_31:inject 12:55:r0:or@base_54:lossy 13:60:r1:load@base_47:inject 14:62:r6:load@base_55:inject 15:63:r0:mul@base_58:lossy +igneum-ca3-v4-uniform/319 a719e556ea4dced2 0 0:1:1 1:2:1 2:2:0 3:2:3 4:1:1 5:0:0 6:0:0 7:2:2 8:2:0 9:0:0 10:0:0 11:1:0 12:0:0 13:2:0 14:1:0 15:0:0 1 1 0 0 0 0:1:r2:shfl@base_0:inject 1:6:r3:shfl@base_4:inject 2:10:r2:or@base_5:lossy 3:17:r3:mad@base_16:inject 4:22:r1:add@base_14:inject 5:28:r2:xor@base_27:inject 6:34:r7:load@base_17:inject 7:35:r1:xor@base_33:inject 8:37:r5:add@base_21:inject 9:40:r3:load@base_28:inject 10:41:r1:load@base_37:inject 11:47:r3:mad@base_45:inject 12:48:r1:shfl@base_42:inject 13:53:r6:add@base_49:inject 14:62:r7:load@base_48:inject 15:63:r2:mad@base_59:inject +igneum-ca3-v4-uniform/320 c0d1d2d3fbfd6770 0 0:1:0 1:1:1 2:2:1 3:1:1 4:1:0 5:2:0 6:2:3 7:1:0 8:2:2 9:1:1 10:0:0 11:0:0 12:0:0 13:1:0 14:0:0 15:1:1 4 2 0 1 1 0:2:r2:mad@base_0:inject 1:3:r7:or@base_1:lossy 2:8:r0:xor@base_4:inject 3:15:r4:or@base_10:lossy 4:23:r7:add@base_22:inject 5:24:r6:shfl@base_17:inject 6:29:r0:sub@base_20:inject 7:32:r4:xor@base_28:inject 8:35:r6:add@base_33:inject 9:40:r7:mulhi@base_31:lossy 10:41:r0:mul@base_39:lossy 11:46:r4:add@base_44:inject 12:47:r7:add@base_45:inject 13:49:r3:sub@base_48:inject 14:51:r4:rotr@base_50:bijective 15:55:r0:load@base_46:inject +igneum-ca3-v4-uniform/321 d2c1b1145d025477 0 0:2:1 1:0:0 2:1:1 3:1:1 4:1:1 5:2:2 6:2:2 7:2:2 8:1:0 9:0:0 10:0:0 11:1:1 12:2:3 13:0:0 14:2:0 15:0:0 4 0 0 4 0 0:8:r2:add@base_1:inject 1:9:r6:mul@base_4:lossy 2:14:r3:load@base_9:inject 3:18:r2:rotl@base_16:bijective 4:24:r6:rotr@base_19:bijective 5:27:r7:mul@base_10:lossy 6:29:r5:rotl@base_28:bijective 7:30:r1:mul@base_23:lossy 8:34:r2:add@base_33:inject 9:35:r5:load@base_34:inject 10:39:r4:sub@base_17:inject 11:48:r3:rotr@base_47:bijective 12:55:r2:shfl@base_45:inject 13:58:r5:rotl@base_57:bijective 14:59:r4:load@base_55:inject 15:63:r6:mul@base_54:lossy +igneum-ca3-v4-uniform/322 ffda3264e4857bad 0 0:2:1 1:1:0 2:2:2 3:0:0 4:1:0 5:2:2 6:0:0 7:0:0 8:0:0 9:2:2 10:0:0 11:1:0 12:0:0 13:2:0 14:0:0 15:0:0 4 3 0 1 0 0:1:r4:or@base_0:lossy 1:6:r6:mad@base_3:inject 2:17:r7:add@base_14:inject 3:20:r3:or@base_11:lossy 4:21:r5:shfl@base_18:inject 5:22:r2:add@base_13:inject 6:23:r6:sub@base_16:inject 7:32:r6:or@base_28:lossy 8:37:r1:xor@base_33:inject 9:42:r4:xor@base_34:inject 10:44:r3:mad@base_41:inject 11:45:r5:add@base_40:inject 12:51:r4:sub@base_50:inject 13:57:r6:mul@base_55:lossy 14:59:r3:rotr@base_58:bijective 15:63:r2:load@base_57:inject +igneum-ca3-v4-uniform/323 22fa648c0e950136 1 0:2:0 1:2:3 2:1:0 3:0:0 4:2:1 5:0:0 6:2:3 7:2:2 8:1:0 9:1:0 10:1:1 11:0:0 12:2:3 13:1:0 14:1:0 15:0:0 3 0 0 3 0 0:7:r2:shfl@base_3:inject 1:8:r1:mad@base_4:inject 2:16:r3:rotr@base_14:bijective 3:18:r7:mul@base_1:lossy 4:21:r6:rotl@base_13:bijective 5:22:r5:add@base_9:inject 6:23:r0:load@base_16:inject 7:28:r1:sub@base_26:inject 8:30:r4:sub@base_0:inject 9:33:r0:mad@base_29:inject 10:38:r6:load@base_33:inject 11:40:r5:mul@base_32:lossy 12:48:r5:xor@base_47:inject 13:53:r2:mul@base_49:lossy 14:54:r4:load@base_53:inject 15:62:r6:rotl@base_61:bijective +igneum-ca3-v4-uniform/324 ca425e13a6c3f966 0 0:2:2 1:1:1 2:0:0 3:0:0 4:1:0 5:0:0 6:0:0 7:0:0 8:1:1 9:2:2 10:2:0 11:0:0 12:1:0 13:1:1 14:1:1 15:0:0 5 0 0 2 3 0:2:r6:xor@base_1:inject 1:8:r5:shfl@base_3:inject 2:11:r2:load@base_8:inject 3:15:r6:shfl@base_10:inject 4:23:r1:mulhi@base_19:lossy 5:25:r6:mulhi@base_21:lossy 6:26:r5:xor@base_20:inject 7:30:r7:rotl@base_12:bijective 8:32:r1:mul@base_29:lossy 9:37:r1:add@base_33:inject 10:40:r2:load@base_30:inject 11:45:r6:mul@base_34:lossy 12:48:r5:sub@base_41:inject 13:49:r4:rotr@base_36:bijective 14:51:r2:mulhi@base_46:lossy 15:57:r3:rotr@base_38:bijective +igneum-ca3-v4-uniform/325 bad8a5a33bd373e8 0 0:0:0 1:0:0 2:0:0 3:1:1 4:2:2 5:0:0 6:1:0 7:0:0 8:1:1 9:2:3 10:1:1 11:1:0 12:1:1 13:0:0 14:1:0 15:1:1 0 0 0 0 0 0:4:r6:xor@base_3:inject 1:13:r2:rotl@base_10:bijective 2:16:r6:xor@base_7:inject 3:19:r0:add@base_17:inject 4:23:r1:rotl@base_18:bijective 5:27:r2:mad@base_15:inject 6:28:r4:shfl@base_22:inject 7:30:r6:shfl@base_26:inject 8:40:r0:sub@base_35:inject 9:46:r5:load@base_28:inject 10:47:r7:rotl@base_38:bijective 11:51:r4:load@base_46:inject 12:52:r0:load@base_51:inject 13:53:r6:add@base_39:inject 14:54:r3:load@base_53:inject 15:61:r2:rotl@base_58:bijective +igneum-ca3-v4-uniform/326 893cd1e47cd285cd 0 0:2:2 1:1:0 2:2:1 3:0:0 4:1:1 5:2:0 6:0:0 7:1:0 8:1:1 9:1:0 10:1:1 11:0:0 12:2:3 13:1:1 14:2:3 15:0:0 1 0 0 1 0 0:3:r7:mul@base_0:lossy 1:5:r1:load@base_3:inject 2:8:r5:rotr@base_4:bijective 3:18:r2:sub@base_14:inject 4:24:r4:sub@base_15:inject 5:25:r7:sub@base_23:inject 6:27:r5:load@base_18:inject 7:30:r1:rotr@base_20:bijective 8:32:r7:shfl@base_29:inject 9:36:r0:shfl@base_33:inject 10:37:r3:load@base_36:inject 11:48:r2:add@base_40:inject 12:55:r4:sub@base_41:inject 13:56:r0:rotr@base_50:bijective 14:58:r6:load@base_27:inject 15:60:r3:load@base_58:inject +igneum-ca3-v4-uniform/327 a398db70dd63fb70 1 0:0:0 1:2:1 2:1:1 3:2:1 4:1:1 5:2:2 6:1:0 7:1:1 8:0:0 9:1:1 10:2:3 11:2:1 12:1:0 13:2:0 14:2:0 15:2:1 3 0 0 1 2 0:9:r1:sub@base_6:inject 1:10:r3:mulhi@base_3:lossy 2:11:r5:add@base_7:inject 3:13:r7:rotr@base_12:bijective 4:14:r6:load@base_13:inject 5:15:r0:load@base_9:inject 6:19:r1:mulhi@base_18:lossy 7:21:r3:load@base_15:inject 8:23:r1:load@base_21:inject 9:31:r6:mul@base_29:lossy 10:34:r6:rotl@base_33:bijective 11:39:r1:xor@base_37:inject 12:41:r0:load@base_34:inject 13:46:r6:rotl@base_44:bijective 14:53:r6:rotl@base_49:bijective 15:58:r2:load@base_46:inject +igneum-ca3-v4-uniform/328 14625c7bbb6f351d 0 0:1:0 1:2:3 2:1:1 3:1:0 4:1:1 5:1:1 6:1:1 7:1:1 8:1:1 9:1:0 10:2:1 11:1:1 12:2:2 13:0:0 14:2:2 15:1:1 3 1 1 1 1 0:9:r2:mad@base_8:inject 1:12:r2:mad@base_11:inject 2:21:r3:or@base_14:lossy-or-chain1 3:22:r2:mul@base_16:lossy 4:24:r1:rotl@base_0:bijective 5:28:r6:mulhi@base_10:lossy 6:29:r4:add@base_20:inject 7:30:r2:load@base_28:inject 8:36:r0:add@base_32:inject 9:37:r3:rotl@base_33:bijective 10:42:r7:rotl@base_39:bijective 11:47:r1:add@base_41:inject 12:48:r2:shfl@base_43:inject 13:51:r6:sub@base_45:inject 14:57:r7:sub@base_55:inject 15:63:r1:rotr@base_61:bijective +igneum-ca3-v4-uniform/329 3264a8436a359649 0 0:1:1 1:0:0 2:2:3 3:2:0 4:2:3 5:2:1 6:2:0 7:0:0 8:2:0 9:0:0 10:2:1 11:2:1 12:2:2 13:0:0 14:2:0 15:1:0 3 1 0 2 0 0:1:r3:mul@base_0:lossy 1:8:r5:xor@base_5:inject 2:15:r0:sub@base_2:inject 3:19:r3:rotr@base_18:bijective 4:20:r2:load@base_19:inject 5:23:r5:xor@base_14:inject 6:28:r4:xor@base_26:inject 7:34:r0:add@base_31:inject 8:37:r2:or@base_33:lossy 9:38:r5:xor@base_36:inject 10:40:r6:add@base_30:inject 11:44:r0:load@base_40:inject 12:50:r3:xor@base_45:inject 13:54:r3:xor@base_53:inject 14:55:r4:mad@base_42:inject 15:63:r1:mul@base_62:lossy +igneum-ca3-v4-uniform/330 d617d5b5d724ce89 1 0:1:1 1:1:0 2:0:0 3:2:1 4:2:1 5:0:0 6:2:3 7:1:1 8:1:0 9:1:1 10:1:1 11:2:0 12:0:0 13:0:0 14:1:0 15:1:0 4 0 0 2 2 0:4:r4:mulhi@base_3:lossy 1:9:r3:xor@base_2:inject 2:10:r5:add@base_5:inject 3:15:r5:mul@base_14:lossy 4:17:r0:rotr@base_12:bijective 5:19:r7:load@base_15:inject 6:21:r5:rotr@base_18:bijective 7:25:r1:mad@base_6:inject 8:27:r4:load@base_25:inject 9:30:r6:sub@base_29:inject 10:37:r3:shfl@base_35:inject 11:38:r0:load@base_37:inject 12:39:r6:xor@base_32:inject 13:52:r2:mul@base_47:lossy 14:57:r3:sub@base_56:inject 15:60:r4:mulhi@base_46:lossy +igneum-ca3-v4-uniform/331 6c274ef931417d8d 0 0:1:0 1:2:3 2:1:0 3:0:0 4:1:1 5:0:0 6:2:1 7:0:0 8:2:0 9:2:0 10:2:3 11:0:0 12:0:0 13:1:0 14:0:0 15:0:0 3 0 0 2 1 0:3:r5:add@base_0:inject 1:4:r4:rotr@base_1:bijective 2:5:r2:mad@base_2:inject 3:12:r0:mulhi@base_8:lossy 4:13:r5:load@base_4:inject 5:19:r1:shfl@base_14:inject 6:20:r2:load@base_19:inject 7:29:r5:mul@base_26:lossy 8:32:r3:rotl@base_18:bijective 9:33:r5:load@base_32:inject 10:45:r6:add@base_38:inject 11:49:r2:mul@base_42:lossy 12:52:r1:add@base_51:inject 13:54:r3:load@base_52:inject 14:60:r2:load@base_54:inject 15:61:r4:rotr@base_48:bijective +igneum-ca3-v4-uniform/332 a2649bbefa10639d 0 0:0:0 1:1:0 2:0:0 3:2:3 4:2:1 5:1:1 6:1:1 7:1:1 8:2:0 9:2:1 10:0:0 11:0:0 12:2:3 13:0:0 14:2:0 15:0:0 3 0 0 2 1 0:7:r5:mulhi@base_5:lossy 1:9:r1:rotr@base_2:bijective 2:15:r0:shfl@base_1:inject 3:20:r2:mad@base_3:inject 4:22:r3:mul@base_17:lossy 5:30:r1:shfl@base_26:inject 6:32:r5:mad@base_27:inject 7:33:r6:shfl@base_31:inject 8:34:r4:xor@base_29:inject 9:37:r2:load@base_34:inject 10:41:r1:add@base_40:inject 11:42:r6:load@base_41:inject 12:46:r5:mul@base_43:lossy 13:47:r0:rotl@base_45:bijective 14:51:r1:load@base_42:inject 15:60:r4:sub@base_54:inject +igneum-ca3-v4-uniform/333 812cf3484addadcb 0 0:0:0 1:2:3 2:2:2 3:0:0 4:1:1 5:0:0 6:1:0 7:0:0 8:0:0 9:0:0 10:1:0 11:0:0 12:2:3 13:1:1 14:2:2 15:0:0 3 0 0 2 1 0:3:r1:sub@base_0:inject 1:10:r2:sub@base_6:inject 2:13:r3:rotl@base_9:bijective 3:14:r1:load@base_13:inject 4:17:r0:mul@base_16:lossy 5:18:r4:load@base_14:inject 6:20:r5:load@base_18:inject 7:25:r6:xor@base_24:inject 8:30:r0:shfl@base_26:inject 9:39:r1:mad@base_36:inject 10:41:r0:mul@base_37:lossy 11:49:r0:mad@base_46:inject 12:51:r7:mulhi@base_48:lossy 13:52:r2:rotl@base_42:bijective 14:53:r6:load@base_51:inject 15:56:r4:load@base_52:inject +igneum-ca3-v4-uniform/334 87d7143d5719b9d4 0 0:0:0 1:1:0 2:0:0 3:1:0 4:0:0 5:1:0 6:0:0 7:2:1 8:1:1 9:1:0 10:1:0 11:1:0 12:0:0 13:2:3 14:1:0 15:2:3 4 0 0 1 3 0:1:r1:xor@base_0:inject 1:11:r6:shfl@base_8:inject 2:20:r2:mulhi@base_18:lossy 3:23:r5:mulhi@base_15:lossy 4:24:r0:load@base_23:inject 5:25:r5:load@base_24:inject 6:26:r4:shfl@base_6:inject 7:28:r5:mul@base_27:lossy 8:32:r2:mad@base_29:inject 9:36:r4:mad@base_34:inject 10:42:r1:shfl@base_41:inject 11:47:r2:sub@base_44:inject 12:52:r0:mulhi@base_37:lossy 13:55:r3:load@base_47:inject 14:57:r4:add@base_45:inject 15:61:r5:xor@base_59:inject +igneum-ca3-v4-uniform/335 1ae378b226ef3e2e 0 0:0:0 1:0:0 2:0:0 3:2:2 4:0:0 5:2:3 6:1:1 7:0:0 8:2:2 9:1:0 10:2:0 11:2:0 12:0:0 13:2:2 14:0:0 15:0:0 2 1 0 1 0 0:6:r3:mul@base_4:lossy 1:8:r7:or@base_1:lossy 2:9:r6:shfl@base_2:inject 3:10:r2:load@base_8:inject 4:11:r5:load@base_10:inject 5:14:r4:load@base_6:inject 6:19:r7:load@base_9:inject 7:30:r6:mad@base_28:inject 8:33:r0:load@base_30:inject 9:34:r1:load@base_33:inject 10:40:r0:load@base_34:inject 11:41:r5:mad@base_39:inject 12:42:r7:xor@base_32:inject 13:53:r5:shfl@base_50:inject 14:57:r0:rotl@base_51:bijective 15:60:r3:mad@base_38:inject +igneum-ca3-v4-uniform/336 d9be8a06f314023a 0 0:1:1 1:1:0 2:2:1 3:0:0 4:2:3 5:0:0 6:1:1 7:0:0 8:1:0 9:2:3 10:1:0 11:0:0 12:0:0 13:2:0 14:2:1 15:0:0 1 0 0 1 0 0:9:r2:xor@base_8:inject 1:11:r5:mad@base_6:inject 2:12:r3:load@base_11:inject 3:13:r0:rotl@base_5:bijective 4:16:r4:add@base_7:inject 5:17:r3:load@base_16:inject 6:22:r1:shfl@base_21:inject 7:23:r2:mul@base_20:lossy 8:35:r4:xor@base_29:inject 9:37:r7:rotl@base_24:bijective 10:40:r0:add@base_33:inject 11:46:r7:shfl@base_38:inject 12:48:r6:rotl@base_45:bijective 13:49:r5:add@base_47:inject 14:50:r1:mad@base_43:inject 15:58:r3:load@base_50:inject +igneum-ca3-v4-uniform/337 76a7594d8b08142a 0 0:2:0 1:1:1 2:0:0 3:1:0 4:2:1 5:0:0 6:1:0 7:2:2 8:0:0 9:2:1 10:2:2 11:0:0 12:2:3 13:0:0 14:1:1 15:0:0 5 1 0 3 1 0:1:r0:rotl@base_0:bijective 1:4:r3:mul@base_3:lossy 2:6:r1:rotr@base_5:bijective 3:7:r2:load@base_1:inject 4:11:r0:add@base_10:inject 5:13:r7:load@base_11:inject 6:18:r1:shfl@base_15:inject 7:21:r0:mulhi@base_16:lossy 8:22:r1:load@base_21:inject 9:31:r0:mul@base_26:lossy 10:41:r7:rotl@base_33:bijective 11:48:r2:or@base_40:lossy 12:54:r3:mul@base_52:lossy 13:55:r1:rotl@base_51:bijective 14:61:r6:load@base_54:inject 15:63:r3:rotr@base_59:bijective +igneum-ca3-v4-uniform/338 e0e8641d3e46265b 0 0:0:0 1:2:0 2:2:3 3:1:1 4:0:0 5:1:0 6:2:3 7:2:3 8:0:0 9:2:2 10:2:2 11:2:0 12:0:0 13:2:2 14:1:0 15:0:0 5 1 0 1 3 0:4:r5:mulhi@base_3:lossy 1:7:r1:add@base_2:inject 2:8:r7:mul@base_6:lossy 3:11:r5:add@base_10:inject 4:18:r4:add@base_9:inject 5:25:r1:add@base_17:inject 6:27:r4:mulhi@base_24:lossy 7:28:r2:load@base_18:inject 8:29:r7:or@base_12:lossy 9:30:r1:rotl@base_26:bijective 10:31:r4:load@base_30:inject 11:32:r0:mulhi@base_20:lossy 12:37:r1:add@base_35:inject 13:45:r2:shfl@base_39:inject 14:54:r4:add@base_52:inject 15:55:r3:load@base_54:inject +igneum-ca3-v4-uniform/339 646b08183fe232dc 0 0:1:0 1:2:3 2:1:0 3:0:0 4:2:2 5:0:0 6:2:2 7:0:0 8:1:0 9:0:0 10:2:2 11:0:0 12:2:1 13:1:1 14:2:3 15:1:1 5 0 0 4 1 0:2:r5:mul@base_1:lossy 1:6:r2:load@base_2:inject 2:7:r7:load@base_6:inject 3:8:r3:load@base_7:inject 4:14:r1:mul@base_4:lossy 5:23:r1:mul@base_20:lossy 6:26:r3:xor@base_22:inject 7:38:r1:rotr@base_31:bijective 8:39:r6:mulhi@base_34:lossy 9:43:r2:load@base_38:inject 10:50:r1:load@base_43:inject 11:53:r2:xor@base_47:inject 12:54:r4:add@base_44:inject 13:55:r6:rotr@base_49:bijective 14:57:r7:load@base_55:inject 15:61:r5:mul@base_52:lossy +igneum-ca3-v4-uniform/340 a48a902339a990c9 0 0:1:1 1:0:0 2:1:0 3:0:0 4:1:1 5:1:1 6:0:0 7:1:0 8:0:0 9:2:3 10:0:0 11:2:3 12:2:3 13:0:0 14:2:2 15:2:2 4 1 0 0 3 0:7:r2:rotr@base_2:bijective 1:9:r4:load@base_7:inject 2:11:r1:mad@base_6:inject 3:12:r0:add@base_10:inject 4:15:r5:xor@base_4:inject 5:19:r4:rotl@base_18:bijective 6:24:r6:or@base_23:lossy 7:32:r2:rotl@base_22:bijective 8:44:r5:add@base_38:inject 9:46:r2:add@base_43:inject 10:48:r1:mulhi@base_42:lossy 11:52:r3:mulhi@base_39:lossy 12:54:r6:shfl@base_49:inject 13:59:r5:xor@base_55:inject 14:61:r6:mulhi@base_56:lossy 15:62:r2:load@base_52:inject +igneum-ca3-v4-uniform/341 65a629cd92f42236 0 0:2:0 1:2:2 2:0:0 3:0:0 4:0:0 5:0:0 6:0:0 7:2:2 8:2:3 9:1:0 10:0:0 11:0:0 12:0:0 13:1:1 14:2:2 15:0:0 3 0 0 2 1 0:4:r2:add@base_1:inject 1:6:r5:mul@base_5:lossy 2:12:r2:mulhi@base_11:lossy 3:14:r0:rotr@base_10:bijective 4:15:r7:load@base_6:inject 5:19:r3:mul@base_18:lossy 6:24:r1:load@base_15:inject 7:26:r5:shfl@base_23:inject 8:27:r4:load@base_24:inject 9:40:r6:mad@base_35:inject 10:52:r5:sub@base_48:inject 11:54:r1:rotl@base_47:bijective 12:55:r4:load@base_54:inject 13:61:r3:add@base_49:inject 14:62:r5:load@base_61:inject 15:63:r2:load@base_55:inject +igneum-ca3-v4-uniform/342 9e613c7cfccccc96 0 0:2:1 1:0:0 2:1:0 3:1:0 4:2:0 5:2:3 6:2:3 7:2:3 8:2:0 9:2:3 10:1:1 11:0:0 12:1:1 13:2:1 14:1:1 15:0:0 5 2 0 1 2 0:1:r2:or@base_0:lossy 1:12:r4:add@base_11:inject 2:16:r1:mulhi@base_7:lossy 3:19:r3:mulhi@base_5:lossy 4:23:r2:xor@base_13:inject 5:33:r6:mul@base_14:lossy 6:36:r5:shfl@base_31:inject 7:38:r7:shfl@base_29:inject 8:39:r3:rotr@base_32:bijective 9:46:r2:add@base_41:inject 10:47:r3:xor@base_43:inject 11:49:r4:load@base_47:inject 12:56:r2:or@base_55:lossy 13:57:r3:load@base_56:inject 14:61:r6:rotl@base_60:bijective 15:62:r3:load@base_61:inject +igneum-ca3-v4-uniform/343 bbbbe37a1c274ad9 0 0:0:0 1:2:0 2:1:0 3:2:0 4:2:2 5:0:0 6:2:0 7:1:1 8:2:1 9:2:2 10:0:0 11:0:0 12:0:0 13:2:0 14:1:0 15:0:0 4 0 0 3 1 0:2:r2:xor@base_0:inject 1:11:r3:mul@base_7:lossy 2:20:r5:xor@base_14:inject 3:26:r0:mulhi@base_17:lossy 4:29:r1:rotl@base_21:bijective 5:37:r3:sub@base_28:inject 6:38:r4:sub@base_33:inject 7:42:r1:load@base_37:inject 8:44:r6:shfl@base_41:inject 9:45:r5:load@base_44:inject 10:47:r4:xor@base_46:inject 11:49:r0:load@base_45:inject 12:50:r7:load@base_49:inject 13:60:r2:mad@base_52:inject 14:61:r7:mul@base_51:lossy 15:63:r2:mul@base_62:lossy +igneum-ca3-v4-uniform/344 a32d55529d6fb68d 0 0:0:0 1:2:2 2:0:0 3:1:1 4:1:0 5:2:2 6:2:2 7:0:0 8:0:0 9:0:0 10:0:0 11:0:0 12:0:0 13:0:0 14:2:3 15:1:0 2 0 0 1 1 0:1:r7:mad@base_0:inject 1:10:r2:mad@base_3:inject 2:11:r0:load@base_10:inject 3:12:r4:rotr@base_8:bijective 4:17:r4:mul@base_13:lossy 5:19:r6:load@base_11:inject 6:30:r3:load@base_17:inject 7:37:r7:xor@base_27:inject 8:40:r4:xor@base_39:inject 9:43:r7:rotl@base_42:bijective 10:45:r1:add@base_32:inject 11:46:r2:mulhi@base_44:lossy 12:47:r3:load@base_45:inject 13:48:r0:load@base_47:inject 14:49:r5:shfl@base_41:inject 15:52:r5:rotr@base_50:bijective +igneum-ca3-v4-uniform/345 903dd1176d19aa54 0 0:0:0 1:1:0 2:2:3 3:0:0 4:0:0 5:2:3 6:2:1 7:2:1 8:1:1 9:2:0 10:2:2 11:0:0 12:0:0 13:2:2 14:0:0 15:1:0 2 0 0 1 1 0:2:r6:mad@base_1:inject 1:14:r1:rotr@base_13:bijective 2:32:r7:sub@base_30:inject 3:33:r4:rotl@base_27:bijective 4:34:r2:add@base_31:inject 5:36:r0:load@base_34:inject 6:37:r5:load@base_33:inject 7:42:r6:mul@base_21:lossy 8:47:r0:mulhi@base_44:lossy 9:48:r1:load@base_36:inject 10:52:r7:rotr@base_49:bijective 11:53:r2:load@base_52:inject 12:55:r0:mad@base_54:inject 13:56:r1:load@base_55:inject 14:62:r0:xor@base_58:inject 15:63:r7:load@base_62:inject +igneum-ca3-v4-uniform/346 00cc49212e27555f 0 0:1:0 1:1:1 2:0:0 3:2:3 4:2:2 5:1:1 6:0:0 7:2:1 8:0:0 9:0:0 10:0:0 11:2:3 12:1:0 13:0:0 14:0:0 15:2:0 3 2 0 0 1 0:2:r7:mulhi@base_0:lossy 1:13:r4:add@base_11:inject 2:19:r1:or@base_16:lossy 3:25:r0:shfl@base_24:inject 4:29:r2:load@base_19:inject 5:32:r1:load@base_29:inject 6:35:r5:rotl@base_3:bijective 7:37:r2:add@base_34:inject 8:38:r0:load@base_32:inject 9:41:r7:add@base_18:inject 10:50:r6:load@base_38:inject 11:52:r1:rotr@base_44:bijective 12:56:r2:add@base_55:inject 13:57:r6:or@base_53:lossy 14:60:r7:xor@base_58:inject 15:63:r6:add@base_61:inject +igneum-ca3-v4-uniform/347 0b6f4bf861661829 0 0:0:0 1:0:0 2:1:0 3:0:0 4:2:0 5:1:0 6:2:1 7:1:0 8:1:0 9:1:0 10:1:1 11:2:0 12:0:0 13:2:1 14:1:1 15:0:0 1 0 0 1 0 0:6:r6:mul@base_5:lossy 1:10:r1:add@base_7:inject 2:16:r5:rotl@base_13:bijective 3:18:r4:xor@base_15:inject 4:20:r1:rotl@base_17:bijective 5:22:r7:load@base_18:inject 6:24:r0:shfl@base_19:inject 7:26:r6:load@base_22:inject 8:28:r4:xor@base_27:inject 9:32:r2:add@base_30:inject 10:41:r3:add@base_36:inject 11:43:r7:rotl@base_39:bijective 12:45:r4:load@base_41:inject 13:55:r4:xor@base_53:inject 14:59:r2:xor@base_58:inject 15:62:r7:rotl@base_56:bijective +igneum-ca3-v4-uniform/348 e786bbfe11f72328 0 0:0:0 1:2:2 2:2:3 3:1:0 4:2:0 5:2:2 6:2:2 7:0:0 8:2:3 9:1:1 10:2:1 11:0:0 12:2:1 13:0:0 14:1:0 15:2:2 3 0 0 0 3 0:6:r2:mulhi@base_5:lossy 1:13:r0:mulhi@base_12:lossy 2:16:r3:shfl@base_4:inject 3:27:r4:mulhi@base_24:lossy 4:28:r0:shfl@base_17:inject 5:32:r5:xor@base_21:inject 6:39:r7:shfl@base_37:inject 7:40:r4:load@base_39:inject 8:44:r0:rotl@base_43:bijective 9:46:r1:rotl@base_36:bijective 10:49:r7:rotr@base_41:bijective 11:50:r6:load@base_44:inject 12:52:r2:rotl@base_48:bijective 13:55:r4:load@base_52:inject 14:58:r6:load@base_55:inject 15:63:r2:rotr@base_62:bijective +igneum-ca3-v4-uniform/349 45e6f11c3e68bf63 0 0:0:0 1:2:2 2:0:0 3:2:0 4:0:0 5:0:0 6:2:1 7:2:2 8:1:1 9:1:1 10:1:0 11:0:0 12:2:2 13:0:0 14:0:0 15:0:0 7 0 0 3 4 0:3:r5:add@base_0:inject 1:6:r4:mul@base_5:lossy 2:13:r1:mulhi@base_12:lossy 3:23:r5:mul@base_19:lossy 4:34:r5:sub@base_30:inject 5:36:r2:mul@base_27:lossy 6:41:r0:mulhi@base_32:lossy 7:42:r4:xor@base_24:inject 8:44:r3:load@base_41:inject 9:48:r6:xor@base_39:inject 10:50:r5:mulhi@base_49:lossy 11:54:r7:load@base_48:inject 12:55:r5:add@base_53:inject 13:58:r3:add@base_52:inject 14:60:r7:load@base_58:inject 15:61:r1:mulhi@base_56:lossy +igneum-ca3-v4-uniform/350 5d0ed8c54f4d24b4 0 0:0:0 1:1:1 2:2:3 3:2:1 4:1:0 5:2:0 6:2:1 7:0:0 8:1:1 9:2:3 10:1:0 11:2:2 12:2:0 13:1:0 14:0:0 15:1:1 3 0 0 1 2 0:2:r1:mulhi@base_0:lossy 1:3:r2:load@base_2:inject 2:8:r1:mulhi@base_6:lossy 3:11:r5:xor@base_7:inject 4:18:r5:xor@base_16:inject 5:21:r7:add@base_17:inject 6:25:r5:shfl@base_22:inject 7:32:r1:load@base_25:inject 8:33:r4:load@base_32:inject 9:34:r5:rotr@base_28:bijective 10:37:r4:mad@base_35:inject 11:38:r3:load@base_8:inject 12:45:r3:mul@base_39:lossy 13:52:r0:rotl@base_49:bijective 14:57:r4:add@base_48:inject 15:58:r3:rotr@base_56:bijective +igneum-ca3-v4-uniform/351 ac12c901192d772d 0 0:1:0 1:0:0 2:1:1 3:2:0 4:1:1 5:0:0 6:1:0 7:1:1 8:2:2 9:2:2 10:2:1 11:0:0 12:2:2 13:0:0 14:1:1 15:0:0 8 0 0 6 2 0:3:r1:mad@base_0:inject 1:19:r5:rotl@base_14:bijective 2:22:r4:mulhi@base_18:lossy 3:25:r5:mulhi@base_24:lossy 4:27:r6:mul@base_26:lossy 5:36:r5:mul@base_35:lossy 6:37:r0:load@base_36:inject 7:38:r2:mul@base_32:lossy 8:42:r5:mul@base_41:lossy 9:44:r6:mul@base_34:lossy 10:47:r0:load@base_42:inject 11:52:r2:xor@base_43:inject 12:53:r7:xor@base_40:inject 13:55:r1:load@base_52:inject 14:56:r3:mul@base_54:lossy 15:60:r6:shfl@base_59:inject +igneum-ca3-v4-uniform/352 d6029ddd5ec07a11 0 0:2:1 1:1:1 2:2:0 3:1:0 4:2:0 5:1:1 6:1:0 7:1:0 8:1:1 9:1:0 10:0:0 11:1:1 12:1:1 13:2:0 14:2:2 15:2:3 1 0 0 0 1 0:2:r3:xor@base_1:inject 1:4:r0:load@base_2:inject 2:10:r3:xor@base_9:inject 3:21:r4:mulhi@base_17:lossy 4:23:r2:add@base_22:inject 5:26:r6:sub@base_11:inject 6:34:r1:sub@base_29:inject 7:36:r7:rotr@base_32:bijective 8:41:r0:load@base_34:inject 9:43:r4:rotr@base_39:bijective 10:44:r1:load@base_36:inject 11:46:r7:load@base_44:inject 12:49:r6:shfl@base_48:inject 13:52:r1:load@base_46:inject 14:58:r2:rotl@base_45:bijective 15:60:r5:rotl@base_50:bijective +igneum-ca3-v4-uniform/353 c2e7e8e7c1e41eed 0 0:2:3 1:0:0 2:0:0 3:1:1 4:1:1 5:1:0 6:1:1 7:0:0 8:0:0 9:2:2 10:2:3 11:2:1 12:0:0 13:2:2 14:0:0 15:1:1 3 0 0 2 1 0:3:r4:add@base_0:inject 1:8:r6:load@base_3:inject 2:10:r7:rotl@base_4:bijective 3:16:r3:sub@base_14:inject 4:24:r4:mul@base_5:lossy 5:29:r5:mulhi@base_19:lossy 6:32:r3:load@base_24:inject 7:33:r0:mul@base_30:lossy 8:39:r2:load@base_29:inject 9:40:r4:mad@base_31:inject 10:44:r0:load@base_39:inject 11:46:r5:shfl@base_38:inject 12:52:r2:load@base_46:inject 13:53:r3:xor@base_51:inject 14:60:r4:mad@base_55:inject 15:62:r7:sub@base_56:inject +igneum-ca3-v4-uniform/354 0e10cab2753c5e15 0 0:0:0 1:1:1 2:1:1 3:0:0 4:1:0 5:0:0 6:2:3 7:0:0 8:2:1 9:2:2 10:1:1 11:0:0 12:2:3 13:2:1 14:2:2 15:1:1 2 0 0 1 1 0:1:r7:mulhi@base_0:lossy 1:5:r6:sub@base_3:inject 2:8:r5:shfl@base_4:inject 3:10:r4:load@base_5:inject 4:18:r0:add@base_17:inject 5:19:r6:xor@base_16:inject 6:21:r0:mad@base_20:inject 7:22:r1:load@base_10:inject 8:29:r0:mad@base_26:inject 9:31:r6:rotr@base_28:bijective 10:32:r5:load@base_29:inject 11:34:r4:load@base_22:inject 12:39:r3:load@base_21:inject 13:42:r1:mad@base_25:inject 14:43:r7:mul@base_30:lossy 15:46:r6:load@base_39:inject +igneum-ca3-v4-uniform/355 00a39604a829883d 0 0:0:0 1:1:1 2:1:0 3:2:1 4:2:0 5:2:2 6:1:1 7:2:1 8:1:1 9:0:0 10:1:1 11:1:0 12:1:0 13:0:0 14:0:0 15:1:1 6 2 0 4 0 0:1:r0:mul@base_0:lossy 1:5:r1:load@base_1:inject 2:8:r6:rotl@base_6:bijective 3:13:r6:or@base_11:lossy 4:25:r7:mul@base_12:lossy 5:35:r6:add@base_31:inject 6:36:r1:or@base_19:lossy 7:40:r5:mul@base_30:lossy 8:50:r6:sub@base_45:inject 9:53:r3:rotl@base_46:bijective 10:55:r1:load@base_50:inject 11:58:r1:shfl@base_56:inject 12:59:r4:load@base_40:inject 13:61:r0:load@base_59:inject 14:62:r2:mul@base_47:lossy 15:63:r5:load@base_62:inject +igneum-ca3-v4-uniform/356 a2082bfdeadf815d 0 0:1:1 1:0:0 2:1:1 3:1:1 4:0:0 5:1:1 6:0:0 7:1:0 8:0:0 9:2:0 10:1:1 11:0:0 12:0:0 13:1:0 14:1:0 15:2:1 3 1 0 1 1 0:3:r2:rotr@base_2:bijective 1:11:r0:shfl@base_8:inject 2:12:r3:rotr@base_5:bijective 3:13:r4:sub@base_6:inject 4:14:r2:load@base_12:inject 5:19:r0:rotl@base_18:bijective 6:21:r7:or@base_10:lossy 7:22:r3:load@base_19:inject 8:26:r1:xor@base_23:inject 9:29:r6:mulhi@base_28:lossy 10:33:r3:shfl@base_30:inject 11:46:r3:mul@base_36:lossy 12:50:r5:mad@base_49:inject 13:57:r0:load@base_33:inject 14:58:r3:mad@base_56:inject 15:63:r2:load@base_50:inject +igneum-ca3-v4-uniform/357 af3945a94b75bca8 0 0:1:1 1:1:1 2:1:1 3:2:1 4:2:0 5:0:0 6:1:0 7:2:0 8:1:1 9:2:2 10:1:1 11:1:1 12:1:0 13:0:0 14:0:0 15:0:0 0 0 0 0 0 0:1:r3:xor@base_0:inject 1:4:r2:rotl@base_3:bijective 2:11:r2:sub@base_10:inject 3:12:r3:rotl@base_8:bijective 4:13:r1:load@base_12:inject 5:14:r7:load@base_11:inject 6:17:r3:load@base_14:inject 7:28:r2:mad@base_23:inject 8:29:r4:load@base_28:inject 9:30:r1:add@base_21:inject 10:31:r0:add@base_26:inject 11:35:r2:load@base_30:inject 12:44:r0:mad@base_42:inject 13:51:r0:mad@base_47:inject 14:56:r7:load@base_51:inject 15:63:r5:add@base_58:inject +igneum-ca3-v4-uniform/358 41b37b7d1609bb5c 0 0:2:3 1:0:0 2:1:0 3:0:0 4:1:0 5:1:0 6:1:0 7:0:0 8:1:0 9:1:1 10:0:0 11:2:0 12:2:0 13:0:0 14:2:2 15:0:0 3 1 0 0 2 0:1:r1:add@base_0:inject 1:7:r4:sub@base_4:inject 2:20:r3:rotl@base_16:bijective 3:23:r0:rotr@base_21:bijective 4:24:r7:sub@base_13:inject 5:28:r5:rotr@base_5:bijective 6:30:r1:add@base_17:inject 7:34:r6:rotl@base_25:bijective 8:35:r4:load@base_34:inject 9:36:r5:mulhi@base_29:lossy 10:41:r3:load@base_30:inject 11:47:r0:xor@base_40:inject 12:54:r7:mulhi@base_52:lossy 13:59:r1:add@base_50:inject 14:62:r1:add@base_60:inject 15:63:r0:or@base_57:lossy +igneum-ca3-v4-uniform/359 4fa10c811155af74 0 0:1:1 1:1:0 2:2:2 3:2:3 4:2:1 5:2:2 6:0:0 7:0:0 8:0:0 9:2:1 10:1:0 11:1:0 12:0:0 13:2:3 14:1:1 15:2:1 3 2 0 1 0 0:1:r4:add@base_0:inject 1:2:r2:load@base_1:inject 2:4:r1:or@base_3:lossy 3:18:r7:or@base_14:lossy 4:20:r1:mad@base_19:inject 5:31:r0:rotl@base_22:bijective 6:32:r3:xor@base_25:inject 7:35:r4:mul@base_33:lossy 8:36:r5:add@base_34:inject 9:38:r2:shfl@base_28:inject 10:40:r7:load@base_38:inject 11:43:r1:load@base_35:inject 12:46:r5:xor@base_45:inject 13:48:r6:load@base_46:inject 14:54:r1:shfl@base_53:inject 15:63:r3:mad@base_62:inject +igneum-ca3-v4-uniform/360 242c66a691171717 0 0:0:0 1:1:1 2:0:0 3:0:0 4:2:0 5:1:0 6:2:2 7:1:0 8:0:0 9:0:0 10:2:2 11:2:0 12:0:0 13:1:0 14:2:3 15:0:0 3 2 0 0 1 0:5:r1:add@base_2:inject 1:9:r1:xor@base_8:inject 2:16:r0:shfl@base_10:inject 3:18:r5:shfl@base_15:inject 4:21:r4:load@base_18:inject 5:22:r5:mulhi@base_20:lossy 6:24:r7:mad@base_17:inject 7:26:r1:load@base_22:inject 8:35:r6:sub@base_27:inject 9:36:r5:or@base_34:lossy 10:39:r0:xor@base_23:inject 11:44:r7:add@base_37:inject 12:49:r6:or@base_45:lossy 13:53:r4:shfl@base_48:inject 14:60:r2:load@base_49:inject 15:61:r7:load@base_53:inject +igneum-ca3-v4-uniform/361 3cc66e1402d57580 0 0:0:0 1:2:0 2:1:0 3:0:0 4:2:2 5:1:0 6:0:0 7:2:3 8:1:1 9:1:1 10:0:0 11:0:0 12:0:0 13:1:1 14:1:1 15:2:1 2 1 1 0 1 0:10:r4:rotr@base_9:bijective 1:11:r7:shfl@base_8:inject 2:14:r5:rotr@base_12:bijective 3:18:r2:or@base_1:lossy-or-chain1 4:20:r4:sub@base_17:inject 5:27:r6:rotl@base_21:bijective 6:31:r0:mulhi@base_30:lossy 7:33:r4:load@base_31:inject 8:34:r5:add@base_25:inject 9:43:r3:sub@base_41:inject 10:50:r6:mad@base_42:inject 11:51:r1:sub@base_46:inject 12:52:r7:add@base_37:inject 13:54:r4:mad@base_53:inject 14:60:r2:load@base_43:inject 15:62:r4:mad@base_61:inject +igneum-ca3-v4-uniform/362 cc65508952ab3fdc 0 0:2:0 1:2:2 2:2:3 3:2:1 4:2:2 5:2:3 6:1:0 7:1:1 8:1:1 9:1:1 10:1:0 11:0:0 12:2:0 13:0:0 14:1:1 15:0:0 5 0 0 1 4 0:2:r2:rotl@base_0:bijective 1:6:r0:mulhi@base_5:lossy 2:7:r4:load@base_6:inject 3:11:r3:rotl@base_8:bijective 4:15:r7:mul@base_13:lossy 5:19:r4:add@base_18:inject 6:21:r6:mulhi@base_17:lossy 7:22:r1:load@base_15:inject 8:26:r7:load@base_22:inject 9:33:r0:mulhi@base_29:lossy 10:35:r2:xor@base_31:inject 11:38:r6:rotl@base_36:bijective 12:53:r6:mulhi@base_51:lossy 13:56:r7:add@base_55:inject 14:57:r1:xor@base_52:inject 15:62:r4:add@base_42:inject +igneum-ca3-v4-uniform/363 f3ab77b2fe70bc9c 0 0:2:3 1:2:2 2:0:0 3:2:3 4:1:0 5:2:1 6:2:2 7:0:0 8:0:0 9:1:0 10:0:0 11:0:0 12:0:0 13:2:3 14:1:1 15:2:1 2 1 0 1 0 0:1:r2:add@base_0:inject 1:3:r2:rotl@base_2:bijective 2:18:r1:sub@base_4:inject 3:20:r3:rotr@base_13:bijective 4:25:r7:or@base_21:lossy 5:29:r3:xor@base_26:inject 6:34:r2:add@base_32:inject 7:40:r6:mul@base_35:lossy 8:43:r3:load@base_40:inject 9:45:r4:add@base_33:inject 10:47:r5:xor@base_39:inject 11:52:r1:rotl@base_31:bijective 12:54:r7:xor@base_46:inject 13:56:r5:rotl@base_55:bijective 14:60:r6:rotl@base_59:bijective 15:62:r2:xor@base_48:inject +igneum-ca3-v4-uniform/364 63555275839b205c 0 0:1:1 1:0:0 2:1:0 3:2:1 4:1:0 5:0:0 6:0:0 7:0:0 8:0:0 9:0:0 10:2:3 11:0:0 12:2:1 13:2:1 14:2:3 15:1:0 6 2 0 2 2 0:7:r4:shfl@base_4:inject 1:9:r3:or@base_5:lossy 2:11:r7:load@base_7:inject 3:15:r6:mulhi@base_14:lossy 4:22:r3:mul@base_16:lossy 5:25:r4:xor@base_21:inject 6:26:r1:xor@base_23:inject 7:27:r2:add@base_17:inject 8:28:r7:load@base_26:inject 9:34:r0:or@base_32:lossy 10:39:r3:mul@base_38:lossy 11:42:r1:mad@base_30:inject 12:45:r7:add@base_40:inject 13:47:r5:mulhi@base_46:lossy 14:52:r5:add@base_49:inject 15:58:r3:sub@base_57:inject +igneum-ca3-v4-uniform/365 2fb0cc1232a920d2 0 0:0:0 1:2:3 2:0:0 3:0:0 4:1:1 5:1:1 6:2:0 7:2:2 8:1:1 9:0:0 10:2:1 11:0:0 12:0:0 13:2:2 14:1:1 15:2:0 2 1 0 0 1 0:4:r7:sub@base_2:inject 1:10:r0:sub@base_6:inject 2:13:r2:load@base_10:inject 3:14:r3:rotr@base_5:bijective 4:15:r6:add@base_11:inject 5:20:r7:load@base_15:inject 6:22:r2:xor@base_21:inject 7:23:r7:load@base_22:inject 8:32:r3:load@base_23:inject 9:36:r4:add@base_27:inject 10:48:r5:xor@base_47:inject 11:54:r7:or@base_33:lossy 12:55:r2:shfl@base_30:inject 13:57:r3:mulhi@base_44:lossy 14:59:r1:add@base_38:inject 15:63:r4:rotl@base_60:bijective +igneum-ca3-v4-uniform/366 84cfce5fcae287e2 0 0:0:0 1:0:0 2:0:0 3:0:0 4:0:0 5:2:1 6:1:0 7:0:0 8:0:0 9:2:2 10:0:0 11:0:0 12:2:1 13:1:0 14:0:0 15:0:0 3 0 0 0 3 0:2:r1:add@base_0:inject 1:4:r2:mad@base_1:inject 2:16:r7:mulhi@base_7:lossy 3:17:r1:mulhi@base_15:lossy 4:25:r1:rotl@base_22:bijective 5:36:r0:rotr@base_21:bijective 6:37:r5:add@base_34:inject 7:38:r3:load@base_37:inject 8:41:r2:load@base_38:inject 9:42:r4:rotr@base_31:bijective 10:44:r1:load@base_41:inject 11:53:r1:mulhi@base_47:lossy 12:56:r5:mad@base_51:inject 13:57:r3:load@base_44:inject 14:58:r4:shfl@base_52:inject 15:60:r2:load@base_58:inject +igneum-ca3-v4-uniform/367 c79a0347a79aa428 0 0:1:0 1:1:1 2:0:0 3:2:3 4:2:3 5:2:3 6:1:1 7:1:1 8:1:0 9:2:3 10:2:1 11:1:1 12:1:0 13:0:0 14:0:0 15:1:1 4 2 0 1 1 0:11:r7:mad@base_4:inject 1:12:r5:rotr@base_0:bijective 2:15:r4:or@base_8:lossy 3:16:r0:load@base_15:inject 4:19:r0:or@base_18:lossy 5:25:r2:mul@base_22:lossy 6:27:r6:mulhi@base_24:lossy 7:35:r7:add@base_32:inject 8:43:r5:add@base_28:inject 9:47:r1:shfl@base_45:inject 10:48:r6:xor@base_41:inject 11:49:r2:mad@base_46:inject 12:51:r7:load@base_43:inject 13:58:r3:add@base_56:inject 14:59:r1:add@base_57:inject 15:60:r5:load@base_58:inject +igneum-ca3-v4-uniform/368 5ee5876a92636fe8 0 0:1:0 1:1:1 2:2:1 3:0:0 4:2:0 5:0:0 6:2:3 7:0:0 8:1:1 9:2:0 10:2:1 11:1:1 12:1:1 13:0:0 14:2:0 15:0:0 4 1 0 2 1 0:3:r7:add@base_1:inject 1:7:r0:rotl@base_5:bijective 2:9:r6:mul@base_6:lossy 3:18:r3:mul@base_16:lossy 4:20:r0:xor@base_17:inject 5:23:r7:shfl@base_21:inject 6:27:r1:load@base_23:inject 7:33:r5:add@base_22:inject 8:36:r1:load@base_33:inject 9:38:r3:shfl@base_32:inject 10:47:r3:add@base_46:inject 11:50:r4:mulhi@base_44:lossy 12:51:r1:rotl@base_41:bijective 13:52:r7:add@base_48:inject 14:59:r7:rotr@base_55:bijective 15:61:r1:or@base_56:lossy +igneum-ca3-v4-uniform/369 d2099dd9fee73306 0 0:0:0 1:1:1 2:2:2 3:2:1 4:0:0 5:1:1 6:1:0 7:2:1 8:1:0 9:1:1 10:0:0 11:0:0 12:1:1 13:0:0 14:0:0 15:0:0 3 0 0 2 1 0:1:r6:mad@base_0:inject 1:5:r6:add@base_4:inject 2:10:r1:load@base_5:inject 3:21:r3:sub@base_16:inject 4:23:r2:rotl@base_17:bijective 5:30:r6:mulhi@base_28:lossy 6:32:r5:load@base_30:inject 7:43:r6:rotl@base_37:bijective 8:44:r4:load@base_43:inject 9:47:r2:xor@base_41:inject 10:51:r7:mad@base_45:inject 11:53:r0:mul@base_31:lossy 12:55:r4:load@base_53:inject 13:56:r1:load@base_55:inject 14:57:r5:mul@base_52:lossy 15:58:r6:load@base_56:inject +igneum-ca3-v4-uniform/370 9e9212215804dc82 0 0:2:3 1:0:0 2:2:1 3:2:2 4:2:0 5:1:1 6:1:1 7:1:1 8:2:2 9:1:1 10:1:0 11:0:0 12:2:2 13:1:1 14:1:1 15:0:0 3 0 0 1 2 0:9:r4:rotr@base_6:bijective 1:12:r7:rotr@base_10:bijective 2:13:r5:xor@base_5:inject 3:19:r2:load@base_9:inject 4:25:r1:rotr@base_24:bijective 5:28:r5:add@base_27:inject 6:31:r4:rotr@base_30:bijective 7:35:r6:xor@base_18:inject 8:36:r7:xor@base_34:inject 9:37:r2:rotr@base_33:bijective 10:41:r4:mulhi@base_32:lossy 11:44:r6:mul@base_42:lossy 12:49:r4:add@base_47:inject 13:60:r1:xor@base_55:inject 14:61:r6:mulhi@base_51:lossy 15:62:r5:load@base_60:inject +igneum-ca3-v4-uniform/371 66141f0ce327a461 0 0:0:0 1:0:0 2:0:0 3:2:2 4:2:1 5:2:0 6:0:0 7:2:0 8:1:0 9:0:0 10:1:0 11:2:0 12:0:0 13:2:3 14:2:1 15:0:0 2 1 0 0 1 0:2:r1:mulhi@base_1:lossy 1:4:r0:shfl@base_3:inject 2:7:r2:load@base_2:inject 3:8:r6:load@base_7:inject 4:9:r7:load@base_8:inject 5:14:r5:xor@base_13:inject 6:20:r7:mad@base_19:inject 7:34:r2:rotr@base_31:bijective 8:40:r7:add@base_39:inject 9:42:r7:sub@base_41:inject 10:45:r1:add@base_44:inject 11:46:r0:rotr@base_18:bijective 12:55:r2:or@base_48:lossy 13:57:r5:shfl@base_52:inject 14:60:r0:sub@base_58:inject 15:63:r2:rotr@base_56:bijective +igneum-ca3-v4-uniform/372 3460f8558dda6579 0 0:2:2 1:1:1 2:2:3 3:2:2 4:0:0 5:2:1 6:0:0 7:1:0 8:2:3 9:2:1 10:2:1 11:0:0 12:0:0 13:1:1 14:2:1 15:2:1 3 2 0 1 0 0:7:r4:add@base_5:inject 1:9:r1:shfl@base_8:inject 2:15:r2:shfl@base_12:inject 3:18:r1:add@base_16:inject 4:20:r7:mad@base_11:inject 5:26:r1:mad@base_25:inject 6:31:r5:load@base_20:inject 7:34:r4:rotr@base_21:bijective 8:35:r1:mul@base_32:lossy 9:39:r7:rotr@base_37:bijective 10:43:r3:add@base_38:inject 11:46:r2:shfl@base_41:inject 12:48:r7:or@base_45:lossy 13:49:r6:or@base_47:lossy 14:56:r0:rotl@base_52:bijective 15:57:r4:rotr@base_55:bijective +igneum-ca3-v4-uniform/373 31166b162488fc73 0 0:2:3 1:0:0 2:1:1 3:2:3 4:1:1 5:1:1 6:1:1 7:0:0 8:2:1 9:1:1 10:0:0 11:1:1 12:1:1 13:1:0 14:0:0 15:1:0 2 1 0 1 0 0:5:r2:add@base_4:inject 1:8:r5:rotl@base_6:bijective 2:22:r3:mul@base_21:lossy 3:23:r6:load@base_22:inject 4:24:r7:add@base_18:inject 5:25:r5:load@base_23:inject 6:26:r6:load@base_25:inject 7:31:r6:or@base_27:lossy 8:32:r2:load@base_31:inject 9:36:r7:load@base_32:inject 10:39:r1:load@base_26:inject 11:49:r0:rotl@base_47:bijective 12:50:r4:xor@base_48:inject 13:51:r6:xor@base_42:inject 14:53:r1:load@base_51:inject 15:60:r2:mad@base_58:inject +igneum-ca3-v4-uniform/374 4ffed6a3f00d7018 0 0:0:0 1:2:3 2:1:0 3:1:0 4:1:0 5:0:0 6:1:0 7:1:0 8:1:0 9:0:0 10:1:1 11:2:3 12:2:2 13:2:3 14:0:0 15:2:1 5 1 0 2 2 0:5:r6:add@base_2:inject 1:7:r2:mad@base_1:inject 2:11:r3:load@base_7:inject 3:14:r4:load@base_11:inject 4:20:r0:shfl@base_4:inject 5:23:r6:shfl@base_21:inject 6:24:r7:mul@base_22:lossy 7:26:r2:mul@base_16:lossy 8:33:r4:mulhi@base_18:lossy 9:35:r5:load@base_33:inject 10:43:r4:mad@base_42:inject 11:49:r3:or@base_29:lossy 12:51:r0:mad@base_48:inject 13:52:r4:rotr@base_47:bijective 14:61:r4:xor@base_58:inject 15:62:r5:mulhi@base_60:lossy +igneum-ca3-v4-uniform/375 658073e6920bb5ed 0 0:1:1 1:0:0 2:1:0 3:1:1 4:0:0 5:0:0 6:0:0 7:1:0 8:1:1 9:1:0 10:0:0 11:0:0 12:0:0 13:2:3 14:1:0 15:1:1 4 2 1 1 1 0:4:r6:rotl@base_3:bijective 1:14:r2:rotl@base_13:bijective 2:17:r6:load@base_14:inject 3:21:r4:or@base_16:lossy 4:23:r0:add@base_20:inject 5:27:r2:mulhi@base_22:lossy 6:31:r0:rotr@base_29:bijective 7:34:r4:shfl@base_30:inject 8:35:r5:load@base_27:inject 9:36:r1:or@base_25:lossy-or-chain1 10:39:r2:load@base_36:inject 11:47:r1:load@base_39:inject 12:49:r5:xor@base_48:inject 13:52:r6:sub@base_51:inject 14:62:r2:mul@base_57:lossy 15:63:r5:load@base_52:inject +igneum-ca3-v4-uniform/376 122b498deda4bfff 0 0:0:0 1:2:1 2:1:1 3:1:1 4:0:0 5:0:0 6:0:0 7:1:1 8:1:0 9:2:0 10:1:0 11:2:0 12:2:0 13:2:1 14:1:0 15:2:3 1 0 0 1 0 0:7:r7:add@base_6:inject 1:10:r1:sub@base_9:inject 2:11:r3:mad@base_3:inject 3:13:r7:load@base_10:inject 4:16:r2:load@base_7:inject 5:18:r1:mul@base_17:lossy 6:19:r6:load@base_18:inject 7:21:r3:load@base_13:inject 8:22:r7:load@base_21:inject 9:31:r6:add@base_23:inject 10:36:r3:xor@base_32:inject 11:42:r0:xor@base_38:inject 12:53:r1:xor@base_34:inject 13:54:r5:sub@base_44:inject 14:57:r4:xor@base_50:inject 15:61:r6:sub@base_58:inject +igneum-ca3-v4-uniform/377 65bdd213f7f37e2e 0 0:0:0 1:2:0 2:1:0 3:2:1 4:0:0 5:2:3 6:2:1 7:2:0 8:0:0 9:0:0 10:2:2 11:0:0 12:2:0 13:1:1 14:2:3 15:0:0 0 0 0 0 0 0:12:r0:xor@base_4:inject 1:14:r6:shfl@base_6:inject 2:16:r1:load@base_12:inject 3:18:r7:xor@base_8:inject 4:21:r5:load@base_18:inject 5:22:r0:load@base_21:inject 6:27:r4:load@base_14:inject 7:33:r7:load@base_22:inject 8:34:r3:add@base_11:inject 9:35:r0:load@base_27:inject 10:36:r6:load@base_34:inject 11:39:r2:rotl@base_32:bijective 12:47:r6:rotl@base_42:bijective 13:49:r1:mad@base_41:inject 14:54:r0:rotl@base_53:bijective 15:58:r2:mad@base_55:inject +igneum-ca3-v4-uniform/378 340b630c9848b35c 0 0:2:0 1:0:0 2:0:0 3:0:0 4:0:0 5:0:0 6:2:0 7:0:0 8:2:2 9:2:2 10:2:0 11:0:0 12:1:0 13:1:0 14:0:0 15:0:0 3 1 1 1 1 0:2:r2:add@base_0:inject 1:3:r5:sub@base_1:inject 2:8:r0:load@base_3:inject 3:16:r1:xor@base_14:inject 4:22:r6:add@base_15:inject 5:24:r3:shfl@base_23:inject 6:31:r0:mul@base_21:lossy 7:33:r4:load@base_8:inject 8:37:r5:mulhi@base_19:lossy 9:42:r3:shfl@base_38:inject 10:43:r1:load@base_42:inject 11:44:r0:load@base_37:inject 12:52:r6:add@base_39:inject 13:58:r7:or@base_57:lossy-or-chain1 14:62:r2:load@base_43:inject 15:63:r6:load@base_58:inject +igneum-ca3-v4-uniform/379 9591ac11ea5e1c03 0 0:0:0 1:2:0 2:0:0 3:0:0 4:1:0 5:0:0 6:0:0 7:1:1 8:1:0 9:1:0 10:2:0 11:2:3 12:1:0 13:1:1 14:1:1 15:0:0 5 1 0 3 1 0:2:r7:shfl@base_1:inject 1:3:r6:load@base_2:inject 2:4:r3:load@base_3:inject 3:10:r6:or@base_9:lossy 4:21:r5:mul@base_13:lossy 5:27:r1:add@base_18:inject 6:32:r5:rotr@base_29:bijective 7:37:r4:rotr@base_26:bijective 8:44:r3:add@base_41:inject 9:45:r5:mul@base_39:lossy 10:46:r2:mulhi@base_15:lossy 11:48:r2:mul@base_47:lossy 12:51:r6:rotl@base_43:bijective 13:53:r0:load@base_37:inject 14:54:r7:load@base_44:inject 15:60:r5:mad@base_58:inject +igneum-ca3-v4-uniform/380 fc86faf767097d04 0 0:2:3 1:1:0 2:2:2 3:0:0 4:2:0 5:2:1 6:2:2 7:0:0 8:1:0 9:1:1 10:0:0 11:2:3 12:1:0 13:0:0 14:0:0 15:0:0 5 1 0 3 1 0:2:r7:sub@base_1:inject 1:6:r5:xor@base_0:inject 2:10:r3:xor@base_5:inject 3:16:r3:add@base_13:inject 4:18:r7:load@base_10:inject 5:19:r6:load@base_6:inject 6:20:r2:mul@base_17:lossy 7:28:r7:mulhi@base_24:lossy 8:33:r6:or@base_23:lossy 9:40:r1:mul@base_27:lossy 10:44:r7:add@base_43:inject 11:46:r2:load@base_44:inject 12:49:r6:mul@base_48:lossy 13:52:r2:add@base_50:inject 14:53:r0:load@base_52:inject 15:63:r5:mad@base_61:inject +igneum-ca3-v4-uniform/381 b51228f47408c9d9 0 0:0:0 1:1:1 2:2:1 3:2:2 4:1:1 5:2:0 6:2:3 7:0:0 8:0:0 9:1:0 10:2:3 11:0:0 12:2:3 13:2:0 14:0:0 15:2:3 3 2 0 1 0 0:13:r4:or@base_4:lossy 1:15:r1:mad@base_8:inject 2:19:r2:rotl@base_18:bijective 3:23:r1:load@base_19:inject 4:30:r3:mul@base_28:lossy 5:36:r5:rotl@base_25:bijective 6:39:r0:load@base_30:inject 7:40:r4:load@base_36:inject 8:41:r5:load@base_39:inject 9:45:r0:mad@base_44:inject 10:49:r7:xor@base_48:inject 11:51:r2:mad@base_50:inject 12:53:r6:load@base_45:inject 13:59:r4:xor@base_46:inject 14:60:r2:load@base_59:inject 15:63:r5:or@base_58:lossy +igneum-ca3-v4-uniform/382 6b7e5a4afb7cf33d 0 0:1:1 1:1:0 2:0:0 3:0:0 4:0:0 5:1:1 6:1:0 7:0:0 8:1:1 9:2:1 10:2:0 11:2:1 12:1:0 13:1:1 14:0:0 15:1:0 3 1 0 1 1 0:1:r7:rotl@base_0:bijective 1:2:r5:load@base_1:inject 2:4:r3:xor@base_3:inject 3:9:r1:load@base_4:inject 4:10:r2:load@base_2:inject 5:17:r0:shfl@base_16:inject 6:20:r2:load@base_17:inject 7:23:r7:rotl@base_18:bijective 8:24:r5:load@base_23:inject 9:25:r4:sub@base_19:inject 10:35:r3:rotl@base_27:bijective 11:41:r4:mul@base_39:lossy 12:43:r1:mulhi@base_38:lossy 13:45:r3:load@base_43:inject 14:52:r7:add@base_33:inject 15:63:r7:or@base_55:lossy +igneum-ca3-v4-uniform/383 f8da502b23ce5484 1 0:2:1 1:0:0 2:2:1 3:2:3 4:2:1 5:2:1 6:1:0 7:1:1 8:1:1 9:1:0 10:1:0 11:1:1 12:1:1 13:2:0 14:2:2 15:0:0 3 1 0 2 0 0:2:r2:xor@base_0:inject 1:3:r3:add@base_1:inject 2:4:r4:load@base_3:inject 3:5:r1:load@base_2:inject 4:14:r4:xor@base_9:inject 5:16:r3:or@base_7:lossy 6:20:r4:xor@base_17:inject 7:32:r7:sub@base_31:inject 8:44:r1:mul@base_36:lossy 9:48:r3:sub@base_37:inject 10:50:r6:add@base_49:inject 11:51:r0:load@base_44:inject 12:53:r7:add@base_52:inject 13:59:r7:shfl@base_56:inject 14:60:r2:load@base_48:inject 15:62:r0:mul@base_54:lossy +igneum-ca3-v4-uniform/384 f79756c455d2df7f 0 0:0:0 1:2:2 2:1:1 3:2:3 4:1:1 5:1:0 6:1:1 7:1:0 8:0:0 9:2:3 10:1:1 11:1:1 12:0:0 13:1:1 14:1:1 15:1:0 4 0 0 2 2 0:3:r3:rotl@base_2:bijective 1:5:r7:rotr@base_1:bijective 2:7:r0:load@base_3:inject 3:8:r2:mulhi@base_4:lossy 4:14:r6:mul@base_10:lossy 5:15:r7:load@base_8:inject 6:16:r2:load@base_15:inject 7:17:r3:rotl@base_12:bijective 8:20:r0:mad@base_19:inject 9:33:r0:mul@base_26:lossy 10:34:r4:mad@base_29:inject 11:36:r3:rotl@base_25:bijective 12:46:r5:sub@base_39:inject 13:49:r2:load@base_36:inject 14:53:r2:sub@base_50:inject 15:57:r1:mulhi@base_55:lossy +igneum-ca3-v4-uniform/385 3085621918bc901f 0 0:1:0 1:2:1 2:2:3 3:2:1 4:0:0 5:1:1 6:1:1 7:1:1 8:1:1 9:2:3 10:0:0 11:1:0 12:2:2 13:0:0 14:0:0 15:0:0 5 1 0 1 3 0:1:r1:mul@base_0:lossy 1:3:r7:mulhi@base_2:lossy 2:11:r4:xor@base_8:inject 3:14:r5:or@base_13:lossy 4:16:r7:rotl@base_9:bijective 5:19:r1:add@base_15:inject 6:27:r1:rotl@base_26:bijective 7:29:r5:sub@base_23:inject 8:30:r6:load@base_19:inject 9:31:r3:load@base_30:inject 10:32:r7:load@base_31:inject 11:35:r2:load@base_27:inject 12:44:r1:load@base_32:inject 13:51:r1:mulhi@base_49:lossy 14:53:r6:mulhi@base_47:lossy 15:56:r7:add@base_55:inject +igneum-ca3-v4-uniform/386 c50dbdd9db14fce3 0 0:0:0 1:2:0 2:2:1 3:0:0 4:2:1 5:0:0 6:1:1 7:2:3 8:0:0 9:1:0 10:2:2 11:0:0 12:2:2 13:0:0 14:2:2 15:0:0 4 2 0 2 0 0:3:r1:mul@base_1:lossy 1:10:r7:mad@base_7:inject 2:16:r7:rotl@base_14:bijective 3:19:r0:xor@base_8:inject 4:21:r1:shfl@base_20:inject 5:25:r0:xor@base_24:inject 6:30:r2:mul@base_5:lossy 7:31:r5:or@base_29:lossy 8:32:r4:xor@base_17:inject 9:33:r1:load@base_30:inject 10:36:r7:mad@base_28:inject 11:47:r4:or@base_37:lossy 12:54:r6:sub@base_51:inject 13:57:r1:load@base_47:inject 14:61:r4:add@base_52:inject 15:63:r2:add@base_58:inject +igneum-ca3-v4-uniform/387 c196ff7385a25cc5 0 0:1:1 1:2:3 2:2:0 3:0:0 4:0:0 5:0:0 6:1:0 7:2:3 8:0:0 9:0:0 10:1:1 11:1:1 12:1:1 13:0:0 14:0:0 15:2:0 1 0 0 0 1 0:8:r4:rotl@base_1:bijective 1:10:r2:add@base_7:inject 2:12:r0:mulhi@base_4:lossy 3:14:r6:load@base_8:inject 4:17:r1:xor@base_16:inject 5:18:r5:add@base_5:inject 6:26:r4:sub@base_21:inject 7:28:r2:mad@base_19:inject 8:30:r1:load@base_28:inject 9:32:r3:rotr@base_27:bijective 10:39:r5:load@base_26:inject 11:44:r6:rotl@base_38:bijective 12:45:r0:rotl@base_40:bijective 13:53:r2:mad@base_46:inject 14:56:r5:mad@base_54:inject 15:59:r4:rotl@base_57:bijective +igneum-ca3-v4-uniform/388 6440f3308c9681c7 0 0:2:2 1:1:0 2:1:1 3:1:0 4:1:1 5:2:1 6:2:2 7:0:0 8:0:0 9:1:0 10:2:1 11:2:2 12:1:1 13:2:0 14:0:0 15:0:0 5 0 0 3 2 0:2:r1:add@base_1:inject 1:6:r0:shfl@base_5:inject 2:9:r0:mulhi@base_8:lossy 3:10:r1:load@base_9:inject 4:12:r6:mul@base_7:lossy 5:18:r4:rotl@base_15:bijective 6:34:r3:mulhi@base_24:lossy 7:35:r0:sub@base_28:inject 8:36:r6:rotr@base_33:bijective 9:40:r5:add@base_39:inject 10:41:r4:mul@base_31:lossy 11:52:r7:mul@base_51:lossy 12:53:r6:xor@base_43:inject 13:54:r2:mad@base_50:inject 14:59:r0:load@base_52:inject 15:63:r4:rotl@base_60:bijective +igneum-ca3-v4-uniform/389 ac4122370ff8721d 0 0:2:1 1:2:2 2:0:0 3:1:1 4:0:0 5:0:0 6:2:0 7:0:0 8:1:1 9:0:0 10:1:1 11:0:0 12:1:1 13:0:0 14:1:1 15:2:2 5 0 0 3 2 0:2:r6:xor@base_0:inject 1:12:r1:mulhi@base_9:lossy 2:14:r0:mad@base_10:inject 3:22:r4:mulhi@base_19:lossy 4:23:r3:load@base_22:inject 5:25:r7:mul@base_21:lossy 6:29:r5:add@base_26:inject 7:35:r0:mul@base_33:lossy 8:41:r4:sub@base_36:inject 9:44:r2:mul@base_42:lossy 10:48:r4:add@base_46:inject 11:49:r6:load@base_48:inject 12:53:r4:load@base_49:inject 13:55:r7:rotr@base_40:bijective 14:56:r3:add@base_50:inject 15:59:r2:load@base_56:inject +igneum-ca3-v4-uniform/390 06b0019bac115fe4 0 0:2:0 1:1:0 2:2:1 3:1:1 4:2:0 5:0:0 6:2:2 7:0:0 8:1:1 9:0:0 10:2:2 11:0:0 12:2:2 13:0:0 14:0:0 15:2:2 3 1 0 1 1 0:2:r4:add@base_0:inject 1:4:r6:rotl@base_3:bijective 2:8:r7:load@base_4:inject 3:13:r2:add@base_10:inject 4:14:r3:rotl@base_9:bijective 5:16:r6:load@base_13:inject 6:21:r5:shfl@base_15:inject 7:22:r7:xor@base_20:inject 8:23:r3:load@base_22:inject 9:29:r7:or@base_26:lossy 10:37:r0:rotl@base_30:bijective 11:47:r3:xor@base_41:inject 12:50:r7:mul@base_38:lossy 13:52:r1:shfl@base_42:inject 14:57:r2:mulhi@base_48:lossy 15:59:r3:mad@base_55:inject +igneum-ca3-v4-uniform/391 8985d0b207b40043 0 0:1:1 1:1:0 2:1:1 3:2:0 4:1:1 5:0:0 6:2:0 7:1:0 8:2:1 9:2:2 10:2:2 11:2:2 12:1:1 13:0:0 14:2:0 15:2:3 5 1 0 4 0 0:1:r2:add@base_0:inject 1:3:r0:shfl@base_2:inject 2:4:r3:load@base_3:inject 3:11:r6:mul@base_10:lossy 4:15:r5:load@base_11:inject 5:16:r6:load@base_15:inject 6:21:r2:or@base_14:lossy 7:22:r3:mul@base_6:lossy 8:23:r6:load@base_22:inject 9:27:r5:mul@base_26:lossy 10:40:r1:xor@base_31:inject 11:54:r1:mad@base_46:inject 12:55:r6:mul@base_47:lossy 13:56:r0:load@base_54:inject 14:61:r3:add@base_53:inject 15:62:r5:rotr@base_52:bijective +igneum-ca3-v4-uniform/392 a567fa91178c2d7c 0 0:2:1 1:2:2 2:0:0 3:1:0 4:2:0 5:0:0 6:0:0 7:0:0 8:1:0 9:0:0 10:2:3 11:2:2 12:1:1 13:1:0 14:1:0 15:0:0 5 0 0 3 2 0:5:r0:shfl@base_2:inject 1:16:r4:rotr@base_10:bijective 2:23:r1:rotr@base_14:bijective 3:30:r0:rotl@base_25:bijective 4:33:r3:mulhi@base_28:lossy 5:34:r5:load@base_30:inject 6:36:r6:load@base_33:inject 7:37:r4:mul@base_31:lossy 8:38:r3:mul@base_35:lossy 9:39:r0:load@base_37:inject 10:43:r2:add@base_41:inject 11:53:r3:mad@base_46:inject 12:54:r1:load@base_53:inject 13:57:r7:mad@base_50:inject 14:59:r4:mulhi@base_56:lossy 15:63:r5:mul@base_48:lossy +igneum-ca3-v4-uniform/393 f4de1e2b3293e186 0 0:1:0 1:1:0 2:1:1 3:1:1 4:0:0 5:0:0 6:2:1 7:1:0 8:0:0 9:0:0 10:2:1 11:1:0 12:0:0 13:1:1 14:2:0 15:1:1 2 0 0 2 0 0:7:r5:xor@base_0:inject 1:10:r7:load@base_7:inject 2:11:r0:sub@base_4:inject 3:14:r3:xor@base_12:inject 4:19:r7:sub@base_17:inject 5:24:r6:xor@base_23:inject 6:30:r4:mul@base_26:lossy 7:32:r7:shfl@base_31:inject 8:35:r2:rotl@base_27:bijective 9:38:r1:add@base_33:inject 10:41:r3:mul@base_39:lossy 11:54:r1:sub@base_50:inject 12:55:r7:xor@base_53:inject 13:60:r6:load@base_54:inject 14:62:r1:rotr@base_57:bijective 15:63:r0:rotl@base_51:bijective +igneum-ca3-v4-uniform/394 d5fe038280ad7043 0 0:2:0 1:2:0 2:2:0 3:2:0 4:2:2 5:1:1 6:0:0 7:1:0 8:0:0 9:1:1 10:0:0 11:2:2 12:2:0 13:0:0 14:2:3 15:1:1 4 1 0 2 1 0:2:r2:mad@base_0:inject 1:6:r7:mul@base_4:lossy 2:8:r1:mad@base_5:inject 3:10:r7:load@base_8:inject 4:16:r0:sub@base_11:inject 5:23:r4:xor@base_19:inject 6:24:r2:xor@base_20:inject 7:25:r3:add@base_17:inject 8:32:r5:xor@base_28:inject 9:34:r2:mulhi@base_33:lossy 10:41:r3:mul@base_30:lossy 11:55:r5:rotr@base_54:bijective 12:57:r1:rotl@base_45:bijective 13:58:r3:shfl@base_50:inject 14:61:r1:or@base_59:lossy 15:62:r2:load@base_58:inject +igneum-ca3-v4-uniform/395 2cb75d4120ee4bdd 0 0:1:1 1:2:1 2:1:0 3:0:0 4:2:0 5:1:1 6:2:0 7:0:0 8:2:3 9:2:0 10:0:0 11:0:0 12:1:1 13:0:0 14:1:0 15:1:0 3 0 0 2 1 0:1:r0:mad@base_0:inject 1:2:r2:load@base_1:inject 2:3:r0:load@base_2:inject 3:11:r6:mul@base_5:lossy 4:12:r4:mad@base_10:inject 5:15:r0:add@base_14:inject 6:23:r3:load@base_11:inject 7:24:r5:rotr@base_18:bijective 8:30:r7:xor@base_29:inject 9:37:r7:mulhi@base_34:lossy 10:39:r0:add@base_33:inject 11:52:r3:mad@base_48:inject 12:53:r5:shfl@base_50:inject 13:54:r2:mul@base_28:lossy 14:57:r7:mad@base_55:inject 15:62:r3:add@base_58:inject +igneum-ca3-v4-uniform/396 3749dc686967d321 0 0:1:1 1:1:0 2:2:2 3:0:0 4:0:0 5:2:1 6:0:0 7:1:1 8:0:0 9:2:1 10:2:0 11:0:0 12:2:2 13:0:0 14:2:2 15:0:0 6 1 0 2 3 0:1:r5:xor@base_0:inject 1:3:r7:rotl@base_2:bijective 2:11:r7:add@base_10:inject 3:18:r4:mulhi@base_13:lossy 4:19:r5:load@base_11:inject 5:20:r0:load@base_19:inject 6:31:r0:mulhi@base_25:lossy 7:36:r4:mul@base_34:lossy 8:37:r5:add@base_35:inject 9:44:r3:load@base_36:inject 10:47:r5:or@base_41:lossy 11:49:r0:load@base_44:inject 12:56:r6:mulhi@base_43:lossy 13:59:r0:add@base_53:inject 14:62:r1:mul@base_54:lossy 15:63:r5:sub@base_61:inject +igneum-ca3-v4-uniform/397 33fade550f148c13 0 0:0:0 1:0:0 2:1:1 3:1:0 4:0:0 5:1:0 6:1:1 7:0:0 8:1:0 9:1:1 10:2:3 11:2:2 12:0:0 13:0:0 14:1:1 15:1:0 1 0 0 0 1 0:4:r5:mad@base_3:inject 1:8:r2:xor@base_6:inject 2:10:r1:mulhi@base_2:lossy 3:18:r4:sub@base_16:inject 4:22:r7:load@base_10:inject 5:23:r5:add@base_21:inject 6:24:r0:load@base_18:inject 7:31:r1:xor@base_25:inject 8:32:r6:shfl@base_30:inject 9:33:r4:add@base_29:inject 10:45:r4:shfl@base_41:inject 11:49:r5:load@base_33:inject 12:52:r0:rotr@base_37:bijective 13:60:r4:shfl@base_58:inject 14:62:r1:shfl@base_61:inject 15:63:r5:rotl@base_56:bijective +igneum-ca3-v4-uniform/398 2ff586b6590aebd8 0 0:2:1 1:1:0 2:0:0 3:2:0 4:2:1 5:0:0 6:1:0 7:1:1 8:0:0 9:2:3 10:2:1 11:2:2 12:2:0 13:1:0 14:0:0 15:2:1 1 0 0 0 1 0:2:r2:rotr@base_0:bijective 1:3:r7:load@base_2:inject 2:6:r4:rotl@base_5:bijective 3:7:r2:load@base_3:inject 4:11:r3:load@base_6:inject 5:16:r1:load@base_7:inject 6:24:r4:add@base_22:inject 7:25:r7:load@base_16:inject 8:31:r5:mad@base_27:inject 9:32:r3:mad@base_28:inject 10:36:r1:rotl@base_34:bijective 11:38:r7:xor@base_37:inject 12:47:r4:load@base_31:inject 13:49:r7:mulhi@base_46:lossy 14:55:r3:add@base_41:inject 15:61:r7:xor@base_53:inject +igneum-ca3-v4-uniform/399 b2de98e212fec1ab 0 0:1:1 1:0:0 2:2:0 3:2:1 4:2:2 5:0:0 6:0:0 7:1:1 8:2:0 9:2:1 10:1:1 11:1:0 12:1:1 13:2:1 14:0:0 15:2:0 3 1 0 2 0 0:1:r7:or@base_0:lossy 1:8:r1:xor@base_6:inject 2:11:r0:mad@base_9:inject 3:14:r4:load@base_11:inject 4:20:r6:load@base_14:inject 5:27:r6:xor@base_21:inject 6:29:r2:mul@base_26:lossy 7:31:r7:load@base_29:inject 8:33:r4:load@base_27:inject 9:35:r3:rotl@base_4:bijective 10:36:r0:xor@base_34:inject 11:41:r5:mul@base_39:lossy 12:43:r6:shfl@base_42:inject 13:50:r0:shfl@base_47:inject 14:51:r1:add@base_46:inject 15:55:r5:load@base_51:inject +igneum-ca3-v4-uniform/400 a3a001be7f5a3fec 0 0:1:0 1:2:3 2:2:3 3:1:0 4:1:1 5:2:0 6:0:0 7:1:0 8:1:0 9:1:0 10:1:0 11:1:0 12:2:1 13:2:1 14:2:2 15:0:0 5 3 1 1 1 0:2:r6:xor@base_1:inject 1:14:r7:xor@base_11:inject 2:15:r6:shfl@base_4:inject 3:19:r5:or@base_16:lossy 4:22:r7:or@base_18:lossy 5:26:r5:or@base_21:lossy-or-chain1 6:27:r0:mad@base_25:inject 7:33:r3:sub@base_31:inject 8:34:r1:load@base_19:inject 9:39:r6:mulhi@base_35:lossy 10:44:r0:sub@base_32:inject 11:46:r2:load@base_33:inject 12:48:r4:add@base_45:inject 13:54:r5:mul@base_49:lossy 14:55:r7:rotr@base_53:bijective 15:57:r5:load@base_55:inject +igneum-ca3-v4-uniform/401 be74fa3e4218c64b 0 0:2:1 1:1:0 2:2:1 3:1:0 4:1:0 5:0:0 6:2:1 7:0:0 8:0:0 9:2:2 10:2:0 11:1:0 12:1:1 13:0:0 14:2:0 15:2:3 2 1 0 1 0 0:1:r6:mul@shadow_254:lossy 1:9:r6:sub@base_7:inject 2:10:r1:mad@base_6:inject 3:15:r7:load@base_9:inject 4:17:r6:rotl@base_14:bijective 5:19:r5:shfl@base_4:inject 6:21:r3:load@base_19:inject 7:34:r2:or@base_22:lossy 8:36:r1:shfl@base_31:inject 9:37:r7:xor@base_18:inject 10:39:r4:add@base_24:inject 11:45:r7:xor@base_44:inject 12:50:r6:load@base_45:inject 13:53:r2:mad@base_48:inject 14:55:r1:mad@base_46:inject 15:58:r7:add@base_57:inject +igneum-ca3-v4-uniform/402 4d06698449081a32 0 0:2:3 1:1:1 2:2:2 3:0:0 4:2:2 5:1:0 6:2:1 7:2:3 8:1:1 9:0:0 10:0:0 11:2:1 12:0:0 13:1:0 14:0:0 15:2:2 1 1 0 0 0 0:2:r1:or@base_1:lossy 1:9:r7:add@base_7:inject 2:10:r2:load@base_9:inject 3:11:r5:rotl@base_6:bijective 4:13:r6:xor@base_0:inject 5:14:r7:load@base_11:inject 6:15:r1:load@base_14:inject 7:16:r2:load@base_13:inject 8:24:r7:mad@base_21:inject 9:26:r3:load@base_24:inject 10:27:r4:shfl@base_25:inject 11:31:r7:load@base_27:inject 12:40:r1:sub@base_39:inject 13:44:r6:load@base_26:inject 14:45:r2:xor@base_32:inject 15:53:r2:mad@base_52:inject +igneum-ca3-v4-uniform/403 8f8a7d391abb5f4e 0 0:2:0 1:0:0 2:0:0 3:1:0 4:0:0 5:1:0 6:0:0 7:0:0 8:2:3 9:1:1 10:0:0 11:1:1 12:0:0 13:2:1 14:2:1 15:1:0 4 2 0 1 1 0:3:r0:rotr@base_1:bijective 1:20:r5:sub@base_6:inject 2:22:r4:add@base_18:inject 3:25:r0:load@base_20:inject 4:29:r3:mulhi@base_19:lossy 5:38:r5:mul@base_37:lossy 6:40:r2:rotr@base_39:bijective 7:42:r4:load@base_40:inject 8:46:r1:add@base_45:inject 9:48:r6:load@base_42:inject 10:50:r7:rotr@base_49:bijective 11:53:r4:or@base_51:lossy 12:57:r2:load@base_46:inject 13:60:r7:or@base_55:lossy 14:61:r0:load@base_60:inject 15:62:r6:shfl@base_59:inject +igneum-ca3-v4-uniform/404 27aecca88865f547 0 0:2:1 1:0:0 2:0:0 3:1:0 4:2:3 5:1:1 6:1:1 7:2:0 8:1:0 9:2:0 10:2:2 11:1:0 12:2:2 13:0:0 14:2:2 15:0:0 4 1 0 2 1 0:1:r3:shfl@base_0:inject 1:2:r4:load@base_1:inject 2:5:r7:shfl@base_4:inject 3:10:r6:load@base_5:inject 4:11:r2:load@base_10:inject 5:12:r4:add@base_6:inject 6:13:r0:load@base_12:inject 7:20:r5:rotr@base_15:bijective 8:30:r5:add@base_27:inject 9:38:r3:mul@base_35:lossy 10:40:r7:or@base_17:lossy 11:43:r2:add@base_26:inject 12:46:r6:mulhi@base_31:lossy 13:47:r5:add@base_42:inject 14:55:r6:xor@base_52:inject 15:59:r3:mul@base_48:lossy +igneum-ca3-v4-uniform/405 12bf66d1fcb8fc25 0 0:1:1 1:0:0 2:0:0 3:0:0 4:1:0 5:2:1 6:2:0 7:2:2 8:1:1 9:2:3 10:1:1 11:1:0 12:2:1 13:2:2 14:0:0 15:2:1 5 2 0 2 1 0:10:r0:mad@base_9:inject 1:14:r2:add@base_5:inject 2:21:r6:mul@base_20:lossy 3:35:r2:xor@base_18:inject 4:38:r1:mul@base_37:lossy 5:39:r4:load@base_14:inject 6:40:r7:load@base_38:inject 7:42:r0:mulhi@base_30:lossy 8:43:r1:load@base_39:inject 9:44:r6:or@base_33:lossy 10:45:r3:add@base_36:inject 11:47:r2:shfl@base_41:inject 12:48:r5:load@base_43:inject 13:50:r1:load@base_45:inject 14:57:r3:or@base_55:lossy 15:58:r6:add@base_51:inject +igneum-ca3-v4-uniform/406 761a2965854e61d4 0 0:0:0 1:0:0 2:0:0 3:0:0 4:0:0 5:0:0 6:0:0 7:2:1 8:0:0 9:2:2 10:0:0 11:1:1 12:0:0 13:2:3 14:0:0 15:0:0 2 0 0 2 0 0:2:r2:xor@base_1:inject 1:4:r1:add@base_3:inject 2:9:r5:xor@base_5:inject 3:10:r3:mad@base_7:inject 4:13:r0:rotr@base_11:bijective 5:18:r7:rotr@base_14:bijective 6:22:r5:xor@base_21:inject 7:31:r1:mad@base_23:inject 8:34:r0:mul@base_33:lossy 9:45:r6:xor@base_42:inject 10:47:r4:rotr@base_39:bijective 11:53:r2:rotr@base_50:bijective 12:54:r3:add@base_32:inject 13:55:r4:load@base_53:inject 14:59:r3:mul@base_58:lossy 15:61:r0:load@base_54:inject +igneum-ca3-v4-uniform/407 0f6c69c33df2b6a9 0 0:2:0 1:2:1 2:2:3 3:1:0 4:0:0 5:0:0 6:1:1 7:2:2 8:1:0 9:0:0 10:0:0 11:2:2 12:1:0 13:1:0 14:2:1 15:0:0 3 1 0 1 1 0:6:r0:xor@base_4:inject 1:8:r5:add@base_7:inject 2:15:r0:rotr@base_12:bijective 3:21:r6:load@base_15:inject 4:23:r7:add@base_16:inject 5:26:r3:shfl@base_19:inject 6:35:r0:mul@base_29:lossy 7:41:r7:load@base_35:inject 8:42:r5:or@base_33:lossy 9:45:r3:rotr@base_43:bijective 10:48:r3:mulhi@base_47:lossy 11:51:r4:rotr@base_46:bijective 12:58:r7:rotr@base_49:bijective 13:59:r0:load@base_58:inject 14:60:r3:add@base_53:inject 15:63:r2:load@base_60:inject +igneum-ca3-v4-uniform/408 421b79fdff85aab2 0 0:0:0 1:1:0 2:2:1 3:1:0 4:1:1 5:2:0 6:0:0 7:1:0 8:0:0 9:0:0 10:0:0 11:2:0 12:0:0 13:1:0 14:1:1 15:1:0 3 0 0 1 2 0:4:r0:rotr@base_3:bijective 1:6:r1:load@base_4:inject 2:8:r7:mad@base_0:inject 3:9:r4:load@base_8:inject 4:16:r6:mad@base_13:inject 5:22:r4:add@base_15:inject 6:25:r5:load@base_9:inject 7:26:r0:load@base_25:inject 8:27:r3:load@base_26:inject 9:37:r6:sub@base_34:inject 10:41:r2:mul@base_24:lossy 11:42:r1:mulhi@base_30:lossy 12:43:r5:mulhi@base_36:lossy 13:47:r7:rotl@base_28:bijective 14:52:r1:load@base_47:inject 15:55:r0:shfl@base_49:inject +igneum-ca3-v4-uniform/409 83321a2336b9e6bf 1 0:0:0 1:2:3 2:2:0 3:0:0 4:2:0 5:2:1 6:2:3 7:2:1 8:2:0 9:0:0 10:2:3 11:2:3 12:2:3 13:2:3 14:1:1 15:1:1 6 2 0 2 2 0:1:r7:add@base_0:inject 1:3:r1:mad@base_2:inject 2:4:r4:load@base_3:inject 3:7:r1:mul@base_5:lossy 4:12:r7:or@base_6:lossy 5:16:r3:sub@base_11:inject 6:23:r3:mulhi@base_19:lossy 7:35:r2:sub@base_25:inject 8:36:r0:add@base_28:inject 9:42:r4:xor@base_31:inject 10:47:r2:shfl@base_46:inject 11:49:r5:or@base_48:lossy 12:53:r6:mulhi@base_40:lossy 13:54:r3:shfl@base_44:inject 14:60:r2:mul@base_55:lossy 15:62:r1:load@base_53:inject +igneum-ca3-v4-uniform/410 9104222076b1d96f 0 0:1:1 1:1:0 2:1:0 3:1:0 4:0:0 5:0:0 6:1:0 7:0:0 8:1:0 9:0:0 10:2:1 11:2:0 12:2:2 13:2:3 14:1:0 15:0:0 2 0 0 1 1 0:1:r7:xor@base_0:inject 1:2:r4:load@base_1:inject 2:9:r2:shfl@base_6:inject 3:10:r4:mulhi@base_3:lossy 4:18:r5:load@base_9:inject 5:19:r0:load@base_10:inject 6:20:r6:load@base_18:inject 7:26:r7:shfl@base_21:inject 8:27:r3:load@base_26:inject 9:28:r2:sub@base_12:inject 10:32:r7:mul@base_30:lossy 11:35:r6:rotr@base_33:bijective 12:39:r1:xor@base_37:inject 13:48:r0:add@base_40:inject 14:51:r2:rotr@base_38:bijective 15:63:r2:add@base_59:inject +igneum-ca3-v4-uniform/411 04f0b9c7a8e66b10 0 0:0:0 1:0:0 2:2:3 3:0:0 4:0:0 5:2:2 6:0:0 7:1:1 8:2:0 9:2:3 10:0:0 11:1:0 12:0:0 13:0:0 14:2:3 15:0:0 2 1 0 1 0 0:1:r7:sub@base_0:inject 1:2:r2:shfl@shadow_251:inject 2:10:r4:xor@base_9:inject 3:12:r1:load@base_2:inject 4:14:r3:rotl@base_8:bijective 5:21:r2:load@base_12:inject 6:25:r4:shfl@base_24:inject 7:26:r6:load@base_21:inject 8:28:r1:or@base_22:lossy 9:35:r3:load@base_26:inject 10:40:r3:mad@base_39:inject 11:41:r4:xor@base_31:inject 12:45:r1:shfl@base_37:inject 13:58:r5:mul@base_54:lossy 14:59:r4:rotr@base_53:bijective 15:61:r6:shfl@base_29:inject +igneum-ca3-v4-uniform/412 6d1ba538dffbc8d9 0 0:2:0 1:0:0 2:0:0 3:0:0 4:0:0 5:1:1 6:2:1 7:0:0 8:0:0 9:1:1 10:0:0 11:1:1 12:2:3 13:0:0 14:2:1 15:0:0 2 0 0 0 2 0:1:r4:shfl@base_0:inject 1:5:r4:xor@base_4:inject 2:31:r6:mad@base_9:inject 3:36:r3:add@base_30:inject 4:37:r0:sub@base_35:inject 5:38:r7:rotl@base_18:bijective 6:40:r4:mad@base_39:inject 7:43:r2:load@base_38:inject 8:47:r3:xor@base_44:inject 9:50:r1:load@base_40:inject 10:53:r7:load@base_47:inject 11:54:r3:load@base_53:inject 12:55:r5:mulhi@base_52:lossy 13:59:r7:rotl@base_56:bijective 14:62:r0:mad@base_58:inject 15:63:r7:mulhi@base_60:lossy +igneum-ca3-v4-uniform/413 ae1ba41e53550727 1 0:0:0 1:1:1 2:0:0 3:2:0 4:1:1 5:1:0 6:2:2 7:1:0 8:2:0 9:0:0 10:0:0 11:0:0 12:2:2 13:0:0 14:2:1 15:0:0 3 0 0 1 2 0:4:r1:mulhi@base_1:lossy 1:6:r4:mad@base_5:inject 2:9:r5:load@base_4:inject 3:12:r7:load@base_9:inject 4:18:r2:load@base_12:inject 5:19:r6:load@base_18:inject 6:22:r2:mulhi@base_21:lossy 7:29:r7:rotr@base_14:bijective 8:33:r4:xor@base_26:inject 9:37:r3:mul@base_34:lossy 10:38:r7:sub@base_35:inject 11:39:r1:load@base_29:inject 12:43:r5:mad@base_31:inject 13:47:r2:xor@base_40:inject 14:56:r3:load@base_38:inject 15:61:r4:mad@base_58:inject +igneum-ca3-v4-uniform/414 eb11aac7bfa2d6c5 0 0:0:0 1:0:0 2:0:0 3:1:0 4:1:1 5:0:0 6:2:1 7:0:0 8:1:1 9:0:0 10:1:0 11:2:1 12:2:0 13:2:1 14:1:1 15:1:0 4 0 0 2 2 0:2:r0:xor@base_1:inject 1:9:r6:mul@base_8:lossy 2:12:r4:sub@base_10:inject 3:15:r0:mul@base_3:lossy 4:16:r2:load@base_12:inject 5:24:r7:mulhi@base_20:lossy 6:28:r1:mad@base_26:inject 7:29:r7:add@base_25:inject 8:36:r5:rotl@base_31:bijective 9:40:r2:load@base_36:inject 10:41:r6:rotr@base_23:bijective 11:48:r4:load@base_41:inject 12:53:r2:sub@base_45:inject 13:56:r4:rotl@base_50:bijective 14:57:r1:xor@base_55:inject 15:63:r5:mulhi@base_59:lossy +igneum-ca3-v4-uniform/415 f5ee5e00a185e53a 0 0:0:0 1:2:3 2:2:1 3:0:0 4:2:0 5:1:1 6:2:1 7:2:0 8:0:0 9:2:2 10:1:1 11:2:3 12:0:0 13:0:0 14:0:0 15:1:1 2 1 0 0 1 0:2:r7:mad@base_0:inject 1:11:r7:mad@base_4:inject 2:15:r3:xor@base_10:inject 3:16:r2:load@base_15:inject 4:22:r5:shfl@base_18:inject 5:24:r2:or@base_19:lossy 6:25:r0:load@base_24:inject 7:30:r5:xor@base_28:inject 8:32:r0:mad@base_29:inject 9:38:r6:load@base_32:inject 10:48:r0:mad@base_41:inject 11:50:r6:mulhi@base_45:lossy 12:53:r4:mad@base_52:inject 13:57:r2:xor@base_56:inject 14:59:r0:load@base_53:inject 15:63:r0:xor@base_62:inject +igneum-ca3-v4-uniform/416 6adfc9548267b7b0 0 0:2:2 1:1:1 2:2:2 3:0:0 4:2:1 5:1:1 6:1:0 7:0:0 8:0:0 9:0:0 10:1:0 11:0:0 12:2:3 13:1:1 14:1:0 15:0:0 1 0 0 1 0 0:4:r6:add@base_3:inject 1:8:r7:shfl@base_7:inject 2:20:r5:xor@base_11:inject 3:21:r1:load@base_20:inject 4:24:r6:shfl@base_10:inject 5:30:r0:add@base_12:inject 6:34:r5:mul@base_22:lossy 7:35:r0:xor@base_31:inject 8:37:r4:load@base_34:inject 9:40:r3:mad@base_27:inject 10:41:r7:load@base_37:inject 11:55:r6:rotr@base_46:bijective 12:56:r1:xor@base_53:inject 13:59:r4:mad@base_57:inject 14:60:r2:load@base_56:inject 15:62:r0:sub@base_58:inject +igneum-ca3-v4-uniform/417 fbd304e0c5745273 0 0:2:1 1:1:0 2:1:0 3:0:0 4:0:0 5:2:0 6:2:0 7:0:0 8:2:3 9:0:0 10:2:2 11:2:2 12:1:1 13:1:0 14:1:1 15:1:1 1 0 0 1 0 0:10:r2:sub@base_4:inject 1:11:r6:load@base_10:inject 2:14:r7:mul@base_8:lossy 3:16:r5:shfl@base_7:inject 4:18:r4:load@base_16:inject 5:25:r6:add@base_15:inject 6:32:r4:add@base_31:inject 7:34:r5:add@base_23:inject 8:38:r2:sub@base_29:inject 9:40:r3:rotr@base_37:bijective 10:41:r6:shfl@base_30:inject 11:43:r1:load@base_41:inject 12:49:r7:load@base_38:inject 13:54:r0:shfl@base_47:inject 14:55:r5:load@base_54:inject 15:59:r3:sub@base_52:inject +igneum-ca3-v4-uniform/418 cb76edf780c0a988 0 0:1:1 1:2:2 2:1:0 3:0:0 4:2:1 5:2:3 6:1:1 7:2:2 8:1:1 9:1:1 10:2:3 11:0:0 12:0:0 13:2:2 14:2:1 15:0:0 2 0 0 1 1 0:2:r4:sub@base_1:inject 1:7:r0:load@base_2:inject 2:8:r3:shfl@base_6:inject 3:11:r2:mulhi@base_4:lossy 4:17:r1:xor@base_5:inject 5:18:r7:sub@base_9:inject 6:21:r1:mad@base_20:inject 7:23:r1:mul@base_22:lossy 8:36:r4:xor@base_31:inject 9:39:r5:rotl@base_38:bijective 10:40:r6:mad@base_34:inject 11:43:r7:xor@base_42:inject 12:47:r1:xor@base_44:inject 13:48:r0:xor@base_45:inject 14:49:r3:load@base_47:inject 15:56:r4:rotl@base_52:bijective +igneum-ca3-v4-uniform/419 f4925e6abac85b9b 0 0:2:3 1:1:1 2:0:0 3:0:0 4:0:0 5:2:0 6:1:1 7:1:0 8:0:0 9:2:3 10:2:1 11:2:3 12:1:1 13:1:0 14:1:0 15:1:1 5 0 0 1 4 0:4:r6:rotl@base_0:bijective 1:9:r6:sub@base_8:inject 2:24:r3:rotl@base_22:bijective 3:25:r1:xor@base_11:inject 4:30:r6:mul@base_16:lossy 5:34:r5:mulhi@base_33:lossy 6:36:r4:load@base_25:inject 7:39:r6:load@base_36:inject 8:42:r7:xor@base_35:inject 9:44:r3:mad@base_37:inject 10:46:r5:load@base_44:inject 11:47:r2:mulhi@base_31:lossy 12:48:r0:mulhi@base_43:lossy 13:52:r3:mad@base_51:inject 14:59:r2:shfl@base_53:inject 15:62:r7:mulhi@base_61:lossy +igneum-ca3-v4-uniform/420 cccf5f47616c751e 0 0:2:3 1:2:2 2:2:2 3:0:0 4:2:1 5:1:0 6:2:0 7:0:0 8:2:3 9:1:1 10:0:0 11:1:1 12:2:3 13:2:3 14:1:1 15:1:1 4 1 0 3 0 0:11:r3:add@base_8:inject 1:12:r4:xor@base_9:inject 2:13:r2:xor@base_7:inject 3:14:r5:mul@base_10:lossy 4:17:r1:mul@base_15:lossy 5:18:r6:load@base_14:inject 6:21:r4:sub@base_19:inject 7:23:r0:add@base_20:inject 8:24:r1:load@base_23:inject 9:27:r7:shfl@base_26:inject 10:31:r5:load@base_24:inject 11:48:r0:add@base_44:inject 12:50:r3:or@base_45:lossy 13:52:r5:load@base_50:inject 14:59:r2:sub@base_54:inject 15:62:r1:mul@base_60:lossy +igneum-ca3-v4-uniform/421 4cf1671e61c8ca92 0 0:2:1 1:0:0 2:0:0 3:0:0 4:1:0 5:1:1 6:2:3 7:2:0 8:1:1 9:0:0 10:2:0 11:1:1 12:2:1 13:0:0 14:1:0 15:2:3 4 1 0 2 1 0:3:r6:rotr@base_0:bijective 1:5:r1:mul@base_2:lossy 2:6:r2:load@base_5:inject 3:8:r4:or@base_7:lossy 4:9:r5:load@base_8:inject 5:14:r1:load@base_9:inject 6:16:r3:add@base_15:inject 7:22:r7:rotl@base_20:bijective 8:23:r1:load@base_22:inject 9:29:r0:load@base_23:inject 10:31:r2:load@base_16:inject 11:41:r2:add@base_40:inject 12:46:r3:sub@base_27:inject 13:47:r2:shfl@base_45:inject 14:51:r6:mulhi@base_43:lossy 15:54:r0:mul@base_53:lossy +igneum-ca3-v4-uniform/422 0ed961be1e135940 0 0:2:1 1:2:3 2:2:2 3:0:0 4:1:0 5:2:2 6:2:3 7:1:0 8:1:1 9:2:1 10:2:2 11:1:1 12:1:1 13:0:0 14:0:0 15:1:0 2 0 0 2 0 0:3:r1:xor@base_1:inject 1:8:r6:mul@base_0:lossy 2:13:r7:xor@base_7:inject 3:14:r5:sub@base_12:inject 4:18:r1:load@base_8:inject 5:19:r2:load@base_13:inject 6:27:r4:rotr@base_26:bijective 7:30:r3:xor@base_23:inject 8:32:r4:rotr@base_29:bijective 9:36:r2:mul@base_33:lossy 10:37:r1:load@base_32:inject 11:46:r5:mad@base_43:inject 12:55:r7:rotl@base_48:bijective 13:59:r4:xor@base_54:inject 14:61:r1:add@base_60:inject 15:63:r0:add@base_45:inject +igneum-ca3-v4-uniform/423 b9a2ce08e982c255 0 0:2:0 1:1:0 2:1:0 3:0:0 4:1:0 5:2:1 6:1:1 7:1:0 8:1:1 9:1:0 10:1:0 11:1:1 12:1:1 13:2:1 14:0:0 15:1:1 1 0 0 1 0 0:1:r1:add@base_0:inject 1:3:r6:load@base_1:inject 2:5:r0:load@base_3:inject 3:8:r3:rotl@base_4:bijective 4:9:r4:xor@base_7:inject 5:13:r4:rotl@base_11:bijective 6:15:r7:xor@base_14:inject 7:16:r1:load@base_5:inject 8:18:r0:add@base_17:inject 9:19:r5:load@base_18:inject 10:33:r3:load@base_19:inject 11:34:r4:rotl@base_32:bijective 12:37:r1:load@base_33:inject 13:40:r4:mad@base_35:inject 14:42:r6:rotl@base_30:bijective 15:47:r6:mul@base_45:lossy +igneum-ca3-v4-uniform/424 c3199c960fe70794 0 0:1:1 1:0:0 2:2:0 3:2:2 4:2:0 5:2:0 6:1:0 7:0:0 8:0:0 9:1:0 10:2:1 11:2:0 12:0:0 13:0:0 14:0:0 15:1:1 2 1 0 1 0 0:2:r2:shfl@base_0:inject 1:5:r4:add@base_3:inject 2:11:r3:load@base_2:inject 3:12:r1:xor@base_10:inject 4:17:r6:or@base_14:lossy 5:18:r0:xor@base_16:inject 6:24:r2:mul@base_21:lossy 7:27:r1:load@base_24:inject 8:34:r3:mad@base_31:inject 9:42:r7:shfl@base_29:inject 10:43:r5:add@base_35:inject 11:47:r4:load@base_42:inject 12:49:r0:load@base_47:inject 13:58:r0:rotr@base_50:bijective 14:61:r5:xor@base_55:inject 15:62:r3:load@base_58:inject +igneum-ca3-v4-uniform/425 1348ff6465240bff 0 0:0:0 1:1:1 2:2:1 3:0:0 4:0:0 5:2:1 6:1:1 7:1:0 8:0:0 9:1:1 10:0:0 11:2:2 12:2:1 13:2:2 14:1:0 15:0:0 1 0 0 1 0 0:2:r6:add@base_0:inject 1:5:r6:rotl@base_4:bijective 2:6:r2:shfl@base_3:inject 3:8:r1:load@base_5:inject 4:14:r0:mul@base_13:lossy 5:15:r6:rotr@base_7:bijective 6:17:r3:rotl@base_10:bijective 7:24:r6:rotr@base_23:bijective 8:26:r5:load@base_17:inject 9:33:r7:load@base_24:inject 10:39:r2:shfl@base_31:inject 11:53:r0:add@base_47:inject 12:56:r5:rotl@base_46:bijective 13:57:r2:xor@base_54:inject 14:59:r5:load@base_57:inject 15:60:r7:load@base_59:inject +igneum-ca3-v4-uniform/426 5c736cfa03aa719d 0 0:0:0 1:0:0 2:2:2 3:0:0 4:1:0 5:0:0 6:1:1 7:2:0 8:1:0 9:0:0 10:2:3 11:0:0 12:1:1 13:2:0 14:1:1 15:0:0 0 0 0 0 0 0:4:r7:xor@base_3:inject 1:7:r6:xor@base_6:inject 2:8:r5:load@base_4:inject 3:9:r1:load@base_8:inject 4:10:r7:load@base_7:inject 5:14:r4:rotl@base_12:bijective 6:19:r3:rotr@base_2:bijective 7:23:r5:xor@base_15:inject 8:27:r5:rotl@base_26:bijective 9:32:r4:rotr@base_30:bijective 10:46:r2:xor@base_41:inject 11:49:r6:shfl@base_47:inject 12:51:r0:rotl@base_38:bijective 13:52:r7:add@base_50:inject 14:53:r1:load@base_49:inject 15:57:r3:sub@base_42:inject +igneum-ca3-v4-uniform/427 f36fc58e295dc7df 0 0:2:0 1:2:3 2:2:3 3:0:0 4:0:0 5:1:0 6:2:1 7:2:2 8:2:1 9:0:0 10:0:0 11:0:0 12:1:0 13:1:1 14:1:1 15:1:1 2 0 0 1 1 0:1:r1:add@base_0:inject 1:2:r5:load@base_1:inject 2:3:r0:load@base_2:inject 3:7:r4:rotr@base_6:bijective 4:10:r3:load@base_7:inject 5:16:r4:xor@base_13:inject 6:28:r1:sub@base_17:inject 7:29:r4:mul@base_22:lossy 8:32:r2:rotr@base_31:bijective 9:37:r6:mad@base_34:inject 10:40:r0:load@base_16:inject 11:41:r5:add@base_38:inject 12:44:r5:mulhi@base_43:lossy 13:46:r0:load@base_44:inject 14:51:r7:add@base_45:inject 15:56:r3:load@base_46:inject +igneum-ca3-v4-uniform/428 be42660c7c009d4f 0 0:1:1 1:2:2 2:0:0 3:2:2 4:1:1 5:2:2 6:2:0 7:2:0 8:0:0 9:2:2 10:2:2 11:0:0 12:2:1 13:2:1 14:0:0 15:0:0 2 1 0 1 0 0:11:r0:rotl@base_9:bijective 1:19:r6:rotr@base_4:bijective 2:23:r0:add@base_15:inject 3:25:r2:add@base_13:inject 4:26:r1:mad@base_24:inject 5:32:r4:load@base_26:inject 6:35:r5:shfl@base_27:inject 7:40:r1:load@base_35:inject 8:43:r4:load@base_40:inject 9:45:r2:add@base_44:inject 10:47:r3:or@base_36:lossy 11:49:r0:mul@base_46:lossy 12:54:r2:sub@base_50:inject 13:55:r0:load@base_54:inject 14:57:r6:load@base_47:inject 15:59:r3:load@base_57:inject +igneum-ca3-v4-uniform/429 7ab600e314bf1c31 0 0:1:1 1:2:0 2:0:0 3:2:0 4:1:0 5:1:1 6:1:1 7:1:1 8:1:1 9:2:1 10:1:1 11:1:0 12:2:1 13:2:2 14:0:0 15:2:3 2 0 0 0 2 0:11:r5:mulhi@base_9:lossy 1:12:r2:sub@base_5:inject 2:16:r0:rotl@base_13:bijective 3:20:r4:rotr@base_17:bijective 4:24:r0:shfl@base_21:inject 5:30:r1:xor@base_28:inject 6:31:r3:add@base_27:inject 7:32:r6:load@base_30:inject 8:37:r6:add@base_35:inject 9:38:r0:load@base_37:inject 10:44:r7:xor@base_41:inject 11:45:r0:add@base_42:inject 12:51:r1:rotl@base_48:bijective 13:56:r6:mulhi@base_50:lossy 14:59:r1:rotr@base_55:bijective 15:63:r3:load@base_56:inject +igneum-ca3-v4-uniform/430 e9054017fc7cf080 0 0:1:1 1:1:0 2:1:0 3:2:2 4:0:0 5:2:0 6:0:0 7:1:1 8:1:0 9:0:0 10:0:0 11:0:0 12:2:2 13:2:1 14:2:2 15:1:0 3 0 0 1 2 0:4:r5:mulhi@base_3:lossy 1:5:r2:xor@base_2:inject 2:15:r4:rotl@base_12:bijective 3:16:r0:load@base_15:inject 4:24:r2:add@base_14:inject 5:26:r1:xor@base_22:inject 6:27:r7:xor@base_21:inject 7:34:r3:sub@base_23:inject 8:37:r0:load@base_34:inject 9:42:r4:mad@base_25:inject 10:45:r7:mulhi@base_36:lossy 11:49:r1:load@base_45:inject 12:50:r7:add@base_47:inject 13:57:r2:xor@base_56:inject 14:61:r0:mul@base_59:lossy 15:62:r4:load@base_61:inject +igneum-ca3-v4-uniform/431 203cf301bb8bc4fa 0 0:0:0 1:0:0 2:1:0 3:0:0 4:2:3 5:2:0 6:0:0 7:0:0 8:0:0 9:2:0 10:2:0 11:0:0 12:2:3 13:1:0 14:2:2 15:1:1 3 2 1 0 1 0:5:r0:xor@base_1:inject 1:8:r2:rotr@base_6:bijective 2:9:r5:load@base_5:inject 3:10:r4:load@base_9:inject 4:12:r1:or@base_2:lossy-or-chain1 5:17:r6:shfl@base_16:inject 6:27:r4:mulhi@base_25:lossy 7:31:r1:sub@base_30:inject 8:37:r0:or@base_33:lossy 9:38:r4:rotl@base_35:bijective 10:39:r2:rotr@base_34:bijective 11:49:r7:shfl@base_48:inject 12:53:r2:rotr@base_47:bijective 13:54:r7:load@base_53:inject 14:57:r1:shfl@base_50:inject 15:61:r4:mad@base_46:inject +igneum-ca3-v4-uniform/432 e93cfa2f00ead9a3 0 0:2:3 1:2:0 2:1:0 3:0:0 4:2:1 5:1:0 6:1:1 7:0:0 8:1:1 9:0:0 10:2:3 11:2:1 12:0:0 13:1:0 14:2:2 15:2:0 4 2 0 1 1 0:1:r4:sub@base_0:inject 1:3:r5:xor@base_2:inject 2:8:r7:rotr@base_5:bijective 3:9:r3:add@base_7:inject 4:11:r2:or@base_10:lossy 5:16:r4:load@base_8:inject 6:18:r0:shfl@base_17:inject 7:21:r3:or@base_13:lossy 8:24:r7:add@base_22:inject 9:28:r4:mulhi@base_26:lossy 10:32:r2:load@base_18:inject 11:33:r1:shfl@base_30:inject 12:38:r2:xor@base_37:inject 13:41:r1:mul@base_40:lossy 14:59:r1:rotr@base_55:bijective 15:60:r3:rotl@base_49:bijective +igneum-ca3-v4-uniform/433 b4aaa6f1177a3fe4 0 0:0:0 1:2:1 2:0:0 3:2:1 4:2:3 5:2:1 6:2:1 7:1:1 8:1:0 9:1:0 10:0:0 11:1:0 12:0:0 13:1:1 14:0:0 15:1:0 3 0 0 3 0 0:5:r5:xor@base_4:inject 1:9:r7:add@base_6:inject 2:12:r0:load@base_5:inject 3:15:r0:mad@base_14:inject 4:25:r0:shfl@base_23:inject 5:31:r1:shfl@base_29:inject 6:35:r3:sub@base_30:inject 7:36:r6:xor@base_34:inject 8:44:r5:load@base_36:inject 9:47:r3:mul@base_45:lossy 10:48:r7:add@base_18:inject 11:50:r2:mul@base_39:lossy 12:58:r6:load@base_47:inject 13:60:r7:load@base_58:inject 14:61:r4:mul@base_53:lossy 15:62:r5:rotr@base_57:bijective +igneum-ca3-v4-uniform/434 7422c7916804d444 0 0:1:1 1:1:0 2:0:0 3:2:2 4:0:0 5:0:0 6:2:3 7:1:1 8:2:2 9:0:0 10:2:3 11:1:0 12:0:0 13:0:0 14:2:1 15:0:0 5 0 0 2 3 0:4:r1:rotl@base_0:bijective 1:8:r3:shfl@base_5:inject 2:10:r6:load@base_4:inject 3:11:r0:load@base_10:inject 4:23:r5:xor@base_15:inject 5:31:r5:mul@base_30:lossy 6:34:r3:mulhi@base_33:lossy 7:37:r2:add@base_29:inject 8:41:r4:mulhi@base_36:lossy 9:42:r7:sub@base_38:inject 10:47:r1:add@base_46:inject 11:54:r1:rotl@base_50:bijective 12:55:r7:mulhi@base_49:lossy 13:56:r3:mul@base_53:lossy 14:58:r6:load@base_54:inject 15:62:r0:sub@base_60:inject +igneum-ca3-v4-uniform/435 1e6e408ff32c6624 0 0:2:0 1:1:0 2:0:0 3:1:1 4:2:2 5:1:0 6:1:1 7:2:1 8:2:2 9:1:0 10:2:2 11:2:3 12:1:0 13:1:0 14:2:1 15:0:0 2 1 0 0 1 0:2:r4:rotl@base_1:bijective 1:7:r2:or@base_0:lossy 2:9:r4:mulhi@base_8:lossy 3:15:r0:load@base_7:inject 4:17:r7:rotl@base_12:bijective 5:26:r3:rotl@base_25:bijective 6:32:r6:rotl@base_30:bijective 7:36:r5:mad@base_29:inject 8:37:r1:load@base_26:inject 9:38:r2:xor@base_23:inject 10:41:r3:load@base_37:inject 11:43:r4:xor@base_40:inject 12:48:r0:sub@base_39:inject 13:49:r1:load@base_48:inject 14:55:r6:xor@base_52:inject 15:60:r7:add@base_45:inject +igneum-ca3-v4-uniform/436 a96273af52ee4846 0 0:2:3 1:2:1 2:1:0 3:0:0 4:2:0 5:0:0 6:1:0 7:1:1 8:1:0 9:1:0 10:1:1 11:2:1 12:0:0 13:0:0 14:2:1 15:0:0 6 0 0 3 3 0:4:r5:mul@base_1:lossy 1:5:r1:shfl@base_0:inject 2:7:r6:mulhi@base_3:lossy 3:10:r7:mulhi@base_9:lossy 4:15:r2:load@base_4:inject 5:20:r4:load@base_15:inject 6:22:r1:mul@base_21:lossy 7:23:r2:load@base_22:inject 8:26:r1:add@base_25:inject 9:40:r3:rotl@base_38:bijective 10:41:r2:add@base_34:inject 11:49:r0:mul@base_42:lossy 12:55:r2:xor@base_53:inject 13:59:r1:mulhi@base_56:lossy 14:61:r7:load@base_59:inject 15:63:r2:add@base_62:inject +igneum-ca3-v4-uniform/437 b008ce3438059d49 0 0:2:1 1:0:0 2:2:2 3:0:0 4:0:0 5:1:0 6:2:2 7:1:1 8:2:0 9:1:0 10:2:1 11:0:0 12:2:2 13:1:1 14:0:0 15:2:3 2 1 0 1 0 0:3:r5:sub@base_0:inject 1:11:r4:shfl@base_9:inject 2:15:r3:or@base_5:lossy 3:17:r1:sub@base_1:inject 4:21:r5:mad@base_8:inject 5:22:r0:shfl@base_18:inject 6:27:r1:add@base_26:inject 7:28:r4:xor@base_23:inject 8:38:r6:mad@base_4:inject 9:44:r7:load@base_38:inject 10:47:r4:rotr@base_41:bijective 11:48:r2:load@base_28:inject 12:52:r3:shfl@base_46:inject 13:57:r1:mul@base_43:lossy 14:59:r6:add@base_51:inject 15:63:r3:load@base_57:inject +igneum-ca3-v4-uniform/438 374d7bf6eaebdd2f 0 0:0:0 1:1:1 2:2:1 3:0:0 4:1:1 5:2:1 6:2:2 7:2:3 8:2:0 9:2:3 10:1:0 11:1:1 12:1:0 13:1:0 14:0:0 15:0:0 1 1 1 0 0 0:13:r5:mad@base_12:inject 1:14:r6:mad@base_11:inject 2:18:r0:sub@base_5:inject 3:21:r4:add@base_6:inject 4:22:r0:add@base_20:inject 5:23:r7:add@base_8:inject 6:24:r2:shfl@base_17:inject 7:26:r1:load@base_23:inject 8:28:r3:load@base_14:inject 9:29:r5:load@base_22:inject 10:38:r7:load@base_29:inject 11:41:r3:rotl@base_36:bijective 12:51:r2:or@base_48:lossy-or-chain1 13:53:r6:load@base_51:inject 14:56:r4:rotl@base_47:bijective 15:62:r5:xor@base_55:inject +igneum-ca3-v4-uniform/439 da8bd3b37e3bfd2d 0 0:1:0 1:2:1 2:0:0 3:2:2 4:0:0 5:1:1 6:1:1 7:1:0 8:2:1 9:2:1 10:1:1 11:2:1 12:2:2 13:2:1 14:0:0 15:0:0 6 1 0 4 1 0:2:r2:mul@base_0:lossy 1:3:r7:xor@base_1:inject 2:6:r0:load@base_3:inject 3:12:r6:mad@base_9:inject 4:18:r3:load@base_6:inject 5:23:r7:load@base_18:inject 6:24:r6:mulhi@base_15:lossy 7:26:r2:load@base_23:inject 8:27:r0:add@base_25:inject 9:35:r5:load@base_27:inject 10:37:r7:mul@base_29:lossy 11:38:r1:load@base_35:inject 12:44:r3:or@base_42:lossy 13:45:r5:mul@base_43:lossy 14:58:r2:mul@base_46:lossy 15:61:r4:load@base_58:inject +igneum-ca3-v4-uniform/440 fe1755061ba36f77 0 0:1:0 1:2:3 2:0:0 3:2:0 4:2:1 5:2:3 6:1:1 7:0:0 8:2:0 9:1:1 10:2:2 11:1:1 12:1:1 13:2:0 14:2:1 15:0:0 2 0 0 0 2 0:1:r3:mulhi@base_0:lossy 1:2:r0:load@base_1:inject 2:8:r3:rotl@base_6:bijective 3:10:r7:load@base_8:inject 4:18:r1:mad@base_16:inject 5:19:r0:add@base_12:inject 6:23:r6:load@base_10:inject 7:25:r7:load@base_18:inject 8:35:r2:add@base_31:inject 9:37:r3:rotl@base_22:bijective 10:44:r6:mulhi@base_43:lossy 11:48:r3:xor@base_45:inject 12:50:r5:mad@base_47:inject 13:52:r4:xor@base_51:inject 14:53:r1:xor@base_36:inject 15:55:r6:mad@base_54:inject +igneum-ca3-v4-uniform/441 5707943b6c755ecf 0 0:2:0 1:0:0 2:1:0 3:1:1 4:0:0 5:1:0 6:1:0 7:1:1 8:0:0 9:0:0 10:0:0 11:1:1 12:0:0 13:0:0 14:1:1 15:0:0 2 1 0 0 1 0:2:r7:xor@base_0:inject 1:5:r2:load@base_2:inject 2:19:r7:add@base_15:inject 3:26:r6:add@base_22:inject 4:28:r2:add@base_20:inject 5:30:r0:sub@base_27:inject 6:45:r3:or@base_44:lossy 7:46:r4:mulhi@base_41:lossy 8:47:r1:rotl@base_33:bijective 9:48:r5:shfl@base_42:inject 10:52:r6:rotr@base_51:bijective 11:54:r2:add@base_53:inject 12:55:r1:load@base_52:inject 13:57:r4:load@base_54:inject 14:60:r2:add@base_59:inject 15:62:r7:load@base_60:inject +igneum-ca3-v4-uniform/442 686faa972e3b7aa0 0 0:2:1 1:2:1 2:0:0 3:0:0 4:1:0 5:2:3 6:0:0 7:1:1 8:2:1 9:1:1 10:1:0 11:2:2 12:2:1 13:2:1 14:1:0 15:2:1 2 0 0 2 0 0:5:r6:add@base_3:inject 1:15:r1:mad@base_6:inject 2:17:r7:load@base_15:inject 3:18:r3:load@base_17:inject 4:20:r7:mul@base_19:lossy 5:23:r5:load@base_20:inject 6:25:r6:mad@base_24:inject 7:28:r3:load@base_25:inject 8:31:r2:load@base_23:inject 9:40:r6:mul@base_36:lossy 10:41:r2:add@base_34:inject 11:45:r1:rotl@base_42:bijective 12:52:r2:load@base_45:inject 13:53:r3:rotr@base_50:bijective 14:59:r7:shfl@base_57:inject 15:63:r0:load@base_59:inject +igneum-ca3-v4-uniform/443 97cf46357c1bb5f4 0 0:0:0 1:0:0 2:1:0 3:1:1 4:1:0 5:1:0 6:0:0 7:0:0 8:2:3 9:2:0 10:1:0 11:2:2 12:0:0 13:2:2 14:1:1 15:1:0 4 3 1 0 1 0:5:r7:or@base_2:lossy 1:7:r4:add@base_3:inject 2:9:r5:add@base_6:inject 3:11:r1:load@base_9:inject 4:17:r5:or@base_12:lossy-or-chain1 5:18:r6:load@base_17:inject 6:22:r2:mad@base_19:inject 7:23:r0:xor@base_14:inject 8:26:r4:add@base_24:inject 9:35:r2:sub@base_33:inject 10:38:r7:mulhi@base_29:lossy 11:44:r0:or@base_43:lossy 12:47:r4:shfl@base_42:inject 13:55:r7:load@base_47:inject 14:57:r6:rotl@base_48:bijective 15:59:r1:mad@base_54:inject +igneum-ca3-v4-uniform/444 d634e4a746a4639d 0 0:2:3 1:0:0 2:0:0 3:2:1 4:2:1 5:0:0 6:2:3 7:0:0 8:2:1 9:0:0 10:0:0 11:1:0 12:0:0 13:2:2 14:1:0 15:1:1 1 0 0 1 0 0:1:r2:mad@base_0:inject 1:4:r6:add@base_2:inject 2:7:r2:xor@base_6:inject 3:13:r3:mad@base_10:inject 4:22:r6:xor@base_21:inject 5:29:r0:rotl@base_16:bijective 6:32:r3:mul@base_24:lossy 7:41:r3:mad@base_38:inject 8:43:r7:load@base_13:inject 9:47:r4:add@base_20:inject 10:48:r1:mad@base_46:inject 11:50:r2:load@base_43:inject 12:51:r7:load@base_48:inject 13:53:r3:load@base_51:inject 14:60:r7:shfl@base_57:inject 15:63:r1:sub@base_61:inject +igneum-ca3-v4-uniform/445 b5dbb5e01a67ed6a 0 0:1:1 1:1:0 2:2:2 3:2:1 4:0:0 5:2:0 6:0:0 7:0:0 8:1:0 9:2:3 10:0:0 11:2:3 12:1:1 13:0:0 14:2:1 15:0:0 5 2 0 2 1 0:3:r6:mad@base_2:inject 1:7:r2:load@base_3:inject 2:12:r4:load@base_7:inject 3:13:r6:mul@base_11:lossy 4:15:r7:load@base_12:inject 5:16:r1:or@base_14:lossy 6:21:r1:rotr@base_17:bijective 7:23:r3:mad@base_19:inject 8:27:r0:shfl@base_20:inject 9:31:r2:mul@base_29:lossy 10:33:r4:load@base_23:inject 11:44:r0:add@base_37:inject 12:45:r4:sub@base_38:inject 13:46:r5:or@base_43:lossy 14:48:r4:add@base_47:inject 15:52:r3:mulhi@base_40:lossy +igneum-ca3-v4-uniform/446 e812364b5dc002eb 0 0:0:0 1:1:1 2:1:1 3:2:2 4:2:0 5:2:3 6:2:2 7:1:0 8:0:0 9:0:0 10:2:0 11:1:1 12:0:0 13:0:0 14:1:1 15:0:0 3 0 0 2 1 0:1:r2:xor@base_0:inject 1:3:r5:mad@base_2:inject 2:4:r1:load@base_3:inject 3:10:r3:add@base_8:inject 4:17:r6:mad@base_11:inject 5:18:r5:sub@base_13:inject 6:24:r3:load@base_17:inject 7:27:r0:mul@base_15:lossy 8:31:r2:mulhi@base_28:lossy 9:33:r4:xor@base_26:inject 10:34:r1:load@base_27:inject 11:38:r5:load@base_34:inject 12:39:r1:load@base_38:inject 13:41:r5:load@base_39:inject 14:42:r3:mul@base_25:lossy 15:63:r3:xor@base_60:inject +igneum-ca3-v4-uniform/447 31d75c1a8f4e5b9c 0 0:1:0 1:1:1 2:0:0 3:1:1 4:1:0 5:1:1 6:2:3 7:2:2 8:0:0 9:0:0 10:2:3 11:2:2 12:0:0 13:1:1 14:1:0 15:1:1 3 1 0 2 0 0:1:r3:sub@base_0:inject 1:3:r1:load@base_1:inject 2:7:r3:rotr@base_6:bijective 3:12:r5:or@base_8:lossy 4:14:r5:mul@base_13:lossy 5:16:r1:load@base_12:inject 6:17:r7:rotl@base_15:bijective 7:30:r7:shfl@base_27:inject 8:31:r2:add@base_11:inject 9:34:r4:add@base_29:inject 10:40:r7:mad@base_39:inject 11:41:r1:mul@base_24:lossy 12:47:r0:rotl@base_33:bijective 13:49:r5:xor@base_44:inject 14:50:r6:load@base_41:inject 15:51:r2:sub@base_36:inject +igneum-ca3-v4-uniform/448 630fff540bd2a624 0 0:0:0 1:2:2 2:0:0 3:1:0 4:2:3 5:0:0 6:1:1 7:0:0 8:2:3 9:0:0 10:2:1 11:0:0 12:0:0 13:2:2 14:2:0 15:1:1 2 1 0 0 1 0:4:r0:mulhi@base_3:lossy 1:9:r3:rotr@base_0:bijective 2:10:r4:shfl@base_7:inject 3:18:r3:rotr@base_17:bijective 4:19:r1:sub@base_12:inject 5:22:r0:mad@base_20:inject 6:23:r3:load@base_22:inject 7:24:r2:load@base_19:inject 8:26:r6:load@base_24:inject 9:27:r7:shfl@base_15:inject 10:29:r4:load@base_26:inject 11:30:r5:mad@base_28:inject 12:38:r1:or@base_33:lossy 13:44:r0:rotl@base_32:bijective 14:53:r3:add@base_52:inject 15:58:r1:rotr@base_50:bijective +igneum-ca3-v4-uniform/449 65b52659d9960bd0 0 0:0:0 1:2:2 2:1:1 3:1:1 4:2:0 5:0:0 6:0:0 7:1:0 8:2:2 9:0:0 10:2:1 11:2:3 12:1:0 13:2:0 14:2:1 15:0:0 5 2 0 2 1 0:8:r4:or@base_6:lossy 1:16:r7:rotr@base_15:bijective 2:25:r5:mulhi@base_24:lossy 3:26:r6:mad@base_23:inject 4:28:r7:load@base_25:inject 5:31:r3:load@base_28:inject 6:38:r1:sub@base_20:inject 7:40:r0:mul@base_29:lossy 8:41:r2:or@base_37:lossy 9:44:r4:mad@base_43:inject 10:49:r6:mad@base_46:inject 11:51:r4:add@base_50:inject 12:52:r0:load@base_44:inject 13:53:r5:load@base_52:inject 14:58:r7:load@base_53:inject 15:63:r1:mul@base_54:lossy +igneum-ca3-v4-uniform/450 ebd48f2057322ca0 0 0:1:1 1:1:1 2:1:0 3:1:1 4:1:0 5:1:1 6:1:0 7:0:0 8:2:2 9:0:0 10:0:0 11:1:0 12:2:3 13:1:1 14:2:2 15:0:0 5 2 0 1 2 0:1:r1:mulhi@base_0:lossy 1:5:r2:shfl@base_3:inject 2:6:r3:load@base_1:inject 3:7:r5:load@base_5:inject 4:12:r6:add@base_10:inject 5:14:r6:or@base_13:lossy 6:16:r7:load@base_14:inject 7:26:r2:rotr@base_18:bijective 8:34:r2:mul@base_33:lossy 9:40:r3:sub@base_38:inject 10:41:r0:mulhi@base_39:lossy 11:42:r5:xor@base_35:inject 12:44:r1:shfl@base_43:inject 13:49:r0:add@base_48:inject 14:52:r2:rotr@base_51:bijective 15:62:r0:or@base_61:lossy +igneum-ca3-v4-uniform/451 2b41aaffacb749f4 0 0:1:1 1:0:0 2:0:0 3:1:0 4:0:0 5:1:1 6:2:1 7:2:1 8:2:0 9:2:1 10:0:0 11:0:0 12:0:0 13:1:1 14:0:0 15:1:1 1 0 0 1 0 0:4:r1:sub@base_3:inject 1:7:r6:shfl@base_5:inject 2:9:r3:load@base_7:inject 3:10:r5:sub@base_8:inject 4:20:r6:rotr@base_18:bijective 5:24:r1:load@base_20:inject 6:25:r4:add@base_22:inject 7:27:r3:load@base_25:inject 8:28:r0:load@base_27:inject 9:35:r1:add@base_33:inject 10:39:r6:mul@base_36:lossy 11:43:r4:add@base_42:inject 12:54:r4:add@base_50:inject 13:58:r0:xor@base_53:inject 14:60:r3:sub@base_59:inject 15:61:r2:shfl@base_55:inject +igneum-ca3-v4-uniform/452 3b659d4db34cfa94 0 0:0:0 1:0:0 2:1:1 3:0:0 4:0:0 5:1:0 6:2:3 7:0:0 8:0:0 9:1:1 10:0:0 11:2:2 12:2:2 13:1:0 14:1:0 15:1:0 5 0 0 4 1 0:1:r0:add@base_0:inject 1:3:r2:add@base_2:inject 2:12:r0:shfl@base_10:inject 3:18:r6:load@base_3:inject 4:19:r0:mulhi@base_13:lossy 5:21:r1:mul@base_4:lossy 6:25:r7:load@base_21:inject 7:27:r5:xor@base_23:inject 8:28:r2:rotl@base_26:bijective 9:33:r4:mul@base_31:lossy 10:34:r6:load@base_28:inject 11:41:r6:add@base_35:inject 12:44:r5:mul@base_40:lossy 13:50:r5:mad@base_46:inject 14:58:r1:xor@base_54:inject 15:59:r7:mul@base_56:lossy +igneum-ca3-v4-uniform/453 ce0c9fa80b2480ae 0 0:2:0 1:0:0 2:2:2 3:0:0 4:0:0 5:2:3 6:1:0 7:1:0 8:1:0 9:1:0 10:0:0 11:1:1 12:1:1 13:0:0 14:1:0 15:2:2 1 0 0 0 1 0:4:r7:shfl@base_0:inject 1:8:r0:mad@base_6:inject 2:10:r2:shfl@base_5:inject 3:12:r6:load@base_10:inject 4:14:r6:rotl@base_13:bijective 5:16:r7:xor@base_9:inject 6:19:r7:shfl@base_18:inject 7:28:r4:load@base_19:inject 8:30:r1:xor@base_26:inject 9:35:r7:load@base_30:inject 10:38:r1:add@base_33:inject 11:39:r5:mad@base_36:inject 12:42:r6:shfl@base_29:inject 13:49:r1:sub@base_41:inject 14:60:r5:mulhi@base_48:lossy 15:63:r1:add@base_59:inject +igneum-ca3-v4-uniform/454 c6516734e5417aa3 0 0:0:0 1:1:0 2:0:0 3:2:1 4:1:0 5:2:1 6:1:0 7:1:0 8:2:3 9:0:0 10:1:1 11:0:0 12:1:1 13:0:0 14:1:1 15:2:2 3 1 0 2 0 0:4:r5:rotr@base_1:bijective 1:5:r0:load@base_4:inject 2:6:r7:rotl@base_3:bijective 3:15:r6:add@base_14:inject 4:22:r2:mul@base_8:lossy 5:33:r3:mad@base_26:inject 6:36:r7:or@base_35:lossy 7:37:r0:mad@base_25:inject 8:40:r7:sub@base_39:inject 9:43:r6:rotl@base_30:bijective 10:44:r2:load@base_33:inject 11:46:r7:add@base_45:inject 12:49:r4:load@base_36:inject 13:53:r5:mul@base_47:lossy 14:57:r7:xor@base_52:inject 15:59:r0:load@base_53:inject +igneum-ca3-v4-uniform/455 aa8fe2bcc786e0ae 0 0:1:0 1:1:0 2:0:0 3:1:1 4:0:0 5:2:3 6:2:2 7:2:2 8:0:0 9:1:0 10:0:0 11:0:0 12:0:0 13:0:0 14:2:3 15:0:0 2 0 0 0 2 0:12:r6:mulhi@base_11:lossy 1:13:r2:rotr@base_4:bijective 2:15:r0:rotr@base_7:bijective 3:16:r3:load@base_12:inject 4:23:r7:shfl@base_21:inject 5:31:r1:rotl@base_27:bijective 6:36:r7:mad@base_33:inject 7:38:r2:xor@base_35:inject 8:42:r2:add@base_41:inject 9:43:r7:add@base_37:inject 10:44:r0:load@base_38:inject 11:49:r3:sub@base_48:inject 12:51:r7:rotl@base_45:bijective 13:53:r1:load@base_42:inject 14:56:r0:add@base_52:inject 15:59:r7:mulhi@base_55:lossy +igneum-ca3-v4-uniform/456 e6f709fe71911159 0 0:1:1 1:1:0 2:0:0 3:0:0 4:2:0 5:1:0 6:2:2 7:2:1 8:2:3 9:2:3 10:1:0 11:0:0 12:0:0 13:0:0 14:0:0 15:1:1 2 0 0 1 1 0:1:r4:sub@base_0:inject 1:8:r4:add@base_3:inject 2:10:r5:add@base_6:inject 3:12:r2:mad@base_11:inject 4:13:r3:load@base_12:inject 5:17:r0:mulhi@base_15:lossy 6:19:r7:load@base_10:inject 7:22:r4:load@base_13:inject 8:24:r5:mad@base_20:inject 9:36:r1:rotr@base_30:bijective 10:40:r3:sub@base_39:inject 11:48:r6:rotr@base_37:bijective 12:50:r5:mul@base_45:lossy 13:52:r2:load@base_36:inject 14:57:r3:mad@base_49:inject 15:63:r2:xor@base_53:inject +igneum-ca3-v4-uniform/457 05231f4c33f17b31 0 0:2:2 1:2:3 2:0:0 3:2:0 4:2:1 5:1:1 6:2:0 7:1:0 8:1:0 9:1:1 10:2:2 11:0:0 12:1:1 13:0:0 14:1:0 15:2:2 1 0 0 0 1 0:1:r3:mulhi@base_0:lossy 1:6:r5:load@base_1:inject 2:9:r6:shfl@base_2:inject 3:11:r4:mad@base_10:inject 4:28:r5:add@base_24:inject 5:31:r1:mad@base_30:inject 6:32:r6:rotl@base_25:bijective 7:41:r7:load@base_31:inject 8:45:r0:load@base_41:inject 9:48:r6:xor@base_43:inject 10:52:r2:shfl@base_50:inject 11:53:r3:load@base_52:inject 12:54:r1:load@base_45:inject 13:55:r7:load@base_48:inject 14:57:r1:mad@base_56:inject 15:59:r4:load@base_53:inject +igneum-ca3-v4-uniform/458 608912db8d44af79 0 0:0:0 1:0:0 2:0:0 3:2:1 4:0:0 5:0:0 6:1:1 7:1:0 8:1:1 9:0:0 10:1:1 11:1:0 12:1:0 13:2:0 14:0:0 15:1:1 3 0 0 2 1 0:4:r2:xor@base_0:inject 1:5:r0:load@base_4:inject 2:6:r7:load@base_5:inject 3:12:r1:mulhi@base_1:lossy 4:17:r6:xor@base_13:inject 5:23:r7:rotr@base_20:bijective 6:31:r5:xor@base_29:inject 7:38:r7:sub@base_35:inject 8:39:r1:rotr@base_21:bijective 9:43:r4:load@base_38:inject 10:47:r5:mul@base_41:lossy 11:50:r7:rotr@base_49:bijective 12:54:r2:load@base_43:inject 13:58:r1:xor@base_57:inject 14:62:r5:mul@base_55:lossy 15:63:r1:load@base_62:inject +igneum-ca3-v4-uniform/459 5b821bc9f09fb980 0 0:0:0 1:0:0 2:2:1 3:1:1 4:0:0 5:0:0 6:0:0 7:0:0 8:0:0 9:1:0 10:2:3 11:2:0 12:0:0 13:2:2 14:0:0 15:2:1 3 0 0 0 3 0:10:r4:mulhi@base_8:lossy 1:13:r7:add@base_9:inject 2:17:r1:shfl@base_16:inject 3:20:r2:load@base_13:inject 4:23:r0:xor@base_18:inject 5:27:r6:load@base_17:inject 6:31:r0:add@base_26:inject 7:34:r1:add@base_28:inject 8:42:r6:xor@base_41:inject 9:45:r0:load@base_42:inject 10:47:r7:mulhi@base_43:lossy 11:50:r4:mulhi@base_40:lossy 12:53:r5:load@base_31:inject 13:54:r0:shfl@base_49:inject 14:55:r4:shfl@base_51:inject 15:60:r1:load@base_55:inject +igneum-ca3-v4-uniform/460 f47319d873106b96 0 0:2:3 1:1:0 2:1:0 3:1:0 4:2:2 5:1:1 6:0:0 7:1:0 8:0:0 9:2:3 10:1:0 11:0:0 12:2:1 13:1:0 14:1:0 15:2:3 2 0 0 0 2 0:5:r7:shfl@base_3:inject 1:8:r3:mulhi@base_4:lossy 2:10:r6:mad@base_9:inject 3:16:r5:shfl@base_15:inject 4:18:r4:add@base_1:inject 5:21:r1:add@base_17:inject 6:22:r0:xor@base_20:inject 7:27:r1:load@base_22:inject 8:28:r6:add@base_26:inject 9:29:r5:load@base_21:inject 10:36:r0:load@base_28:inject 11:38:r2:shfl@base_30:inject 12:47:r1:load@base_36:inject 13:52:r7:mulhi@base_37:lossy 14:53:r1:xor@base_49:inject 15:58:r6:rotl@base_50:bijective +igneum-ca3-v4-uniform/461 5b7b1710480a1a3c 0 0:0:0 1:0:0 2:0:0 3:0:0 4:0:0 5:1:0 6:1:0 7:2:3 8:1:0 9:2:0 10:2:1 11:2:1 12:2:1 13:2:2 14:2:0 15:2:2 3 0 0 1 2 0:3:r0:sub@base_2:inject 1:5:r1:rotl@base_4:bijective 2:13:r0:add@base_11:inject 3:16:r3:mad@base_14:inject 4:23:r2:shfl@base_17:inject 5:25:r6:load@base_5:inject 6:28:r7:rotr@base_26:bijective 7:38:r7:mul@base_36:lossy 8:40:r5:load@base_38:inject 9:42:r6:load@base_40:inject 10:48:r5:xor@base_41:inject 11:49:r7:shfl@base_47:inject 12:50:r1:mulhi@base_30:lossy 13:53:r1:mulhi@base_52:lossy 14:61:r1:rotr@base_59:bijective 15:62:r0:rotr@base_58:bijective +igneum-ca3-v4-uniform/462 0f54f7c5aa0d2fd8 0 0:1:1 1:0:0 2:2:2 3:1:1 4:2:1 5:1:0 6:1:0 7:2:0 8:0:0 9:0:0 10:2:3 11:2:0 12:2:2 13:1:0 14:2:1 15:2:0 1 0 0 1 0 0:2:r7:xor@base_1:inject 1:6:r2:rotr@base_3:bijective 2:9:r4:load@base_2:inject 3:10:r3:xor@base_4:inject 4:11:r5:load@base_10:inject 5:12:r0:load@base_11:inject 6:24:r4:mad@base_23:inject 7:25:r6:mad@base_15:inject 8:43:r5:rotl@base_41:bijective 9:47:r2:mul@base_44:lossy 10:50:r7:load@base_47:inject 11:52:r1:rotl@base_51:bijective 12:58:r3:mad@base_28:inject 13:60:r0:shfl@base_48:inject 14:62:r5:xor@base_61:inject 15:63:r4:load@base_58:inject +igneum-ca3-v4-uniform/463 2fb899b9a433401e 0 0:2:2 1:0:0 2:2:2 3:1:0 4:1:0 5:2:2 6:1:1 7:1:0 8:1:0 9:1:1 10:1:0 11:0:0 12:0:0 13:2:0 14:2:2 15:0:0 5 2 0 1 2 0:4:r3:or@base_0:lossy 1:12:r5:mulhi@base_6:lossy 2:13:r0:rotr@base_7:bijective 3:16:r2:xor@base_15:inject 4:22:r3:load@base_16:inject 5:30:r7:sub@base_28:inject 6:32:r3:add@base_23:inject 7:38:r6:shfl@base_37:inject 8:39:r1:load@base_32:inject 9:43:r0:load@base_38:inject 10:44:r7:xor@base_40:inject 11:48:r2:rotl@base_42:bijective 12:51:r0:mulhi@base_50:lossy 13:52:r6:or@base_46:lossy 14:60:r1:load@base_52:inject 15:62:r5:mul@base_57:lossy +igneum-ca3-v4-uniform/464 3c6c13cbd562f93c 0 0:2:0 1:1:0 2:2:0 3:1:0 4:2:0 5:2:0 6:0:0 7:2:0 8:2:3 9:2:0 10:0:0 11:0:0 12:2:2 13:2:0 14:1:1 15:1:0 5 0 0 2 3 0:2:r7:rotl@base_1:bijective 1:3:r1:load@base_2:inject 2:5:r3:load@base_3:inject 3:11:r1:mad@base_8:inject 4:17:r5:mulhi@base_13:lossy 5:18:r3:xor@base_15:inject 6:21:r0:mulhi@base_14:lossy 7:27:r5:shfl@base_25:inject 8:29:r1:load@base_18:inject 9:37:r2:rotl@base_31:bijective 10:47:r5:mul@base_46:lossy 11:48:r0:mul@base_44:lossy 12:54:r2:rotr@base_52:bijective 13:57:r0:mulhi@base_50:lossy 14:59:r4:mad@base_49:inject 15:60:r3:load@base_54:inject +igneum-ca3-v4-uniform/465 ad493b973cc8a154 0 0:2:0 1:2:2 2:2:1 3:2:1 4:2:2 5:0:0 6:0:0 7:2:0 8:1:0 9:2:0 10:1:0 11:1:0 12:2:0 13:0:0 14:2:3 15:2:2 2 0 0 1 1 0:3:r6:rotl@base_2:bijective 1:7:r4:add@base_0:inject 2:12:r4:rotl@base_10:bijective 3:15:r1:xor@base_8:inject 4:19:r6:load@base_7:inject 5:23:r5:load@base_15:inject 6:34:r3:sub@base_24:inject 7:38:r0:mulhi@base_37:lossy 8:43:r5:mad@base_42:inject 9:44:r6:load@base_38:inject 10:48:r7:load@base_44:inject 11:49:r6:load@base_48:inject 12:54:r3:mul@base_53:lossy 13:55:r7:load@base_54:inject 14:61:r1:xor@base_60:inject 15:63:r2:xor@base_51:inject +igneum-ca3-v4-uniform/466 adb63b8b1d2013c6 0 0:1:1 1:1:1 2:0:0 3:0:0 4:0:0 5:2:3 6:1:1 7:2:0 8:1:1 9:0:0 10:2:0 11:0:0 12:2:1 13:2:0 14:1:1 15:0:0 1 1 0 0 0 0:5:r6:or@base_3:lossy 1:6:r7:load@base_5:inject 2:10:r0:mad@base_7:inject 3:13:r5:add@base_8:inject 4:14:r6:load@base_6:inject 5:21:r0:sub@base_18:inject 6:23:r5:add@base_19:inject 7:34:r0:sub@base_29:inject 8:42:r2:add@base_41:inject 9:44:r4:sub@base_40:inject 10:46:r0:load@base_44:inject 11:47:r3:mad@base_38:inject 12:51:r1:sub@base_49:inject 13:56:r2:xor@base_55:inject 14:57:r7:load@base_56:inject 15:58:r3:sub@base_54:inject +igneum-ca3-v4-uniform/467 bcf39f982044a231 0 0:0:0 1:1:0 2:2:3 3:0:0 4:2:1 5:0:0 6:1:1 7:1:0 8:1:1 9:2:1 10:1:0 11:2:1 12:0:0 13:1:0 14:2:1 15:1:0 4 1 0 0 3 0:1:r1:mulhi@base_0:lossy 1:4:r2:or@base_2:lossy 2:6:r0:load@base_1:inject 3:9:r5:add@base_5:inject 4:11:r0:load@base_9:inject 5:16:r1:mulhi@base_10:lossy 6:19:r6:load@base_16:inject 7:24:r2:shfl@base_22:inject 8:26:r4:load@base_24:inject 9:27:r1:mulhi@base_20:lossy 10:36:r2:rotr@base_33:bijective 11:39:r1:shfl@base_37:inject 12:46:r5:add@base_32:inject 13:51:r0:load@base_46:inject 14:57:r4:mad@base_40:inject 15:61:r1:mad@base_55:inject +igneum-ca3-v4-uniform/468 8d4e898df0241ec3 0 0:1:0 1:2:1 2:0:0 3:0:0 4:2:0 5:1:0 6:1:1 7:0:0 8:1:0 9:2:2 10:0:0 11:0:0 12:1:0 13:0:0 14:1:1 15:2:1 2 1 0 1 0 0:6:r3:add@base_4:inject 1:9:r4:mad@base_7:inject 2:13:r6:xor@base_0:inject 3:18:r7:shfl@base_17:inject 4:21:r4:sub@base_20:inject 5:25:r4:add@base_23:inject 6:27:r3:xor@base_24:inject 7:30:r1:rotr@base_28:bijective 8:37:r2:shfl@base_33:inject 9:40:r3:or@base_36:lossy 10:47:r0:load@base_30:inject 11:48:r5:rotr@base_19:bijective 12:50:r4:mul@base_44:lossy 13:52:r5:load@base_50:inject 14:53:r6:load@base_52:inject 15:60:r1:load@base_48:inject +igneum-ca3-v4-uniform/469 b8e7b38eb73cee11 0 0:2:3 1:0:0 2:2:0 3:1:0 4:0:0 5:1:0 6:0:0 7:2:2 8:1:0 9:2:0 10:0:0 11:2:2 12:2:0 13:1:1 14:2:0 15:2:3 4 1 0 0 3 0:3:r1:xor@base_1:inject 1:5:r7:sub@base_0:inject 2:6:r0:rotr@base_4:bijective 3:8:r2:load@base_3:inject 4:12:r3:load@base_5:inject 5:13:r6:sub@base_11:inject 6:14:r5:load@base_13:inject 7:16:r4:load@base_12:inject 8:20:r0:add@base_9:inject 9:23:r1:mulhi@base_19:lossy 10:29:r2:mulhi@base_28:lossy 11:31:r3:mulhi@base_30:lossy 12:41:r5:shfl@base_39:inject 13:42:r4:rotr@base_33:bijective 14:51:r1:mad@base_49:inject 15:53:r4:or@base_52:lossy +igneum-ca3-v4-uniform/470 09568ec1f51b6083 0 0:1:0 1:1:0 2:2:2 3:0:0 4:1:1 5:1:0 6:1:0 7:2:3 8:0:0 9:0:0 10:1:0 11:2:2 12:2:2 13:0:0 14:2:0 15:0:0 1 1 0 0 0 0:7:r4:add@base_3:inject 1:11:r1:rotl@base_8:bijective 2:13:r6:mad@base_12:inject 3:15:r4:mad@base_9:inject 4:16:r5:load@base_13:inject 5:17:r0:load@base_7:inject 6:19:r5:mad@base_18:inject 7:21:r2:load@base_19:inject 8:23:r6:load@base_21:inject 9:24:r1:or@base_20:lossy 10:25:r5:shfl@base_22:inject 11:26:r3:load@base_23:inject 12:31:r7:load@base_25:inject 13:32:r4:load@base_26:inject 14:49:r3:xor@base_45:inject 15:51:r4:load@base_49:inject +igneum-ca3-v4-uniform/471 0faeb811135627c0 0 0:2:2 1:0:0 2:2:1 3:1:0 4:2:3 5:0:0 6:0:0 7:2:3 8:1:1 9:1:1 10:2:1 11:2:2 12:0:0 13:1:0 14:1:1 15:2:1 1 0 0 0 1 0:1:r4:rotl@base_0:bijective 1:5:r3:xor@base_4:inject 2:8:r0:shfl@base_7:inject 3:13:r5:sub@base_12:inject 4:19:r2:sub@base_18:inject 5:20:r6:mulhi@base_14:lossy 6:34:r5:shfl@base_29:inject 7:42:r7:shfl@base_41:inject 8:43:r4:rotr@base_39:bijective 9:45:r6:rotr@base_37:bijective 10:46:r2:load@base_43:inject 11:49:r7:load@base_46:inject 12:52:r1:shfl@base_51:inject 13:53:r5:load@base_49:inject 14:56:r7:sub@base_55:inject 15:63:r3:add@base_61:inject +igneum-ca3-v4-uniform/472 06db4acd6739ee66 0 0:1:1 1:2:0 2:2:1 3:1:1 4:0:0 5:1:1 6:2:3 7:1:0 8:0:0 9:2:2 10:2:2 11:0:0 12:2:1 13:1:1 14:0:0 15:1:0 3 1 0 1 1 0:1:r4:mulhi@base_0:lossy 1:4:r6:rotr@base_3:bijective 2:8:r0:mad@base_7:inject 3:14:r6:add@base_13:inject 4:15:r0:load@base_14:inject 5:22:r7:xor@base_5:inject 6:26:r5:sub@base_23:inject 7:27:r1:mad@base_20:inject 8:31:r0:rotr@base_19:bijective 9:35:r4:load@base_31:inject 10:43:r6:mad@base_37:inject 11:47:r3:rotr@base_44:bijective 12:51:r1:or@base_50:lossy 13:53:r7:load@base_51:inject 14:57:r0:shfl@base_41:inject 15:58:r5:mul@base_56:lossy +igneum-ca3-v4-uniform/473 23a821c0506b9e7b 0 0:0:0 1:1:0 2:1:1 3:2:1 4:0:0 5:0:0 6:1:0 7:2:1 8:0:0 9:0:0 10:0:0 11:1:0 12:1:1 13:1:0 14:2:1 15:0:0 2 1 0 0 1 0:1:r4:sub@base_0:inject 1:9:r5:load@base_1:inject 2:16:r3:add@base_12:inject 3:18:r6:load@base_16:inject 4:23:r0:rotl@base_13:bijective 5:24:r2:mad@base_14:inject 6:32:r1:add@base_29:inject 7:33:r2:mulhi@base_26:lossy 8:35:r3:load@base_33:inject 9:39:r4:load@base_18:inject 10:44:r6:rotl@base_25:bijective 11:45:r5:or@base_43:lossy 12:47:r3:load@base_45:inject 13:49:r7:shfl@base_42:inject 14:57:r4:mad@base_53:inject 15:58:r7:shfl@base_55:inject +igneum-ca3-v4-uniform/474 aaa0cca8aed0f201 0 0:0:0 1:1:1 2:0:0 3:2:0 4:2:2 5:2:2 6:1:1 7:0:0 8:0:0 9:2:3 10:1:0 11:2:0 12:2:3 13:0:0 14:2:0 15:1:1 4 0 0 3 1 0:6:r7:mul@base_2:lossy 1:14:r6:rotl@base_13:bijective 2:19:r5:mad@base_4:inject 3:20:r0:mul@base_11:lossy 4:29:r4:shfl@base_28:inject 5:30:r7:mulhi@base_27:lossy 6:31:r0:load@base_29:inject 7:34:r2:load@base_30:inject 8:37:r6:mad@base_36:inject 9:41:r2:add@base_40:inject 10:43:r6:load@base_41:inject 11:49:r0:shfl@base_48:inject 12:50:r4:mul@base_44:lossy 13:52:r3:load@base_50:inject 14:61:r1:xor@base_55:inject 15:62:r3:shfl@base_56:inject +igneum-ca3-v4-uniform/475 d16f6a7caa46123f 0 0:1:1 1:2:2 2:2:0 3:0:0 4:2:1 5:2:0 6:1:0 7:0:0 8:2:0 9:2:2 10:2:2 11:2:3 12:0:0 13:2:2 14:2:0 15:0:0 4 0 0 2 2 0:4:r5:shfl@base_0:inject 1:9:r5:mulhi@base_5:lossy 2:11:r2:add@base_10:inject 3:13:r2:rotr@base_12:bijective 4:18:r6:shfl@base_14:inject 5:21:r7:load@base_9:inject 6:23:r5:shfl@base_22:inject 7:24:r6:load@base_21:inject 8:25:r4:mul@base_19:lossy 9:29:r2:load@base_23:inject 10:36:r2:shfl@base_31:inject 11:40:r6:load@base_36:inject 12:42:r5:mulhi@base_28:lossy 13:52:r6:shfl@base_48:inject 14:59:r5:mul@base_55:lossy 15:60:r4:shfl@base_57:inject +igneum-ca3-v4-uniform/476 5cddaaf5ed56e2b8 0 0:1:1 1:2:3 2:0:0 3:1:1 4:2:0 5:1:1 6:1:1 7:2:1 8:1:0 9:0:0 10:0:0 11:0:0 12:1:1 13:1:1 14:2:2 15:2:0 4 2 0 1 1 0:3:r6:add@base_2:inject 1:4:r5:or@base_1:lossy 2:13:r2:mul@base_6:lossy 3:15:r3:mad@base_8:inject 4:20:r3:xor@base_19:inject 5:25:r0:load@base_20:inject 6:29:r6:xor@base_17:inject 7:30:r5:mad@base_22:inject 8:34:r4:load@base_15:inject 9:38:r1:load@base_30:inject 10:42:r6:shfl@base_39:inject 11:45:r3:rotr@base_33:bijective 12:48:r7:load@base_45:inject 13:56:r2:mulhi@base_52:lossy 14:58:r0:rotl@base_47:bijective 15:62:r4:or@base_59:lossy +igneum-ca3-v4-uniform/477 7b9d1a39451fa938 0 0:1:1 1:0:0 2:1:0 3:1:1 4:0:0 5:2:0 6:0:0 7:2:1 8:1:1 9:2:2 10:1:0 11:2:1 12:1:1 13:2:1 14:2:0 15:0:0 2 0 0 2 0 0:1:r2:mul@base_0:lossy 1:6:r2:mad@base_2:inject 2:7:r5:shfl@base_3:inject 3:9:r6:shfl@base_8:inject 4:14:r6:rotl@base_13:bijective 5:18:r0:rotl@base_12:bijective 6:19:r6:rotr@base_15:bijective 7:22:r7:rotl@base_11:bijective 8:25:r2:mad@base_24:inject 9:27:r4:load@base_19:inject 10:31:r7:xor@base_30:inject 11:35:r0:load@base_22:inject 12:46:r1:xor@base_41:inject 13:56:r7:add@base_44:inject 14:57:r6:mul@base_55:lossy 15:61:r7:mad@base_59:inject +igneum-ca3-v4-uniform/478 beeee333123467f3 0 0:2:1 1:0:0 2:0:0 3:2:0 4:1:0 5:1:0 6:1:0 7:1:0 8:0:0 9:0:0 10:1:1 11:2:3 12:1:1 13:1:1 14:1:0 15:0:0 0 0 0 0 0 0:3:r6:xor@base_0:inject 1:4:r7:load@base_3:inject 2:7:r6:rotl@base_5:bijective 3:8:r3:xor@base_2:inject 4:11:r2:shfl@base_6:inject 5:15:r0:sub@base_13:inject 6:21:r4:load@base_15:inject 7:34:r2:add@base_23:inject 8:35:r3:xor@base_29:inject 9:41:r5:mad@base_32:inject 10:43:r1:mad@base_39:inject 11:44:r3:add@base_37:inject 12:47:r0:load@base_44:inject 13:48:r7:load@base_43:inject 14:52:r2:load@base_47:inject 15:62:r0:xor@base_57:inject +igneum-ca3-v4-uniform/479 0d30f596390f7519 0 0:0:0 1:0:0 2:2:0 3:2:2 4:0:0 5:2:1 6:1:0 7:1:1 8:1:0 9:1:0 10:2:3 11:1:1 12:0:0 13:0:0 14:2:1 15:1:0 3 0 0 2 1 0:10:r1:add@base_1:inject 1:12:r3:rotl@base_9:bijective 2:13:r7:mad@base_7:inject 3:14:r5:rotl@base_4:bijective 4:16:r2:sub@base_6:inject 5:20:r3:mul@base_15:lossy 6:26:r6:rotl@base_17:bijective 7:28:r0:load@base_16:inject 8:31:r1:load@base_28:inject 9:33:r4:load@base_31:inject 10:35:r6:add@base_29:inject 11:37:r5:mad@base_36:inject 12:38:r3:load@base_37:inject 13:48:r4:rotl@base_46:bijective 14:60:r7:mulhi@base_51:lossy 15:63:r6:mul@base_62:lossy +igneum-ca3-v4-uniform/480 d9d4ba7374a547a2 0 0:0:0 1:1:0 2:0:0 3:0:0 4:1:1 5:1:0 6:2:0 7:0:0 8:0:0 9:1:1 10:0:0 11:0:0 12:2:1 13:2:0 14:2:2 15:0:0 3 0 0 1 2 0:3:r4:shfl@base_1:inject 1:4:r6:load@base_3:inject 2:7:r2:load@base_4:inject 3:14:r1:mulhi@base_6:lossy 4:16:r3:mad@base_15:inject 5:23:r7:add@base_18:inject 6:27:r2:rotr@base_24:bijective 7:33:r2:add@base_30:inject 8:34:r6:rotl@base_29:bijective 9:39:r3:mad@base_35:inject 10:43:r0:mul@base_20:lossy 11:46:r1:mulhi@base_36:lossy 12:48:r6:sub@base_44:inject 13:49:r4:mad@base_45:inject 14:53:r2:xor@base_51:inject 15:61:r3:sub@base_55:inject +igneum-ca3-v4-uniform/481 9a35cfebd5401908 0 0:1:1 1:0:0 2:1:1 3:0:0 4:2:1 5:1:1 6:1:0 7:2:3 8:0:0 9:1:1 10:0:0 11:0:0 12:0:0 13:0:0 14:2:3 15:0:0 1 0 0 0 1 0:2:r2:mad@base_0:inject 1:3:r4:sub@base_1:inject 2:20:r6:sub@base_16:inject 3:25:r5:mulhi@base_15:lossy 4:26:r0:load@base_25:inject 5:27:r4:rotl@base_23:bijective 6:28:r7:load@base_27:inject 7:32:r3:rotl@base_30:bijective 8:35:r4:rotr@base_33:bijective 9:36:r7:load@base_32:inject 10:41:r4:xor@base_40:inject 11:43:r1:load@base_35:inject 12:51:r3:load@base_43:inject 13:52:r5:mad@base_46:inject 14:55:r4:load@base_51:inject 15:63:r7:add@base_58:inject +igneum-ca3-v4-uniform/482 51d47a378fe88747 0 0:2:1 1:1:0 2:0:0 3:1:0 4:1:1 5:2:2 6:0:0 7:1:0 8:1:0 9:2:0 10:1:0 11:2:0 12:1:0 13:1:1 14:0:0 15:1:0 3 1 0 1 1 0:6:r7:mad@base_5:inject 1:11:r3:mulhi@base_10:lossy 2:12:r4:shfl@base_3:inject 3:18:r7:or@base_16:lossy 4:19:r0:load@base_18:inject 5:22:r0:mul@base_20:lossy 6:35:r5:load@base_6:inject 7:37:r4:shfl@base_33:inject 8:38:r6:load@base_22:inject 9:41:r2:rotl@base_39:bijective 10:43:r0:load@base_41:inject 11:47:r2:rotl@base_46:bijective 12:49:r7:sub@base_44:inject 13:56:r0:load@base_49:inject 14:58:r4:load@base_56:inject 15:61:r7:xor@base_57:inject +igneum-ca3-v4-uniform/483 3176e1d7253eaff4 1 0:2:0 1:2:1 2:0:0 3:1:0 4:0:0 5:2:1 6:1:1 7:1:0 8:1:0 9:0:0 10:0:0 11:1:0 12:0:0 13:0:0 14:1:0 15:0:0 1 0 0 1 0 0:6:r1:mad@base_1:inject 1:8:r7:rotl@base_7:bijective 2:10:r0:load@base_6:inject 3:11:r3:xor@base_5:inject 4:17:r7:xor@base_12:inject 5:22:r3:sub@base_18:inject 6:28:r7:rotl@base_25:bijective 7:36:r0:rotr@base_31:bijective 8:39:r5:rotr@base_34:bijective 9:40:r0:sub@base_37:inject 10:41:r6:load@base_40:inject 11:42:r2:load@base_41:inject 12:43:r1:sub@base_33:inject 13:51:r3:rotr@base_48:bijective 14:52:r2:mul@base_46:lossy 15:56:r3:rotr@base_53:bijective +igneum-ca3-v4-uniform/484 c6ba49c89402cf1d 0 0:1:0 1:2:1 2:1:0 3:1:0 4:2:1 5:1:1 6:2:3 7:2:2 8:0:0 9:1:0 10:0:0 11:0:0 12:0:0 13:0:0 14:1:1 15:0:0 2 0 0 2 0 0:1:r6:shfl@base_0:inject 1:8:r7:load@base_1:inject 2:9:r5:rotr@base_3:bijective 3:13:r6:xor@base_10:inject 4:14:r4:load@base_13:inject 5:18:r0:sub@base_7:inject 6:19:r5:mul@base_12:lossy 7:23:r1:load@base_18:inject 8:24:r2:mul@base_22:lossy 9:29:r6:load@base_24:inject 10:30:r3:xor@base_17:inject 11:33:r4:rotl@base_32:bijective 12:37:r6:load@base_33:inject 13:43:r2:shfl@base_36:inject 14:51:r7:sub@base_44:inject 15:56:r2:mad@base_55:inject +igneum-ca3-v4-uniform/485 38badc69a242f1eb 0 0:0:0 1:1:1 2:2:1 3:1:0 4:0:0 5:1:1 6:0:0 7:2:3 8:1:1 9:2:3 10:2:0 11:0:0 12:1:1 13:0:0 14:0:0 15:0:0 1 0 0 0 1 0:4:r5:rotl@base_1:bijective 1:7:r7:mad@base_3:inject 2:8:r0:add@base_5:inject 3:12:r2:mad@base_2:inject 4:16:r3:load@base_12:inject 5:17:r7:mulhi@base_9:lossy 6:19:r0:load@base_16:inject 7:20:r7:load@base_19:inject 8:24:r4:load@base_20:inject 9:27:r2:shfl@base_25:inject 10:32:r0:add@base_31:inject 11:35:r6:xor@base_33:inject 12:39:r0:load@base_35:inject 13:41:r3:xor@base_38:inject 14:45:r7:load@base_32:inject 15:52:r1:load@base_45:inject +igneum-ca3-v4-uniform/486 1bcbf7a5471de741 0 0:0:0 1:0:0 2:1:1 3:0:0 4:0:0 5:2:3 6:2:2 7:0:0 8:0:0 9:0:0 10:1:0 11:2:2 12:2:3 13:2:3 14:0:0 15:2:3 2 1 0 1 0 0:1:r2:mul@base_0:lossy 1:4:r1:load@base_1:inject 2:6:r5:add@base_3:inject 3:7:r0:load@base_6:inject 4:13:r3:add@base_10:inject 5:21:r4:add@base_19:inject 6:22:r6:load@base_21:inject 7:29:r7:add@base_24:inject 8:30:r2:rotl@base_16:bijective 9:32:r5:load@base_29:inject 10:41:r1:or@base_37:lossy 11:43:r2:xor@base_42:inject 12:49:r6:sub@base_31:inject 13:55:r2:add@base_48:inject 14:60:r3:load@base_43:inject 15:62:r4:add@base_53:inject +igneum-ca3-v4-uniform/487 a278f6c6aca17d85 0 0:2:2 1:1:1 2:1:1 3:2:0 4:1:0 5:0:0 6:2:1 7:2:3 8:2:0 9:0:0 10:0:0 11:0:0 12:1:1 13:0:0 14:2:1 15:2:2 5 2 0 2 1 0:4:r6:or@base_0:lossy 1:13:r2:sub@base_10:inject 2:19:r4:mad@base_14:inject 3:22:r2:mul@base_16:lossy 4:30:r7:rotr@base_18:bijective 5:32:r7:or@base_31:lossy 6:38:r4:mulhi@base_35:lossy 7:42:r2:mul@base_37:lossy 8:47:r5:xor@base_45:inject 9:48:r3:xor@base_34:inject 10:53:r5:xor@base_50:inject 11:54:r0:shfl@base_49:inject 12:58:r3:load@base_54:inject 13:59:r5:load@base_58:inject 14:61:r7:load@base_53:inject 15:63:r6:add@base_62:inject +igneum-ca3-v4-uniform/488 efdc63099f0c2368 0 0:2:2 1:1:0 2:0:0 3:0:0 4:2:0 5:1:1 6:0:0 7:1:1 8:1:0 9:1:1 10:2:2 11:2:2 12:2:1 13:2:1 14:1:0 15:2:1 1 0 0 0 1 0:8:r1:sub@base_4:inject 1:9:r7:rotr@base_7:bijective 2:12:r2:shfl@base_10:inject 3:16:r0:mad@base_6:inject 4:19:r1:xor@base_18:inject 5:25:r3:mulhi@base_20:lossy 6:28:r6:rotr@base_27:bijective 7:31:r7:mad@base_30:inject 8:46:r7:rotl@base_45:bijective 9:47:r4:load@base_19:inject 10:48:r5:xor@base_44:inject 11:51:r5:sub@base_49:inject 12:58:r1:add@base_57:inject 13:61:r0:xor@base_54:inject 14:62:r7:xor@base_60:inject 15:63:r2:load@base_61:inject +igneum-ca3-v4-uniform/489 6eaf276972711344 0 0:1:1 1:0:0 2:0:0 3:2:0 4:2:1 5:0:0 6:2:2 7:0:0 8:1:0 9:0:0 10:1:0 11:1:1 12:0:0 13:0:0 14:2:0 15:1:0 6 1 0 3 2 0:4:r1:rotl@base_2:bijective 1:7:r2:rotl@base_6:bijective 2:8:r3:rotl@base_5:bijective 3:9:r7:load@base_8:inject 4:11:r4:load@base_9:inject 5:21:r0:mad@base_18:inject 6:23:r7:mul@base_12:lossy 7:26:r6:rotl@base_22:bijective 8:27:r7:mulhi@base_25:lossy 9:28:r1:or@base_13:lossy 10:29:r2:mad@base_24:inject 11:31:r4:load@base_26:inject 12:35:r3:add@base_34:inject 13:37:r6:mulhi@base_36:lossy 14:38:r5:mul@base_33:lossy 15:49:r3:mul@base_43:lossy +igneum-ca3-v4-uniform/490 ccb85738ef9427d9 0 0:1:1 1:0:0 2:1:1 3:0:0 4:1:1 5:2:2 6:1:1 7:0:0 8:1:0 9:2:1 10:0:0 11:2:3 12:2:3 13:1:0 14:1:1 15:1:0 5 0 0 3 2 0:2:r3:shfl@base_1:inject 1:3:r7:mul@base_0:lossy 2:8:r7:rotl@base_5:bijective 3:9:r0:mulhi@base_4:lossy 4:16:r1:rotr@base_7:bijective 5:18:r5:load@base_8:inject 6:21:r3:mul@base_10:lossy 7:37:r6:xor@base_36:inject 8:41:r2:rotl@base_39:bijective 9:44:r3:add@base_30:inject 10:45:r1:sub@base_20:inject 11:51:r5:mulhi@base_48:lossy 12:54:r7:mul@base_49:lossy 13:60:r1:add@base_50:inject 14:61:r7:rotr@base_56:bijective 15:62:r3:load@base_61:inject +igneum-ca3-v4-uniform/491 d3a77460b75d9ef1 0 0:1:1 1:1:0 2:0:0 3:2:3 4:0:0 5:0:0 6:1:1 7:2:1 8:1:1 9:2:0 10:2:0 11:1:0 12:2:0 13:2:1 14:2:3 15:1:1 3 1 0 1 1 0:1:r5:sub@base_0:inject 1:8:r0:or@base_6:lossy 2:12:r4:load@base_8:inject 3:17:r7:xor@base_13:inject 4:18:r1:shfl@base_14:inject 5:22:r3:mad@base_11:inject 6:24:r4:add@base_21:inject 7:27:r1:shfl@base_20:inject 8:33:r3:sub@base_25:inject 9:44:r2:mulhi@base_36:lossy 10:48:r5:mad@base_47:inject 11:49:r1:xor@base_45:inject 12:50:r0:mul@base_31:lossy 13:54:r2:mad@base_51:inject 14:55:r5:rotr@base_52:bijective 15:58:r7:load@base_54:inject +igneum-ca3-v4-uniform/492 0418010195e449f9 0 0:1:1 1:0:0 2:1:1 3:1:0 4:1:0 5:1:0 6:1:0 7:0:0 8:2:2 9:1:1 10:2:0 11:2:3 12:1:1 13:2:1 14:0:0 15:2:0 3 1 0 1 1 0:4:r4:sub@base_2:inject 1:5:r7:sub@base_3:inject 2:7:r2:load@base_4:inject 3:9:r1:xor@base_6:inject 4:10:r6:shfl@base_8:inject 5:13:r1:add@base_12:inject 6:15:r3:load@base_10:inject 7:19:r6:load@base_13:inject 8:22:r2:or@base_18:lossy 9:30:r5:mulhi@base_17:lossy 10:31:r3:mul@base_20:lossy 11:44:r2:load@base_30:inject 12:45:r7:shfl@base_41:inject 13:46:r0:add@base_40:inject 14:47:r6:xor@base_37:inject 15:52:r4:load@base_45:inject +igneum-ca3-v4-uniform/493 769567ab5aa100da 0 0:1:0 1:1:0 2:1:1 3:0:0 4:1:1 5:1:1 6:2:0 7:2:1 8:0:0 9:2:3 10:0:0 11:2:3 12:0:0 13:0:0 14:1:1 15:2:3 3 1 0 1 1 0:11:r1:mul@base_10:lossy 1:14:r6:load@base_11:inject 2:16:r2:sub@base_9:inject 3:19:r3:mulhi@base_18:lossy 4:24:r1:rotl@base_22:bijective 5:25:r4:load@base_19:inject 6:26:r5:load@base_24:inject 7:27:r7:rotr@base_23:bijective 8:34:r5:add@base_28:inject 9:45:r6:rotl@base_44:bijective 10:51:r0:add@base_41:inject 11:52:r3:load@base_51:inject 12:53:r1:or@base_49:lossy 13:56:r1:shfl@base_54:inject 14:59:r0:load@base_56:inject 15:61:r2:rotl@base_55:bijective +igneum-ca3-v4-uniform/494 9057d2897fd2dde7 0 0:1:0 1:2:3 2:1:1 3:0:0 4:1:1 5:0:0 6:2:0 7:0:0 8:2:2 9:2:2 10:0:0 11:1:0 12:2:2 13:1:1 14:2:3 15:1:0 3 0 0 2 1 0:5:r0:mul@base_0:lossy 1:7:r7:mad@base_4:inject 2:11:r5:load@base_7:inject 3:14:r5:xor@base_13:inject 4:17:r3:mad@base_1:inject 5:19:r0:add@base_12:inject 6:20:r2:load@base_19:inject 7:28:r1:add@base_26:inject 8:33:r3:load@base_28:inject 9:34:r7:rotr@base_32:bijective 10:36:r5:mulhi@base_31:lossy 11:38:r4:load@base_34:inject 12:46:r0:rotl@base_39:bijective 13:51:r1:load@base_46:inject 14:54:r5:mul@base_45:lossy 15:58:r2:add@base_56:inject +igneum-ca3-v4-uniform/495 157513877dc0e5c3 0 0:0:0 1:1:1 2:1:1 3:1:1 4:1:0 5:0:0 6:2:1 7:2:0 8:0:0 9:0:0 10:0:0 11:1:0 12:1:1 13:0:0 14:2:2 15:2:0 5 1 0 3 1 0:8:r2:shfl@base_6:inject 1:12:r4:xor@base_7:inject 2:20:r2:mul@base_16:lossy 3:21:r0:shfl@base_18:inject 4:23:r2:mad@base_22:inject 5:25:r5:mul@base_19:lossy 6:27:r4:load@base_20:inject 7:29:r5:shfl@base_26:inject 8:30:r7:mad@base_28:inject 9:35:r5:or@base_34:lossy 10:38:r2:add@base_32:inject 11:39:r4:load@base_38:inject 12:40:r1:mul@base_31:lossy 13:44:r3:mulhi@base_43:lossy 14:46:r7:load@base_44:inject 15:61:r7:shfl@base_60:inject +igneum-ca3-v4-uniform/496 3ffcca2d092233a4 0 0:0:0 1:0:0 2:0:0 3:1:0 4:1:0 5:0:0 6:1:1 7:1:1 8:0:0 9:0:0 10:0:0 11:0:0 12:2:3 13:2:3 14:2:2 15:0:0 3 1 0 1 1 0:6:r0:rotr@base_4:bijective 1:7:r2:load@base_6:inject 2:8:r5:mulhi@base_0:lossy 3:9:r3:mul@base_5:lossy 4:16:r7:add@base_15:inject 5:18:r0:shfl@base_13:inject 6:20:r4:rotr@base_11:bijective 7:21:r5:rotl@base_17:bijective 8:25:r0:load@base_21:inject 9:26:r1:load@base_25:inject 10:28:r4:xor@base_27:inject 11:31:r4:or@base_30:lossy 12:32:r0:load@base_28:inject 13:33:r1:load@base_31:inject 14:48:r1:rotl@base_44:bijective 15:55:r3:rotl@base_47:bijective +igneum-ca3-v4-uniform/497 ce63d0c23567058a 0 0:0:0 1:1:1 2:2:0 3:1:1 4:0:0 5:2:0 6:2:3 7:0:0 8:1:1 9:0:0 10:2:0 11:1:0 12:1:0 13:2:1 14:2:3 15:2:2 3 0 0 1 2 0:2:r2:rotl@base_1:bijective 1:6:r1:rotl@base_0:bijective 2:7:r3:xor@base_5:inject 3:13:r4:xor@base_12:inject 4:14:r2:load@base_13:inject 5:15:r6:xor@base_4:inject 6:26:r7:sub@base_21:inject 7:31:r3:rotl@base_28:bijective 8:40:r1:load@base_31:inject 9:44:r4:mul@base_39:lossy 10:49:r0:mulhi@base_46:lossy 11:51:r5:mulhi@base_42:lossy 12:52:r7:shfl@base_37:inject 13:54:r1:mad@base_53:inject 14:58:r5:load@base_54:inject 15:62:r2:add@base_61:inject +igneum-ca3-v4-uniform/498 35845ad16a6988ae 0 0:2:1 1:2:0 2:1:1 3:0:0 4:1:1 5:1:1 6:2:0 7:2:0 8:0:0 9:2:0 10:1:1 11:0:0 12:1:1 13:0:0 14:0:0 15:0:0 3 0 0 2 1 0:2:r3:add@base_0:inject 1:3:r7:load@base_2:inject 2:7:r0:load@base_3:inject 3:8:r6:mulhi@base_6:lossy 4:9:r7:rotr@base_4:bijective 5:16:r2:rotr@base_12:bijective 6:20:r0:mul@base_17:lossy 7:25:r3:load@base_7:inject 8:29:r3:mul@base_28:lossy 9:30:r5:load@base_25:inject 10:42:r7:shfl@base_37:inject 11:46:r1:rotl@base_39:bijective 12:51:r4:rotr@base_48:bijective 13:53:r0:add@base_43:inject 14:59:r2:shfl@base_38:inject 15:63:r1:rotl@base_62:bijective +igneum-ca3-v4-uniform/499 3d5edd212c1d047f 0 0:2:2 1:0:0 2:1:1 3:1:1 4:2:3 5:0:0 6:2:3 7:1:0 8:1:1 9:0:0 10:2:1 11:1:1 12:0:0 13:0:0 14:2:2 15:2:2 3 2 0 1 0 0:1:r3:mul@base_0:lossy 1:9:r2:or@base_6:lossy 2:10:r1:load@base_1:inject 3:17:r0:add@base_12:inject 4:30:r5:sub@base_20:inject 5:33:r0:mad@base_32:inject 6:36:r6:load@base_30:inject 7:38:r0:xor@base_35:inject 8:40:r1:load@base_36:inject 9:42:r3:load@base_33:inject 10:47:r4:shfl@base_46:inject 11:50:r4:shfl@base_49:inject 12:51:r6:load@base_47:inject 13:53:r3:mad@base_52:inject 14:54:r7:load@base_51:inject 15:60:r0:or@base_58:lossy +igneum-ca3-v4-uniform/500 e971ceb33d87c395 0 0:2:2 1:1:0 2:1:0 3:2:2 4:0:0 5:0:0 6:0:0 7:0:0 8:2:0 9:1:0 10:1:0 11:2:0 12:0:0 13:1:1 14:0:0 15:2:3 2 0 0 1 1 0:5:r4:mad@base_4:inject 1:7:r1:xor@base_2:inject 2:16:r2:mulhi@base_12:lossy 3:18:r3:sub@base_14:inject 4:21:r5:load@base_7:inject 5:24:r1:mul@base_23:lossy 6:26:r7:load@base_21:inject 7:29:r3:mad@base_22:inject 8:31:r0:add@base_20:inject 9:33:r7:load@base_29:inject 10:39:r4:load@base_26:inject 11:42:r0:mad@base_38:inject 12:47:r6:mad@base_46:inject 13:50:r1:xor@base_37:inject 14:56:r7:xor@base_49:inject 15:59:r0:sub@base_52:inject +igneum-ca3-v4-uniform/501 0b91ffea17cefd7b 0 0:2:1 1:2:1 2:1:0 3:1:0 4:1:0 5:0:0 6:1:0 7:0:0 8:1:1 9:2:3 10:0:0 11:1:0 12:2:0 13:2:2 14:1:1 15:2:2 3 0 0 0 3 0:5:r5:mulhi@base_2:lossy 1:9:r6:rotl@base_0:bijective 2:10:r2:rotr@base_3:bijective 3:17:r3:load@base_10:inject 4:20:r1:mad@base_18:inject 5:21:r5:rotr@base_14:bijective 6:26:r6:load@base_20:inject 7:31:r7:xor@base_30:inject 8:33:r7:mulhi@base_32:lossy 9:36:r1:mulhi@base_29:lossy 10:40:r4:load@base_31:inject 11:46:r2:mad@base_25:inject 12:50:r3:add@base_47:inject 13:52:r5:load@base_50:inject 14:56:r5:add@base_54:inject 15:61:r3:add@base_60:inject +igneum-ca3-v4-uniform/502 ee783c419ca2d45a 0 0:1:0 1:2:3 2:2:1 3:0:0 4:2:1 5:2:1 6:1:0 7:1:0 8:1:1 9:0:0 10:2:1 11:2:1 12:1:1 13:2:2 14:1:1 15:0:0 2 0 0 0 2 0:4:r5:mad@base_3:inject 1:5:r7:shfl@base_2:inject 2:11:r5:mad@base_6:inject 3:19:r1:load@base_5:inject 4:22:r0:mulhi@base_9:lossy 5:24:r2:load@base_22:inject 6:26:r3:add@base_21:inject 7:35:r3:xor@base_33:inject 8:36:r5:mad@base_34:inject 9:39:r7:add@base_32:inject 10:41:r1:load@base_26:inject 11:43:r2:load@base_41:inject 12:45:r1:shfl@base_42:inject 13:55:r4:mulhi@base_50:lossy 14:58:r2:add@base_53:inject 15:62:r6:load@base_55:inject +igneum-ca3-v4-uniform/503 7c13d6fafdcd2a8f 0 0:1:0 1:2:2 2:2:3 3:0:0 4:0:0 5:2:1 6:1:0 7:1:0 8:2:1 9:0:0 10:0:0 11:2:1 12:1:0 13:0:0 14:1:1 15:1:0 4 2 0 1 1 0:13:r7:xor@base_4:inject 1:14:r0:load@base_13:inject 2:15:r4:load@base_14:inject 3:22:r5:rotl@base_16:bijective 4:25:r6:or@base_18:lossy 5:26:r2:or@base_21:lossy 6:27:r0:rotr@base_20:bijective 7:28:r4:load@base_27:inject 8:36:r7:load@base_28:inject 9:38:r6:load@base_26:inject 10:41:r2:mad@base_37:inject 11:44:r3:load@base_41:inject 12:52:r4:mulhi@base_50:lossy 13:55:r0:load@base_36:inject 14:56:r2:mul@base_53:lossy 15:59:r2:add@base_58:inject +igneum-ca3-v4-uniform/504 29c116a6103c2399 0 0:1:0 1:0:0 2:1:0 3:2:2 4:2:1 5:0:0 6:2:1 7:0:0 8:2:3 9:2:1 10:0:0 11:2:2 12:0:0 13:1:1 14:0:0 15:2:1 3 0 0 2 1 0:5:r0:shfl@base_0:inject 1:9:r7:add@base_7:inject 2:12:r2:rotl@base_1:bijective 3:13:r0:load@base_9:inject 4:21:r4:mulhi@base_20:lossy 5:26:r5:rotr@base_25:bijective 6:29:r4:rotl@base_22:bijective 7:32:r0:load@base_21:inject 8:35:r4:load@base_32:inject 9:36:r7:rotr@base_14:bijective 10:41:r1:xor@base_40:inject 11:42:r3:mul@base_39:lossy 12:44:r2:mad@base_34:inject 13:53:r7:load@base_41:inject 14:60:r0:mul@base_59:lossy 15:62:r2:load@base_60:inject +igneum-ca3-v4-uniform/505 ce4066b7d978307b 0 0:0:0 1:1:1 2:0:0 3:1:0 4:0:0 5:2:3 6:0:0 7:0:0 8:1:0 9:2:2 10:1:0 11:2:1 12:1:0 13:1:1 14:2:1 15:1:0 7 2 0 4 1 0:1:r0:rotr@base_0:bijective 1:2:r6:load@base_1:inject 2:6:r5:mul@base_3:lossy 3:7:r3:load@base_6:inject 4:8:r4:rotl@base_4:bijective 5:9:r6:mad@base_5:inject 6:13:r7:mad@base_10:inject 7:17:r4:mul@base_16:lossy 8:21:r2:mul@base_18:lossy 9:36:r7:or@base_29:lossy 10:39:r5:mulhi@base_32:lossy 11:41:r4:mul@base_40:lossy 12:47:r3:or@base_37:lossy 13:48:r2:sub@base_46:inject 14:52:r5:load@base_47:inject 15:58:r1:add@base_57:inject +igneum-ca3-v4-uniform/506 80844b7fc6e11e3e 0 0:2:0 1:0:0 2:1:1 3:2:3 4:1:1 5:1:0 6:2:3 7:1:0 8:0:0 9:2:2 10:0:0 11:1:1 12:0:0 13:0:0 14:0:0 15:2:1 1 0 0 0 1 0:3:r0:rotl@base_0:bijective 1:4:r4:shfl@base_1:inject 2:5:r1:load@base_3:inject 3:6:r5:rotl@base_2:bijective 4:10:r6:rotl@base_8:bijective 5:14:r5:xor@base_12:inject 6:24:r4:xor@base_13:inject 7:27:r7:rotr@base_9:bijective 8:29:r2:load@base_27:inject 9:30:r6:load@base_29:inject 10:35:r5:load@base_30:inject 11:39:r7:load@base_35:inject 12:47:r2:load@base_39:inject 13:48:r1:mad@base_42:inject 14:59:r2:mulhi@base_55:lossy 15:63:r5:add@base_58:inject +igneum-ca3-v4-uniform/507 1b58fd36660b0bce 0 0:1:0 1:1:1 2:0:0 3:1:0 4:2:3 5:2:3 6:0:0 7:0:0 8:0:0 9:0:0 10:1:0 11:0:0 12:0:0 13:0:0 14:1:1 15:0:0 4 1 0 2 1 0:2:r2:mul@base_1:lossy 1:14:r2:mul@base_9:lossy 2:19:r4:rotl@base_4:bijective 3:21:r6:add@base_11:inject 4:23:r1:rotl@base_17:bijective 5:29:r2:mulhi@base_25:lossy 6:32:r1:shfl@base_24:inject 7:33:r6:rotl@base_28:bijective 8:39:r4:load@base_32:inject 9:49:r2:shfl@base_48:inject 10:52:r6:load@base_49:inject 11:53:r7:load@base_52:inject 12:55:r0:rotr@base_40:bijective 13:61:r6:or@base_56:lossy 14:62:r7:load@base_55:inject 15:63:r0:load@base_61:inject +igneum-ca3-v4-uniform/508 05145e88588409c5 0 0:1:0 1:1:0 2:2:1 3:0:0 4:0:0 5:1:1 6:0:0 7:0:0 8:1:1 9:0:0 10:1:1 11:0:0 12:2:0 13:2:2 14:1:0 15:0:0 4 0 0 1 3 0:3:r7:mulhi@base_2:lossy 1:14:r4:rotr@base_12:bijective 2:15:r7:load@base_14:inject 3:19:r5:add@base_9:inject 4:23:r1:shfl@base_6:inject 5:24:r2:rotl@base_20:bijective 6:30:r3:rotl@base_27:bijective 7:32:r0:load@base_30:inject 8:34:r7:mulhi@base_33:lossy 9:35:r4:add@base_16:inject 10:43:r3:mul@base_39:lossy 11:44:r5:rotr@base_37:bijective 12:48:r5:xor@base_47:inject 13:51:r6:mulhi@base_42:lossy 14:59:r4:shfl@base_56:inject 15:60:r7:load@base_59:inject +igneum-ca3-v4-uniform/509 6737e1271c0fc9a2 0 0:2:0 1:0:0 2:1:0 3:2:2 4:1:0 5:2:3 6:2:3 7:2:2 8:1:1 9:2:3 10:2:0 11:2:0 12:0:0 13:0:0 14:0:0 15:0:0 5 0 0 2 3 0:3:r3:mulhi@base_0:lossy 1:15:r3:rotl@base_12:bijective 2:18:r7:mulhi@base_16:lossy 3:21:r3:shfl@base_19:inject 4:28:r1:shfl@base_23:inject 5:29:r0:sub@base_22:inject 6:31:r5:sub@base_30:inject 7:35:r6:load@base_18:inject 8:37:r2:mul@base_36:lossy 9:40:r7:mul@base_34:lossy 10:42:r5:load@base_40:inject 11:48:r6:load@base_42:inject 12:50:r5:load@base_48:inject 13:52:r1:mulhi@base_51:lossy 14:57:r7:rotl@base_49:bijective 15:59:r0:rotr@base_44:bijective +igneum-ca3-v4-uniform/510 6a54349b4e07a82b 0 0:0:0 1:2:1 2:0:0 3:1:0 4:2:3 5:1:0 6:1:0 7:1:1 8:0:0 9:0:0 10:2:2 11:1:1 12:1:1 13:1:0 14:0:0 15:1:1 2 0 0 2 0 0:2:r3:rotl@base_0:bijective 1:5:r3:rotl@base_4:bijective 2:6:r4:mul@base_3:lossy 3:16:r7:add@base_10:inject 4:17:r6:load@base_6:inject 5:22:r5:rotl@base_20:bijective 6:25:r0:add@base_15:inject 7:26:r7:rotl@base_21:bijective 8:32:r4:rotl@base_18:bijective 9:39:r5:rotr@base_35:bijective 10:42:r1:mad@base_41:inject 11:43:r3:sub@base_19:inject 12:48:r0:load@base_42:inject 13:55:r5:load@base_48:inject 14:59:r4:load@base_43:inject 15:62:r0:mul@base_57:lossy +igneum-ca3-v4-uniform/511 fb70e45b97c8ea4a 0 0:1:0 1:1:0 2:1:0 3:0:0 4:0:0 5:1:1 6:2:1 7:1:1 8:1:1 9:0:0 10:1:1 11:0:0 12:2:1 13:1:1 14:2:1 15:0:0 4 1 0 1 2 0:2:r7:sub@base_0:inject 1:5:r4:add@base_4:inject 2:9:r1:add@base_7:inject 3:10:r4:load@base_9:inject 4:12:r0:load@base_10:inject 5:13:r7:xor@base_8:inject 6:19:r3:load@base_12:inject 7:22:r3:sub@base_20:inject 8:27:r1:xor@base_16:inject 9:34:r1:add@base_33:inject 10:37:r3:shfl@base_30:inject 11:41:r4:mulhi@base_35:lossy 12:45:r4:mulhi@base_42:lossy 13:53:r3:mul@base_51:lossy 14:60:r2:or@base_57:lossy 15:62:r6:shfl@base_54:inject +igneum-ca3-v4-uniform/512 d1d710e39c37f6ed 0 0:2:2 1:0:0 2:0:0 3:0:0 4:0:0 5:0:0 6:1:1 7:2:3 8:0:0 9:1:0 10:1:0 11:0:0 12:2:2 13:0:0 14:1:0 15:0:0 4 1 0 1 2 0:2:r7:sub@base_1:inject 1:4:r1:load@base_2:inject 2:8:r1:mulhi@base_7:lossy 3:9:r6:mul@base_3:lossy 4:10:r0:load@base_8:inject 5:27:r2:mulhi@base_20:lossy 6:28:r7:add@base_21:inject 7:29:r6:load@base_27:inject 8:36:r1:xor@base_33:inject 9:39:r5:sub@base_37:inject 10:40:r6:xor@base_32:inject 11:45:r7:shfl@base_41:inject 12:46:r2:shfl@base_42:inject 13:56:r4:shfl@base_48:inject 14:60:r7:mad@base_58:inject 15:62:r0:or@base_59:lossy +igneum-ca3-v4-uniform/513 e3d98b3336ffd2b7 0 0:2:1 1:2:2 2:1:0 3:0:0 4:2:0 5:1:0 6:2:3 7:1:0 8:2:3 9:2:0 10:1:0 11:1:1 12:0:0 13:2:1 14:2:0 15:2:3 1 1 0 0 0 0:10:r2:rotr@base_5:bijective 1:12:r3:mad@base_4:inject 2:13:r1:load@base_10:inject 3:17:r6:xor@base_15:inject 4:19:r2:add@base_16:inject 5:21:r6:mad@base_20:inject 6:24:r3:load@base_17:inject 7:30:r1:or@base_23:lossy 8:31:r4:add@base_27:inject 9:34:r0:load@base_24:inject 10:35:r3:shfl@base_28:inject 11:41:r7:rotr@base_40:bijective 12:45:r4:shfl@base_43:inject 13:47:r0:add@base_46:inject 14:50:r5:load@base_41:inject 15:60:r3:xor@base_57:inject +igneum-ca3-v4-uniform/514 418401200c1580f2 0 0:1:0 1:0:0 2:0:0 3:2:2 4:1:0 5:0:0 6:0:0 7:1:0 8:2:1 9:2:0 10:2:3 11:1:1 12:2:3 13:0:0 14:0:0 15:2:1 3 0 0 2 1 0:1:r5:add@base_0:inject 1:6:r6:mulhi@base_3:lossy 2:8:r0:mad@base_5:inject 3:12:r5:load@base_8:inject 4:21:r4:rotr@base_10:bijective 5:22:r7:load@base_21:inject 6:23:r5:mul@base_15:lossy 7:30:r2:mad@base_25:inject 8:34:r4:rotr@base_33:bijective 9:36:r5:sub@base_28:inject 10:37:r0:mad@base_29:inject 11:41:r1:load@base_36:inject 12:50:r6:mul@base_45:lossy 13:51:r4:load@base_50:inject 14:52:r7:load@base_51:inject 15:61:r0:rotl@base_57:bijective +igneum-ca3-v4-uniform/515 ce83f73ddd3f444c 0 0:0:0 1:2:2 2:0:0 3:2:1 4:1:0 5:2:2 6:1:0 7:2:1 8:2:2 9:0:0 10:0:0 11:2:3 12:1:0 13:1:0 14:1:1 15:2:3 1 1 0 0 0 0:4:r4:or@base_1:lossy 1:13:r7:rotr@base_2:bijective 2:16:r4:sub@base_15:inject 3:17:r6:rotl@base_12:bijective 4:24:r2:rotl@base_18:bijective 5:26:r4:rotl@base_23:bijective 6:27:r3:load@base_24:inject 7:29:r7:xor@base_14:inject 8:30:r5:load@base_26:inject 9:37:r0:mad@base_31:inject 10:39:r6:load@base_37:inject 11:40:r1:rotl@base_28:bijective 12:41:r2:xor@base_38:inject 13:42:r4:add@base_34:inject 14:51:r5:mad@base_49:inject 15:60:r0:add@base_54:inject +igneum-ca3-v4-uniform/516 29fd15cfe43d7353 0 0:1:0 1:2:1 2:1:0 3:1:0 4:0:0 5:1:1 6:1:0 7:0:0 8:0:0 9:0:0 10:2:1 11:0:0 12:1:0 13:0:0 14:1:0 15:0:0 2 0 0 1 1 0:10:r1:mul@base_8:lossy 1:13:r4:xor@base_9:inject 2:15:r1:add@base_14:inject 3:17:r3:mad@base_4:inject 4:18:r5:load@base_13:inject 5:25:r0:sub@base_23:inject 6:30:r3:xor@base_29:inject 7:34:r0:sub@base_28:inject 8:35:r2:rotl@base_31:bijective 9:39:r0:mulhi@base_37:lossy 10:40:r1:load@base_39:inject 11:42:r4:rotr@base_36:bijective 12:47:r5:load@base_40:inject 13:49:r0:mad@base_48:inject 14:52:r3:sub@base_50:inject 15:63:r7:mad@base_61:inject +igneum-ca3-v4-uniform/517 0251d2ec0710be24 0 0:1:0 1:0:0 2:1:0 3:2:0 4:1:1 5:2:3 6:1:1 7:1:0 8:0:0 9:0:0 10:0:0 11:0:0 12:1:1 13:2:1 14:2:3 15:1:0 3 0 0 1 2 0:11:r2:shfl@base_3:inject 1:18:r5:mul@base_16:lossy 2:19:r3:mulhi@base_17:lossy 3:20:r2:sub@base_14:inject 4:22:r0:load@base_19:inject 5:23:r1:load@base_22:inject 6:26:r6:rotr@base_25:bijective 7:29:r0:load@base_26:inject 8:31:r3:mulhi@base_30:lossy 9:32:r1:load@base_31:inject 10:34:r7:load@base_29:inject 11:48:r5:rotr@base_39:bijective 12:49:r6:rotl@base_42:bijective 13:54:r1:sub@base_51:inject 14:56:r3:load@base_48:inject 15:63:r3:rotr@base_58:bijective +igneum-ca3-v4-uniform/518 891c740b210e478c 0 0:1:1 1:0:0 2:1:1 3:0:0 4:0:0 5:1:1 6:1:1 7:1:0 8:0:0 9:1:0 10:0:0 11:0:0 12:2:1 13:1:1 14:1:1 15:2:3 1 0 0 1 0 0:1:r3:rotl@base_0:bijective 1:7:r5:add@base_4:inject 2:17:r2:add@base_13:inject 3:21:r1:rotl@base_16:bijective 4:24:r2:xor@base_19:inject 5:27:r7:load@base_24:inject 6:30:r4:load@base_27:inject 7:31:r3:mul@base_29:lossy 8:34:r6:load@base_31:inject 9:38:r0:sub@base_33:inject 10:39:r6:load@base_38:inject 11:42:r4:load@base_34:inject 12:46:r3:sub@base_36:inject 13:48:r2:load@base_39:inject 14:54:r3:load@base_48:inject 15:57:r1:mad@base_52:inject +igneum-ca3-v4-uniform/519 7346364bd6e68045 0 0:0:0 1:1:0 2:0:0 3:0:0 4:1:1 5:0:0 6:2:1 7:0:0 8:1:0 9:0:0 10:1:0 11:2:3 12:2:2 13:1:0 14:1:0 15:2:2 4 0 0 3 1 0:4:r7:mul@base_2:lossy 1:5:r2:rotl@base_1:bijective 2:10:r3:load@base_5:inject 3:14:r4:sub@base_6:inject 4:17:r4:rotr@base_15:bijective 5:20:r7:shfl@base_16:inject 6:30:r0:xor@base_8:inject 7:31:r2:load@base_20:inject 8:39:r4:load@base_31:inject 9:40:r1:mul@base_37:lossy 10:41:r3:load@base_40:inject 11:46:r7:mul@base_29:lossy 12:49:r2:rotl@base_34:bijective 13:55:r3:add@base_48:inject 14:61:r4:rotl@base_60:bijective 15:63:r6:mulhi@base_59:lossy +igneum-ca3-v4-uniform/520 fc3d107a63b9bf69 0 0:2:3 1:1:1 2:2:1 3:2:3 4:0:0 5:2:0 6:2:3 7:1:1 8:1:0 9:2:3 10:1:1 11:2:3 12:0:0 13:0:0 14:0:0 15:2:3 1 0 0 1 0 0:1:r1:xor@base_0:inject 1:7:r4:sub@base_5:inject 2:15:r0:xor@base_8:inject 3:16:r3:rotl@base_13:bijective 4:27:r0:xor@base_17:inject 5:28:r3:xor@base_22:inject 6:29:r5:load@base_27:inject 7:35:r1:load@base_16:inject 8:38:r4:load@base_35:inject 9:39:r2:mad@base_19:inject 10:44:r6:mul@base_41:lossy 11:46:r4:add@base_43:inject 12:47:r3:rotl@base_42:bijective 13:51:r0:load@base_47:inject 14:54:r5:sub@base_52:inject 15:59:r2:rotl@base_58:bijective +igneum-ca3-v4-uniform/521 3980a0d2ea4f0009 0 0:2:3 1:1:0 2:1:1 3:1:1 4:1:1 5:0:0 6:2:3 7:0:0 8:2:1 9:0:0 10:2:2 11:0:0 12:0:0 13:0:0 14:2:0 15:2:1 1 0 0 1 0 0:1:r1:mul@base_0:lossy 1:8:r1:mad@base_4:inject 2:14:r2:add@base_2:inject 3:16:r1:load@base_14:inject 4:18:r2:sub@base_17:inject 5:21:r0:add@base_11:inject 6:24:r5:sub@base_23:inject 7:30:r1:rotr@base_25:bijective 8:35:r5:load@base_30:inject 9:36:r1:load@base_35:inject 10:49:r2:xor@base_47:inject 11:51:r0:shfl@base_43:inject 12:56:r5:sub@base_50:inject 13:58:r4:rotr@base_57:bijective 14:59:r3:load@base_56:inject 15:62:r7:load@base_59:inject +igneum-ca3-v4-uniform/522 36bd342cec6a645c 0 0:2:0 1:0:0 2:2:3 3:2:3 4:0:0 5:0:0 6:0:0 7:2:3 8:2:0 9:0:0 10:0:0 11:1:0 12:1:1 13:1:1 14:0:0 15:0:0 3 1 0 1 1 0:4:r2:add@base_0:inject 1:10:r2:add@base_7:inject 2:16:r1:rotl@base_6:bijective 3:21:r1:mad@base_20:inject 4:23:r2:or@base_22:lossy 5:26:r4:add@base_25:inject 6:28:r2:load@base_26:inject 7:29:r3:load@base_28:inject 8:30:r7:mul@base_27:lossy 9:31:r4:load@base_30:inject 10:38:r5:rotl@base_33:bijective 11:42:r3:add@base_37:inject 12:46:r6:xor@base_44:inject 13:51:r1:xor@base_50:inject 14:56:r3:mad@base_48:inject 15:63:r4:mulhi@base_60:lossy +igneum-ca3-v4-uniform/523 98b3857422a578fe 0 0:2:2 1:1:1 2:0:0 3:1:1 4:0:0 5:0:0 6:0:0 7:0:0 8:2:0 9:2:1 10:0:0 11:2:1 12:1:1 13:0:0 14:0:0 15:1:1 2 0 0 1 1 0:6:r5:rotr@base_2:bijective 1:10:r1:rotl@base_7:bijective 2:11:r0:rotl@base_9:bijective 3:12:r7:load@base_10:inject 4:24:r7:xor@base_16:inject 5:25:r1:mul@base_18:lossy 6:31:r5:xor@base_27:inject 7:35:r4:sub@base_33:inject 8:36:r3:load@base_35:inject 9:37:r2:mulhi@base_32:lossy 10:38:r5:add@base_34:inject 11:43:r7:load@base_38:inject 12:45:r7:mad@base_44:inject 13:53:r3:load@base_43:inject 14:55:r4:add@base_52:inject 15:62:r2:sub@base_58:inject +igneum-ca3-v4-uniform/524 f218d9df38cc9abc 0 0:1:0 1:0:0 2:2:2 3:0:0 4:0:0 5:1:1 6:1:0 7:0:0 8:0:0 9:2:2 10:1:1 11:1:1 12:2:0 13:1:1 14:0:0 15:0:0 3 1 0 1 1 0:1:r3:or@base_0:lossy 1:5:r7:sub@base_3:inject 2:15:r3:xor@base_7:inject 3:18:r7:load@base_15:inject 4:21:r0:load@base_18:inject 5:24:r5:add@base_20:inject 6:25:r1:sub@base_17:inject 7:31:r3:shfl@base_27:inject 8:32:r1:mad@base_29:inject 9:42:r4:rotl@base_39:bijective 10:44:r5:mulhi@base_43:lossy 11:50:r5:add@base_48:inject 12:53:r2:shfl@base_51:inject 13:56:r7:load@base_44:inject 14:57:r0:mul@base_54:lossy 15:63:r6:shfl@base_61:inject +igneum-ca3-v4-uniform/525 604bf04277d094de 0 0:0:0 1:1:0 2:1:1 3:2:1 4:2:2 5:0:0 6:0:0 7:0:0 8:2:0 9:1:1 10:0:0 11:0:0 12:2:2 13:1:0 14:0:0 15:2:0 1 0 0 0 1 0:11:r3:rotl@base_10:bijective 1:13:r7:load@base_11:inject 2:14:r4:mulhi@base_12:lossy 3:16:r0:load@base_13:inject 4:18:r5:load@base_14:inject 5:20:r4:load@base_16:inject 6:31:r6:xor@base_23:inject 7:35:r4:shfl@base_32:inject 8:38:r7:load@base_35:inject 9:39:r0:load@base_38:inject 10:45:r1:rotr@base_44:bijective 11:49:r3:mad@base_40:inject 12:52:r5:sub@base_51:inject 13:57:r1:load@base_52:inject 14:58:r0:rotr@base_55:bijective 15:63:r4:shfl@base_46:inject +igneum-ca3-v4-uniform/526 aacb1c7ea2eb3e3c 0 0:0:0 1:1:1 2:1:1 3:1:1 4:1:1 5:1:1 6:0:0 7:1:1 8:1:0 9:0:0 10:1:0 11:2:3 12:1:1 13:2:2 14:2:2 15:2:3 4 0 0 2 2 0:5:r1:mad@base_3:inject 1:8:r7:rotr@base_6:bijective 2:12:r1:shfl@base_9:inject 3:14:r5:rotr@base_13:bijective 4:17:r2:mulhi@base_15:lossy 5:19:r5:mul@base_16:lossy 6:24:r3:mulhi@base_18:lossy 7:27:r2:sub@base_26:inject 8:29:r5:sub@base_20:inject 9:33:r4:xor@base_31:inject 10:37:r5:shfl@base_36:inject 11:40:r0:mul@base_32:lossy 12:46:r1:rotl@base_43:bijective 13:47:r7:load@base_33:inject 14:50:r1:shfl@base_49:inject 15:53:r4:mad@base_52:inject +igneum-ca3-v4-uniform/527 2cf6914d09509dda 0 0:2:2 1:0:0 2:2:1 3:1:1 4:2:0 5:2:0 6:0:0 7:0:0 8:0:0 9:0:0 10:2:2 11:0:0 12:2:1 13:0:0 14:0:0 15:0:0 5 1 0 1 3 0:8:r6:mulhi@base_5:lossy 1:16:r4:mulhi@base_7:lossy 2:20:r3:add@base_4:inject 3:22:r5:rotr@base_10:bijective 4:27:r1:xor@base_21:inject 5:28:r2:load@base_22:inject 6:30:r0:mul@base_17:lossy 7:31:r4:add@base_29:inject 8:33:r0:load@base_31:inject 9:39:r1:mad@base_32:inject 10:40:r2:sub@base_36:inject 11:41:r6:sub@base_37:inject 12:45:r4:mulhi@base_44:lossy 13:49:r7:or@base_47:lossy 14:50:r5:load@base_45:inject 15:57:r3:load@base_50:inject +igneum-ca3-v4-uniform/528 4e066b1d4933d5c9 0 0:2:1 1:2:1 2:1:1 3:1:0 4:1:1 5:0:0 6:0:0 7:1:1 8:0:0 9:2:1 10:2:3 11:2:1 12:2:3 13:0:0 14:1:1 15:2:2 4 1 0 1 2 0:5:r6:mulhi@base_0:lossy 1:8:r0:mulhi@base_7:lossy 2:16:r2:rotl@base_10:bijective 3:19:r6:rotr@base_15:bijective 4:24:r7:add@base_17:inject 5:25:r1:load@base_24:inject 6:26:r0:sub@base_23:inject 7:30:r6:load@base_26:inject 8:33:r3:rotr@base_18:bijective 9:34:r5:mad@base_31:inject 10:35:r2:load@base_30:inject 11:40:r7:xor@base_36:inject 12:41:r1:load@base_40:inject 13:44:r4:mul@base_43:lossy 14:59:r0:rotl@base_55:bijective 15:62:r1:or@base_42:lossy +igneum-ca3-v4-uniform/529 2d7c7881c5dc2fba 1 0:0:0 1:1:1 2:1:0 3:2:1 4:1:0 5:1:1 6:1:1 7:2:1 8:1:1 9:0:0 10:1:1 11:2:2 12:2:2 13:1:1 14:2:1 15:1:0 5 0 0 5 0 0:2:r1:mul@base_0:lossy 1:7:r3:load@base_2:inject 2:8:r2:rotr@base_5:bijective 3:14:r6:mul@base_3:lossy 4:18:r4:load@base_14:inject 5:19:r3:add@base_9:inject 6:21:r2:rotl@base_17:bijective 7:27:r5:xor@base_20:inject 8:35:r1:mul@base_34:lossy 9:42:r2:rotr@base_37:bijective 10:45:r0:sub@base_26:inject 11:50:r3:add@base_44:inject 12:52:r5:mul@base_51:lossy 13:59:r0:add@base_58:inject 14:61:r4:mul@base_60:lossy 15:63:r6:load@base_19:inject +igneum-ca3-v4-uniform/530 2e67ff52fe2ebfe8 0 0:1:1 1:2:1 2:1:1 3:2:0 4:2:2 5:1:1 6:2:2 7:0:0 8:2:2 9:1:0 10:0:0 11:0:0 12:1:0 13:0:0 14:1:1 15:2:3 2 0 0 1 1 0:1:r1:add@base_0:inject 1:2:r7:load@base_1:inject 2:13:r7:shfl@base_11:inject 3:20:r2:rotr@base_16:bijective 4:22:r3:xor@base_4:inject 5:23:r7:xor@base_15:inject 6:25:r5:shfl@base_17:inject 7:26:r1:load@base_22:inject 8:32:r2:sub@base_21:inject 9:33:r7:load@base_26:inject 10:34:r1:load@base_32:inject 11:49:r7:rotl@base_44:bijective 12:52:r2:load@base_49:inject 13:57:r7:mulhi@base_51:lossy 14:58:r5:mul@base_50:lossy 15:59:r2:load@base_57:inject +igneum-ca3-v4-uniform/531 5a5f7a49eae9eb7f 0 0:0:0 1:0:0 2:2:0 3:1:0 4:1:0 5:0:0 6:1:1 7:0:0 8:0:0 9:2:0 10:1:1 11:2:0 12:1:0 13:2:1 14:0:0 15:2:0 2 1 0 0 1 0:9:r2:or@base_8:lossy 1:14:r7:add@base_13:inject 2:15:r5:shfl@base_10:inject 3:16:r1:load@base_14:inject 4:21:r6:load@base_16:inject 5:24:r0:xor@base_19:inject 6:27:r2:mulhi@base_26:lossy 7:29:r4:rotr@base_25:bijective 8:42:r3:add@base_32:inject 9:43:r6:load@base_42:inject 10:51:r4:sub@base_49:inject 11:53:r2:sub@base_52:inject 12:55:r0:load@base_51:inject 13:58:r5:load@base_53:inject 14:62:r1:sub@base_54:inject 15:63:r2:load@base_62:inject +igneum-ca3-v4-uniform/532 08e17421d29f5a40 0 0:2:3 1:1:1 2:2:0 3:0:0 4:1:0 5:0:0 6:1:1 7:1:1 8:1:0 9:2:1 10:0:0 11:2:0 12:0:0 13:2:3 14:0:0 15:1:0 4 1 0 3 0 0:1:r7:rotr@base_0:bijective 1:4:r5:shfl@base_3:inject 2:10:r4:rotl@base_7:bijective 3:15:r3:add@base_14:inject 4:17:r0:load@base_10:inject 5:22:r5:rotl@base_18:bijective 6:27:r6:mul@base_26:lossy 7:28:r4:rotl@base_24:bijective 8:32:r7:mul@base_29:lossy 9:37:r4:add@base_35:inject 10:45:r4:mul@base_39:lossy 11:52:r2:or@base_49:lossy 12:58:r6:rotr@base_50:bijective 13:59:r7:add@base_53:inject 14:60:r3:load@base_58:inject 15:61:r2:add@base_54:inject +igneum-ca3-v4-uniform/533 4cac48888aab5fb7 0 0:1:1 1:2:2 2:2:1 3:1:1 4:0:0 5:0:0 6:0:0 7:1:1 8:0:0 9:0:0 10:2:0 11:1:0 12:0:0 13:1:0 14:0:0 15:0:0 2 0 0 2 0 0:9:r2:rotr@base_8:bijective 1:17:r6:sub@base_11:inject 2:21:r2:mad@base_13:inject 3:28:r1:shfl@base_12:inject 4:35:r0:mad@base_34:inject 5:38:r5:mad@base_20:inject 6:39:r0:mul@base_36:lossy 7:41:r3:mul@base_37:lossy 8:42:r0:xor@base_40:inject 9:43:r2:mad@base_31:inject 10:44:r4:load@base_42:inject 11:51:r6:rotr@base_48:bijective 12:55:r1:load@base_39:inject 13:56:r4:add@base_45:inject 14:59:r5:xor@base_53:inject 15:62:r5:xor@base_61:inject +igneum-ca3-v4-uniform/534 07b8349a9c7d091a 0 0:1:0 1:1:1 2:1:1 3:1:1 4:0:0 5:1:1 6:2:0 7:2:1 8:0:0 9:1:1 10:1:0 11:0:0 12:2:0 13:0:0 14:0:0 15:1:0 2 0 0 2 0 0:3:r7:add@base_2:inject 1:4:r3:add@base_0:inject 2:9:r2:add@base_7:inject 3:14:r3:mul@base_8:lossy 4:16:r5:add@base_13:inject 5:22:r0:rotl@base_18:bijective 6:28:r0:rotl@base_26:bijective 7:30:r7:mul@base_23:lossy 8:36:r4:sub@base_35:inject 9:39:r3:add@base_34:inject 10:42:r6:load@base_28:inject 11:51:r1:load@base_42:inject 12:52:r3:rotl@base_47:bijective 13:59:r7:shfl@base_43:inject 14:60:r6:add@base_46:inject 15:62:r5:load@base_60:inject +igneum-ca3-v4-uniform/535 7cb7d7163a7e80c4 0 0:2:3 1:1:1 2:2:0 3:1:1 4:2:0 5:0:0 6:2:3 7:1:0 8:0:0 9:2:3 10:1:1 11:0:0 12:0:0 13:2:0 14:0:0 15:0:0 1 1 0 0 0 0:1:r5:or@base_0:lossy 1:13:r6:add@base_9:inject 2:14:r3:shfl@base_2:inject 3:16:r5:rotr@base_11:bijective 4:17:r2:load@base_13:inject 5:25:r2:xor@base_23:inject 6:29:r6:load@base_25:inject 7:30:r5:sub@base_27:inject 8:31:r4:add@base_24:inject 9:32:r0:load@base_31:inject 10:35:r2:load@base_30:inject 11:37:r1:load@base_29:inject 12:48:r7:xor@base_47:inject 13:53:r4:mad@base_51:inject 14:54:r5:add@base_52:inject 15:63:r4:xor@base_58:inject +igneum-ca3-v4-uniform/536 b6ac43da6ea58fce 0 0:1:1 1:0:0 2:2:1 3:1:0 4:1:1 5:2:3 6:2:0 7:1:1 8:2:1 9:1:0 10:2:2 11:1:0 12:0:0 13:0:0 14:1:1 15:1:1 2 1 0 0 1 0:1:r3:shfl@base_0:inject 1:3:r1:load@base_1:inject 2:4:r4:or@base_2:lossy 3:11:r6:add@base_6:inject 4:14:r0:xor@base_13:inject 5:24:r2:sub@base_20:inject 6:25:r1:load@base_24:inject 7:26:r4:mad@base_5:inject 8:28:r7:add@base_15:inject 9:29:r1:load@base_26:inject 10:39:r2:xor@base_33:inject 11:43:r1:mad@base_37:inject 12:44:r0:mulhi@base_35:lossy 13:47:r3:rotr@base_45:bijective 14:52:r6:shfl@base_49:inject 15:54:r3:load@base_52:inject +igneum-ca3-v4-uniform/537 d4266722e9e4098a 0 0:1:1 1:0:0 2:1:1 3:1:0 4:0:0 5:2:1 6:0:0 7:2:0 8:1:0 9:1:0 10:2:1 11:1:1 12:1:0 13:1:1 14:2:1 15:0:0 2 1 0 0 1 0:14:r1:mad@base_6:inject 1:15:r0:rotr@base_10:bijective 2:18:r3:add@base_17:inject 3:19:r5:load@base_18:inject 4:23:r2:rotr@base_13:bijective 5:24:r0:mad@base_16:inject 6:26:r3:add@base_22:inject 7:30:r6:or@base_29:lossy 8:36:r4:mulhi@base_27:lossy 9:37:r3:load@base_36:inject 10:42:r6:add@base_33:inject 11:46:r3:add@base_41:inject 12:49:r5:xor@base_38:inject 13:50:r3:sub@base_48:inject 14:56:r1:sub@base_43:inject 15:63:r2:xor@base_61:inject +igneum-ca3-v4-uniform/538 e2b7d798d039ddf7 0 0:2:1 1:1:1 2:2:1 3:0:0 4:2:0 5:1:1 6:2:1 7:1:0 8:2:0 9:0:0 10:1:0 11:2:2 12:1:1 13:1:1 14:2:3 15:2:2 2 1 0 0 1 0:1:r0:mulhi@base_0:lossy 1:4:r3:mad@base_3:inject 2:6:r2:mad@base_5:inject 3:11:r7:shfl@base_7:inject 4:12:r4:mad@base_10:inject 5:17:r6:shfl@base_9:inject 6:20:r0:load@base_12:inject 7:22:r1:or@base_18:lossy 8:23:r3:rotr@base_21:bijective 9:27:r5:rotl@base_24:bijective 10:30:r6:xor@base_28:inject 11:34:r2:mad@base_33:inject 12:44:r7:add@base_31:inject 13:47:r3:add@base_45:inject 14:53:r2:add@base_52:inject 15:55:r7:load@base_47:inject +igneum-ca3-v4-uniform/539 a04cce796c12782b 0 0:1:0 1:0:0 2:1:1 3:0:0 4:2:3 5:0:0 6:0:0 7:0:0 8:0:0 9:0:0 10:2:2 11:0:0 12:0:0 13:2:3 14:0:0 15:2:2 4 0 0 2 2 0:1:r6:add@base_0:inject 1:2:r2:load@base_1:inject 2:3:r7:mulhi@shadow_243:lossy 3:8:r4:mulhi@base_4:lossy 4:12:r3:load@base_8:inject 5:18:r2:sub@base_14:inject 6:24:r6:sub@base_23:inject 7:28:r7:load@base_12:inject 8:37:r6:mul@base_32:lossy 9:39:r5:load@base_28:inject 10:46:r2:rotl@base_44:bijective 11:50:r1:mul@base_49:lossy 12:55:r7:add@base_53:inject 13:57:r5:add@base_56:inject 14:59:r4:load@base_50:inject 15:61:r3:shfl@base_60:inject +igneum-ca3-v4-uniform/540 6e9cefcb7e67fcb1 0 0:2:2 1:2:0 2:1:0 3:1:0 4:1:0 5:1:0 6:1:1 7:1:1 8:2:0 9:2:2 10:2:0 11:0:0 12:1:0 13:0:0 14:1:0 15:1:1 4 1 1 2 1 0:3:r3:mul@base_1:lossy 1:14:r2:xor@base_0:inject 2:16:r3:add@base_13:inject 3:19:r5:add@base_18:inject 4:23:r6:load@base_19:inject 5:33:r4:load@base_16:inject 6:37:r3:mul@base_31:lossy 7:38:r0:mulhi@base_28:lossy 8:39:r6:load@base_37:inject 9:40:r7:xor@base_36:inject 10:45:r6:xor@base_42:inject 11:47:r4:load@base_39:inject 12:48:r2:xor@base_46:inject 13:51:r4:or@base_49:lossy-or-chain1 14:53:r1:load@base_45:inject 15:63:r0:xor@base_61:inject +igneum-ca3-v4-uniform/541 2737c09382c87a39 0 0:2:0 1:0:0 2:2:1 3:0:0 4:2:2 5:0:0 6:1:1 7:1:1 8:1:0 9:1:0 10:0:0 11:1:1 12:1:0 13:1:1 14:0:0 15:1:0 3 0 0 2 1 0:3:r4:mul@base_1:lossy 1:8:r7:rotr@base_7:bijective 2:9:r5:load@base_8:inject 3:13:r5:mad@base_12:inject 4:15:r2:load@base_9:inject 5:17:r6:load@base_15:inject 6:19:r1:mul@base_14:lossy 7:20:r3:load@base_17:inject 8:24:r5:mad@base_21:inject 9:29:r0:rotl@base_25:bijective 10:30:r5:sub@base_26:inject 11:37:r3:mad@base_27:inject 12:41:r4:load@base_29:inject 13:43:r1:load@base_37:inject 14:44:r2:sub@base_39:inject 15:56:r3:mulhi@base_53:lossy +igneum-ca3-v4-uniform/542 9d540c9030b8009e 0 0:1:0 1:0:0 2:0:0 3:0:0 4:0:0 5:2:3 6:1:1 7:0:0 8:1:1 9:1:0 10:1:0 11:2:0 12:1:1 13:2:3 14:0:0 15:0:0 4 0 0 2 2 0:2:r3:add@base_0:inject 1:8:r0:xor@base_4:inject 2:11:r6:load@base_2:inject 3:13:r7:rotl@base_3:bijective 4:19:r4:shfl@base_15:inject 5:23:r3:rotl@base_17:bijective 6:24:r7:sub@base_18:inject 7:27:r0:shfl@base_25:inject 8:34:r4:mulhi@base_21:lossy 9:35:r6:mulhi@base_29:lossy 10:39:r3:load@base_24:inject 11:44:r4:mad@base_38:inject 12:53:r6:rotr@base_51:bijective 13:55:r5:xor@base_45:inject 14:62:r6:mul@base_60:lossy 15:63:r4:mul@base_56:lossy +igneum-ca3-v4-uniform/543 ab3bb4ff645d041a 0 0:0:0 1:0:0 2:2:0 3:2:1 4:1:1 5:0:0 6:0:0 7:1:0 8:1:0 9:2:3 10:1:0 11:1:0 12:2:0 13:0:0 14:1:1 15:0:0 4 1 0 1 2 0:2:r2:mul@base_0:lossy 1:7:r6:mulhi@base_6:lossy 2:10:r6:or@base_9:lossy 3:12:r1:load@base_10:inject 4:15:r0:mulhi@base_8:lossy 5:23:r3:sub@base_21:inject 6:26:r3:shfl@base_25:inject 7:28:r1:load@base_23:inject 8:35:r6:load@base_28:inject 9:37:r2:rotl@base_30:bijective 10:38:r0:xor@base_34:inject 11:43:r4:load@base_35:inject 12:52:r4:rotl@base_48:bijective 13:53:r7:rotl@base_47:bijective 14:58:r5:rotr@base_40:bijective 15:62:r3:add@base_45:inject +igneum-ca3-v4-uniform/544 b540c5e42cf93085 0 0:2:3 1:0:0 2:1:1 3:1:0 4:1:0 5:1:1 6:1:0 7:1:1 8:1:0 9:2:0 10:0:0 11:2:0 12:2:2 13:2:2 14:1:1 15:1:0 3 1 0 1 1 0:5:r1:mulhi@base_2:lossy 1:15:r7:rotl@base_9:bijective 2:19:r4:add@base_18:inject 3:23:r5:add@base_10:inject 4:25:r3:load@base_23:inject 5:26:r2:mad@base_13:inject 6:27:r6:mad@base_24:inject 7:28:r0:load@base_25:inject 8:29:r4:xor@base_20:inject 9:36:r3:add@base_32:inject 10:37:r2:mul@base_35:lossy 11:40:r6:mad@base_34:inject 12:50:r1:add@base_46:inject 13:60:r3:xor@base_57:inject 14:61:r6:or@base_47:lossy 15:62:r2:rotl@base_59:bijective +igneum-ca3-v4-uniform/545 bd94d745e823a6e4 0 0:2:3 1:1:1 2:1:0 3:1:1 4:1:1 5:2:3 6:0:0 7:2:2 8:2:0 9:1:0 10:0:0 11:0:0 12:2:0 13:0:0 14:1:0 15:2:0 1 1 1 0 0 0:6:r2:rotr@base_4:bijective 1:8:r7:or@base_5:lossy-or-chain1 2:11:r0:xor@base_0:inject 3:13:r2:xor@base_7:inject 4:16:r7:add@base_14:inject 5:29:r7:mad@base_27:inject 6:32:r4:load@base_13:inject 7:35:r0:shfl@base_21:inject 8:36:r5:add@base_34:inject 9:37:r1:load@base_32:inject 10:43:r6:rotr@base_42:bijective 11:48:r0:mad@base_41:inject 12:58:r5:rotl@base_56:bijective 13:59:r4:rotl@base_54:bijective 14:61:r2:load@base_43:inject 15:62:r1:mad@base_55:inject +igneum-ca3-v4-uniform/546 1f96252ed76cc9d8 0 0:2:2 1:2:3 2:0:0 3:2:1 4:1:1 5:0:0 6:2:2 7:2:0 8:0:0 9:1:0 10:1:0 11:2:3 12:2:2 13:0:0 14:1:1 15:0:0 2 0 0 1 1 0:1:r4:sub@base_0:inject 1:2:r0:load@base_1:inject 2:5:r0:xor@base_3:inject 3:9:r6:sub@base_7:inject 4:12:r2:load@base_9:inject 5:17:r7:add@base_15:inject 6:21:r2:xor@base_14:inject 7:24:r1:xor@base_22:inject 8:35:r5:shfl@base_10:inject 9:36:r2:add@base_32:inject 10:37:r4:mul@base_19:lossy 11:38:r0:mad@base_28:inject 12:40:r7:load@base_35:inject 13:44:r3:shfl@base_41:inject 14:46:r4:load@base_40:inject 15:63:r1:mulhi@base_50:lossy +igneum-ca3-v4-uniform/547 e282311711d74da7 0 0:2:1 1:1:0 2:0:0 3:2:0 4:1:0 5:0:0 6:1:0 7:2:0 8:1:0 9:0:0 10:2:1 11:2:2 12:2:3 13:1:0 14:1:1 15:1:1 3 0 0 2 1 0:4:r2:mulhi@base_3:lossy 1:5:r3:load@base_4:inject 2:14:r3:rotr@base_12:bijective 3:19:r0:mad@base_15:inject 4:21:r6:load@base_19:inject 5:23:r1:add@base_17:inject 6:30:r1:shfl@base_27:inject 7:31:r4:mul@base_29:lossy 8:32:r5:add@base_26:inject 9:33:r7:add@base_11:inject 10:44:r1:mul@base_42:lossy 11:45:r6:shfl@base_37:inject 12:48:r5:xor@base_38:inject 13:50:r3:load@base_44:inject 14:51:r2:load@base_50:inject 15:57:r0:shfl@base_20:inject +igneum-ca3-v4-uniform/548 0511847a104119d1 0 0:0:0 1:1:1 2:0:0 3:2:3 4:0:0 5:2:3 6:0:0 7:2:2 8:2:1 9:2:1 10:0:0 11:0:0 12:0:0 13:0:0 14:1:1 15:1:0 3 1 0 0 2 0:1:r6:shfl@base_0:inject 1:2:r1:load@base_1:inject 2:7:r0:rotl@base_3:bijective 3:11:r4:rotr@base_5:bijective 4:17:r4:mad@base_14:inject 5:19:r5:add@base_16:inject 6:33:r0:or@base_29:lossy 7:34:r4:mulhi@base_30:lossy 8:36:r7:rotl@base_32:bijective 9:38:r6:rotl@base_28:bijective 10:43:r3:mulhi@base_39:lossy 11:44:r1:load@base_34:inject 12:46:r4:xor@base_35:inject 13:48:r5:rotl@base_41:bijective 14:52:r0:xor@base_50:inject 15:55:r4:add@base_53:inject +igneum-ca3-v4-uniform/549 25c501e277d45140 0 0:1:0 1:0:0 2:0:0 3:1:0 4:1:0 5:2:2 6:1:0 7:0:0 8:0:0 9:1:0 10:0:0 11:1:0 12:2:2 13:1:1 14:2:2 15:2:2 3 2 0 0 1 0:2:r3:add@base_0:inject 1:3:r0:shfl@base_1:inject 2:6:r5:rotr@base_4:bijective 3:20:r5:rotl@base_19:bijective 4:21:r4:mulhi@base_15:lossy 5:23:r1:mad@base_12:inject 6:27:r6:load@base_20:inject 7:28:r5:or@base_24:lossy 8:31:r5:shfl@base_29:inject 9:34:r0:add@base_33:inject 10:35:r1:mad@base_32:inject 11:41:r4:mad@base_38:inject 12:45:r6:or@base_42:lossy 13:54:r5:xor@base_49:inject 14:62:r1:xor@base_55:inject 15:63:r2:xor@base_59:inject +igneum-ca3-v4-uniform/550 e801fca204c6bb64 0 0:0:0 1:2:3 2:0:0 3:1:0 4:2:3 5:0:0 6:2:2 7:1:0 8:0:0 9:2:1 10:0:0 11:0:0 12:0:0 13:1:1 14:1:0 15:2:0 2 0 0 0 2 0:6:r2:xor@base_5:inject 1:7:r4:mulhi@base_3:lossy 2:9:r1:mulhi@base_2:lossy 3:14:r1:mad@base_11:inject 4:23:r0:shfl@base_21:inject 5:26:r4:mad@base_15:inject 6:35:r6:xor@base_29:inject 7:38:r5:sub@base_33:inject 8:40:r3:load@base_23:inject 9:42:r2:rotl@base_41:bijective 10:46:r4:load@base_35:inject 11:48:r6:mad@base_44:inject 12:50:r7:add@base_36:inject 13:51:r1:load@base_48:inject 14:55:r0:load@base_42:inject 15:58:r2:load@base_50:inject +igneum-ca3-v4-uniform/551 0583dc71a0aaa557 0 0:1:0 1:1:1 2:1:1 3:2:1 4:0:0 5:0:0 6:1:0 7:1:0 8:0:0 9:2:2 10:1:0 11:2:0 12:2:1 13:0:0 14:2:2 15:1:1 4 1 0 1 2 0:2:r2:xor@base_0:inject 1:3:r3:load@base_2:inject 2:5:r1:xor@base_4:inject 3:6:r6:load@base_3:inject 4:19:r1:mul@base_17:lossy 5:20:r5:load@base_6:inject 6:23:r0:shfl@base_15:inject 7:27:r2:sub@base_11:inject 8:31:r1:add@base_24:inject 9:33:r4:load@base_31:inject 10:37:r0:mulhi@base_36:lossy 11:46:r7:or@base_43:lossy 12:48:r6:shfl@base_40:inject 13:54:r4:mulhi@base_53:lossy 14:60:r0:rotr@base_51:bijective 15:63:r7:rotl@base_61:bijective +igneum-ca3-v4-uniform/552 c6a06377b9e43e00 0 0:0:0 1:2:2 2:1:0 3:2:0 4:0:0 5:2:0 6:2:1 7:2:2 8:1:1 9:2:1 10:1:0 11:2:1 12:0:0 13:0:0 14:0:0 15:1:1 1 0 0 1 0 0:5:r5:add@base_3:inject 1:11:r7:sub@base_2:inject 2:14:r1:xor@base_10:inject 3:19:r3:add@base_16:inject 4:21:r1:mad@base_18:inject 5:27:r1:mul@base_26:lossy 6:28:r7:rotl@base_25:bijective 7:30:r5:add@base_24:inject 8:32:r7:load@base_30:inject 9:33:r0:load@base_21:inject 10:35:r4:xor@base_29:inject 11:39:r2:load@base_27:inject 12:47:r4:rotl@base_43:bijective 13:48:r6:add@base_44:inject 14:57:r2:load@base_48:inject 15:63:r7:add@base_61:inject +igneum-ca3-v4-uniform/553 a322e5f02dc2d700 1 0:0:0 1:1:1 2:1:0 3:0:0 4:0:0 5:1:0 6:2:1 7:0:0 8:0:0 9:2:3 10:2:0 11:0:0 12:0:0 13:0:0 14:2:1 15:2:2 3 1 0 1 1 0:3:r5:add@base_2:inject 1:5:r5:mul@base_4:lossy 2:18:r3:rotr@base_7:bijective 3:26:r3:shfl@base_23:inject 4:27:r2:or@base_14:lossy 5:30:r7:xor@base_25:inject 6:33:r0:mad@base_13:inject 7:35:r5:load@base_33:inject 8:36:r1:mad@base_28:inject 9:40:r2:mulhi@base_38:lossy 10:43:r4:load@base_36:inject 11:44:r5:load@base_43:inject 12:45:r3:add@base_41:inject 13:47:r7:add@base_39:inject 14:54:r6:load@base_40:inject 15:62:r6:rotr@base_55:bijective +igneum-ca3-v4-uniform/554 d6aa4155f0de4e57 0 0:2:1 1:1:1 2:2:3 3:0:0 4:1:1 5:2:3 6:2:3 7:2:3 8:2:2 9:0:0 10:2:1 11:1:0 12:1:1 13:1:1 14:2:3 15:0:0 5 0 0 3 2 0:6:r7:mulhi@base_2:lossy 1:10:r0:mulhi@base_8:lossy 2:11:r6:xor@base_4:inject 3:14:r3:load@base_10:inject 4:21:r3:rotr@base_15:bijective 5:24:r5:xor@base_13:inject 6:25:r2:mad@base_12:inject 7:28:r7:mul@base_23:lossy 8:29:r0:mul@base_20:lossy 9:34:r0:mad@base_30:inject 10:42:r7:add@base_39:inject 11:44:r3:add@base_38:inject 12:45:r6:mul@base_40:lossy 13:46:r1:load@base_45:inject 14:55:r5:load@base_46:inject 15:60:r7:rotl@base_56:bijective +igneum-ca3-v4-uniform/555 49353ffffb4d5bad 1 0:0:0 1:0:0 2:0:0 3:1:0 4:2:1 5:0:0 6:2:1 7:1:0 8:1:0 9:2:3 10:1:1 11:2:2 12:1:1 13:2:3 14:0:0 15:1:1 6 1 0 3 2 0:1:r1:mul@shadow_240:lossy 1:4:r7:add@base_2:inject 2:5:r0:xor@base_3:inject 3:9:r2:mad@base_8:inject 4:22:r7:rotr@base_20:bijective 5:24:r1:sub@base_19:inject 6:25:r4:rotr@base_17:bijective 7:29:r5:mad@base_6:inject 8:32:r3:mul@base_21:lossy 9:35:r4:mul@base_34:lossy 10:36:r1:mad@base_30:inject 11:43:r5:load@base_35:inject 12:44:r6:or@base_40:lossy 13:56:r5:mulhi@base_55:lossy 14:60:r0:mulhi@base_58:lossy 15:61:r2:load@base_60:inject +igneum-ca3-v4-uniform/556 2b98fc91e49406ec 0 0:1:1 1:1:0 2:2:0 3:1:1 4:1:0 5:2:3 6:0:0 7:1:0 8:2:3 9:2:2 10:2:2 11:1:0 12:0:0 13:0:0 14:0:0 15:1:0 4 0 0 1 3 0:5:r0:mulhi@base_2:lossy 1:6:r5:load@base_5:inject 2:13:r4:rotl@base_11:bijective 3:15:r7:xor@base_10:inject 4:16:r6:rotr@base_9:bijective 5:18:r0:rotr@base_17:bijective 6:21:r6:xor@base_20:inject 7:26:r5:rotl@base_22:bijective 8:27:r3:mul@base_24:lossy 9:32:r6:sub@base_29:inject 10:43:r2:load@base_32:inject 11:44:r1:sub@base_23:inject 12:48:r5:add@base_46:inject 13:50:r7:add@base_37:inject 14:55:r7:mulhi@base_54:lossy 15:59:r3:mulhi@base_56:lossy +igneum-ca3-v4-uniform/557 d872b5b54be5965d 0 0:2:2 1:1:1 2:2:1 3:2:2 4:1:0 5:2:0 6:1:0 7:2:3 8:0:0 9:0:0 10:0:0 11:1:0 12:2:0 13:2:2 14:2:1 15:2:2 3 1 0 1 1 0:4:r1:xor@base_2:inject 1:6:r1:or@base_5:lossy 2:9:r3:xor@base_8:inject 3:13:r2:add@base_11:inject 4:17:r3:shfl@base_15:inject 5:25:r7:rotr@base_20:bijective 6:27:r2:rotr@base_18:bijective 7:30:r5:mulhi@base_23:lossy 8:34:r1:rotl@base_33:bijective 9:42:r4:mul@base_36:lossy 10:52:r5:mad@base_46:inject 11:53:r1:load@base_52:inject 12:54:r2:mad@base_28:inject 13:55:r0:xor@base_51:inject 14:57:r7:add@base_50:inject 15:59:r3:load@base_55:inject +igneum-ca3-v4-uniform/558 ada9447eaf37fc53 0 0:1:1 1:0:0 2:2:2 3:0:0 4:2:1 5:0:0 6:1:0 7:2:1 8:1:0 9:0:0 10:0:0 11:0:0 12:2:3 13:2:2 14:1:1 15:0:0 3 0 0 1 2 0:4:r7:xor@base_2:inject 1:5:r2:load@base_4:inject 2:6:r5:rotr@base_1:bijective 3:7:r2:load@base_6:inject 4:13:r6:rotl@base_10:bijective 5:28:r1:mulhi@base_24:lossy 6:32:r6:load@base_28:inject 7:33:r0:load@base_32:inject 8:39:r7:mulhi@base_36:lossy 9:40:r2:load@base_39:inject 10:46:r7:mul@base_44:lossy 11:49:r4:rotr@base_47:bijective 12:50:r3:add@base_48:inject 13:54:r4:rotl@base_51:bijective 14:58:r2:mad@base_55:inject 15:61:r2:sub@base_59:inject +igneum-ca3-v4-uniform/559 43f26886df1ed80a 0 0:2:2 1:2:3 2:1:1 3:1:0 4:1:0 5:2:0 6:2:1 7:1:0 8:0:0 9:2:3 10:2:2 11:0:0 12:2:2 13:0:0 14:2:2 15:1:0 1 0 0 1 0 0:1:r6:xor@base_0:inject 1:25:r7:mul@base_20:lossy 2:28:r1:add@base_18:inject 3:30:r3:mad@base_26:inject 4:36:r4:xor@base_13:inject 5:39:r1:shfl@base_37:inject 6:40:r2:sub@base_34:inject 7:41:r5:xor@base_35:inject 8:44:r6:load@base_40:inject 9:45:r0:load@base_44:inject 10:46:r4:load@base_39:inject 11:52:r7:shfl@base_50:inject 12:53:r1:load@base_46:inject 13:55:r4:load@base_53:inject 14:58:r3:shfl@base_42:inject 15:61:r0:add@base_60:inject +igneum-ca3-v4-uniform/560 c774f50fc3dc594b 0 0:1:0 1:1:0 2:0:0 3:1:1 4:0:0 5:1:1 6:2:2 7:2:3 8:0:0 9:2:1 10:2:0 11:1:1 12:0:0 13:1:1 14:1:1 15:1:1 8 2 0 5 1 0:1:r7:rotr@base_0:bijective 1:5:r0:mad@base_3:inject 2:7:r1:mad@base_6:inject 3:12:r4:or@base_11:lossy 4:16:r7:mul@base_14:lossy 5:22:r6:add@base_20:inject 6:26:r3:mul@base_17:lossy 7:33:r4:mul@base_30:lossy 8:39:r2:rotr@base_38:bijective 9:42:r3:xor@base_29:inject 10:43:r5:mul@base_41:lossy 11:44:r0:load@base_42:inject 12:45:r7:mul@base_31:lossy 13:50:r3:or@base_49:lossy 14:60:r2:mulhi@base_48:lossy 15:62:r4:add@base_54:inject +igneum-ca3-v4-uniform/561 bcf3dc721f28a3bd 0 0:2:1 1:0:0 2:1:1 3:0:0 4:1:1 5:2:0 6:2:3 7:0:0 8:2:1 9:0:0 10:0:0 11:0:0 12:1:0 13:2:0 14:2:2 15:0:0 3 0 0 2 1 0:2:r4:rotl@base_1:bijective 1:5:r3:mul@base_4:lossy 2:6:r1:load@base_5:inject 3:7:r2:add@base_3:inject 4:10:r7:load@base_7:inject 5:14:r6:load@base_10:inject 6:20:r6:mulhi@base_19:lossy 7:21:r3:load@base_20:inject 8:25:r0:shfl@base_22:inject 9:26:r4:load@base_21:inject 10:30:r1:shfl@base_28:inject 11:32:r6:load@base_25:inject 12:37:r2:load@base_32:inject 13:40:r6:rotr@base_38:bijective 14:54:r7:add@base_53:inject 15:60:r5:mul@base_56:lossy +igneum-ca3-v4-uniform/562 3f5f996cb6ad28e5 0 0:1:1 1:2:2 2:0:0 3:0:0 4:1:1 5:2:1 6:1:1 7:1:0 8:0:0 9:0:0 10:0:0 11:1:1 12:0:0 13:2:2 14:1:0 15:2:2 3 1 0 2 0 0:7:r7:mul@base_6:lossy 1:9:r0:shfl@base_8:inject 2:14:r3:load@base_7:inject 3:16:r4:xor@base_13:inject 4:19:r1:xor@base_17:inject 5:25:r3:rotl@base_18:bijective 6:28:r7:mul@base_27:lossy 7:29:r1:mad@base_21:inject 8:30:r2:xor@base_26:inject 9:33:r0:mad@base_22:inject 10:40:r6:add@base_32:inject 11:43:r2:or@base_42:lossy 12:44:r7:xor@base_34:inject 13:51:r3:load@base_33:inject 14:53:r4:rotl@base_46:bijective 15:57:r3:add@base_56:inject +igneum-ca3-v4-uniform/563 92edf0dab238d2a1 0 0:0:0 1:2:2 2:1:0 3:1:1 4:0:0 5:0:0 6:2:2 7:0:0 8:1:1 9:1:0 10:2:0 11:1:1 12:2:1 13:2:0 14:0:0 15:1:1 4 1 0 0 3 0:3:r3:or@base_2:lossy 1:6:r7:load@base_3:inject 2:10:r4:mulhi@base_9:lossy 3:13:r2:sub@base_0:inject 4:14:r4:load@base_13:inject 5:16:r0:mulhi@base_15:lossy 6:17:r7:load@base_14:inject 7:22:r1:shfl@base_20:inject 8:23:r0:load@base_17:inject 9:27:r6:load@base_22:inject 10:30:r7:add@base_24:inject 11:35:r0:load@base_27:inject 12:39:r1:mulhi@base_26:lossy 13:42:r5:sub@base_41:inject 14:58:r4:sub@base_28:inject 15:62:r7:load@base_35:inject +igneum-ca3-v4-uniform/564 8439f08958f6fc34 0 0:2:3 1:0:0 2:1:1 3:0:0 4:2:3 5:1:1 6:1:1 7:2:0 8:2:3 9:2:1 10:1:0 11:1:1 12:2:2 13:2:0 14:0:0 15:1:1 4 0 0 4 0 0:3:r7:xor@base_2:inject 1:4:r4:sub@base_0:inject 2:10:r7:mul@base_6:lossy 3:13:r6:shfl@base_12:inject 4:16:r0:shfl@base_1:inject 5:17:r5:load@base_16:inject 6:22:r3:add@base_21:inject 7:28:r4:mul@base_25:lossy 8:29:r7:rotl@base_20:bijective 9:37:r6:rotr@base_34:bijective 10:38:r7:mul@base_32:lossy 11:40:r0:mul@base_39:lossy 12:42:r5:rotr@base_41:bijective 13:48:r1:mad@base_44:inject 14:54:r0:sub@base_45:inject 15:55:r3:load@base_54:inject +igneum-ca3-v4-uniform/565 875a51565edf80e1 0 0:1:1 1:0:0 2:0:0 3:1:1 4:0:0 5:2:0 6:2:1 7:1:1 8:2:3 9:1:1 10:2:0 11:2:3 12:0:0 13:1:1 14:1:0 15:2:0 3 1 0 0 2 0:4:r5:add@base_3:inject 1:9:r7:add@base_8:inject 2:15:r0:add@base_12:inject 3:16:r5:sub@base_10:inject 4:22:r2:mulhi@base_21:lossy 5:23:r7:load@base_22:inject 6:26:r5:mulhi@base_17:lossy 7:28:r4:load@base_15:inject 8:30:r1:load@base_26:inject 9:33:r6:xor@base_32:inject 10:36:r4:mad@base_34:inject 11:40:r4:or@base_38:lossy 12:52:r5:xor@base_50:inject 13:55:r2:shfl@base_35:inject 14:60:r2:shfl@base_59:inject 15:62:r4:rotl@base_54:bijective +igneum-ca3-v4-uniform/566 4f757c03886a8845 0 0:1:1 1:0:0 2:0:0 3:1:1 4:0:0 5:1:0 6:1:0 7:2:3 8:1:1 9:1:0 10:2:2 11:1:1 12:0:0 13:0:0 14:2:1 15:2:2 2 2 0 0 0 0:7:r0:add@base_5:inject 1:8:r4:shfl@base_6:inject 2:9:r5:add@base_2:inject 3:13:r0:load@base_9:inject 4:15:r2:shfl@base_14:inject 5:18:r0:load@base_15:inject 6:26:r3:or@base_12:lossy 7:34:r4:sub@base_33:inject 8:37:r7:shfl@base_30:inject 9:39:r1:shfl@base_19:inject 10:47:r2:xor@base_42:inject 11:50:r6:load@base_47:inject 12:51:r3:add@base_48:inject 13:54:r4:or@base_46:lossy 14:55:r7:xor@base_49:inject 15:62:r1:xor@base_59:inject +igneum-ca3-v4-uniform/567 b352171a3ffddcd5 0 0:0:0 1:0:0 2:1:0 3:1:1 4:0:0 5:0:0 6:1:1 7:1:0 8:2:0 9:0:0 10:2:3 11:0:0 12:0:0 13:2:0 14:0:0 15:1:0 5 2 0 0 3 0:3:r0:shfl@base_2:inject 1:12:r2:mulhi@base_11:lossy 2:17:r1:mad@base_7:inject 3:19:r4:rotl@base_10:bijective 4:26:r4:or@base_24:lossy 5:29:r5:mad@base_8:inject 6:30:r3:mulhi@base_15:lossy 7:36:r7:add@base_35:inject 8:43:r0:rotl@base_42:bijective 9:45:r1:mad@base_23:inject 10:47:r2:xor@base_44:inject 11:48:r7:or@base_46:lossy 12:52:r6:mulhi@base_50:lossy 13:54:r3:shfl@base_39:inject 14:57:r1:load@base_52:inject 15:60:r0:rotr@base_58:bijective +igneum-ca3-v4-uniform/568 9001dc10e59ae753 0 0:2:0 1:0:0 2:0:0 3:2:2 4:0:0 5:2:3 6:0:0 7:2:2 8:1:1 9:1:0 10:2:1 11:2:3 12:2:0 13:0:0 14:1:0 15:2:0 1 0 0 1 0 0:6:r5:add@base_1:inject 1:8:r3:rotl@base_3:bijective 2:15:r6:load@base_6:inject 3:21:r3:add@base_20:inject 4:28:r1:mul@base_27:lossy 5:34:r2:load@base_15:inject 6:35:r4:sub@base_31:inject 7:36:r6:shfl@base_32:inject 8:37:r7:load@base_35:inject 9:45:r6:rotr@base_42:bijective 10:46:r3:rotl@base_40:bijective 11:48:r2:shfl@base_47:inject 12:52:r7:xor@base_51:inject 13:58:r3:shfl@base_50:inject 14:59:r1:add@base_38:inject 15:60:r4:rotr@base_56:bijective +igneum-ca3-v4-uniform/569 d14f9e0f0d1cda7a 0 0:0:0 1:0:0 2:2:1 3:2:0 4:1:1 5:1:1 6:0:0 7:2:2 8:1:1 9:1:0 10:2:0 11:2:3 12:0:0 13:2:0 14:0:0 15:2:3 1 0 0 1 0 0:8:r2:mul@base_2:lossy 1:9:r3:sub@base_4:inject 2:12:r6:xor@base_11:inject 3:13:r5:load@base_12:inject 4:16:r0:add@base_14:inject 5:18:r5:load@base_16:inject 6:21:r4:load@base_13:inject 7:22:r5:load@base_21:inject 8:28:r7:mad@base_23:inject 9:30:r2:add@base_27:inject 10:31:r1:load@base_28:inject 11:36:r2:sub@base_34:inject 12:43:r0:sub@base_39:inject 13:57:r0:add@base_55:inject 14:58:r1:rotl@base_52:bijective 15:61:r3:rotl@base_50:bijective +igneum-ca3-v4-uniform/570 d1a5a2864482882d 0 0:2:3 1:1:0 2:2:2 3:0:0 4:0:0 5:2:1 6:1:0 7:2:2 8:1:1 9:2:0 10:0:0 11:0:0 12:2:3 13:0:0 14:0:0 15:2:1 3 0 0 2 1 0:7:r2:rotl@base_4:bijective 1:8:r5:mad@base_6:inject 2:10:r0:rotl@base_1:bijective 3:13:r4:load@base_10:inject 4:25:r0:mad@base_23:inject 5:27:r3:load@base_25:inject 6:34:r5:mad@base_33:inject 7:35:r2:xor@base_22:inject 8:36:r1:rotl@base_32:bijective 9:43:r4:mul@base_41:lossy 10:46:r2:mul@base_40:lossy 11:48:r0:load@base_35:inject 12:55:r6:mulhi@base_51:lossy 13:57:r3:load@base_55:inject 14:61:r7:shfl@base_60:inject 15:62:r0:load@base_57:inject +igneum-ca3-v4-uniform/571 1364b26842c0c0ae 0 0:2:3 1:0:0 2:1:1 3:2:0 4:2:1 5:0:0 6:2:1 7:0:0 8:1:1 9:2:3 10:1:1 11:2:3 12:2:1 13:0:0 14:2:1 15:0:0 3 1 0 2 0 0:14:r7:shfl@base_6:inject 1:19:r2:or@base_18:lossy 2:20:r0:add@base_7:inject 3:21:r6:load@base_20:inject 4:22:r4:mul@base_17:lossy 5:23:r5:mad@base_9:inject 6:29:r1:load@base_21:inject 7:30:r6:load@base_23:inject 8:34:r4:mul@base_27:lossy 9:36:r2:add@base_25:inject 10:38:r4:load@base_36:inject 11:43:r5:load@base_30:inject 12:44:r1:xor@base_39:inject 13:50:r7:load@base_44:inject 14:59:r0:rotl@base_46:bijective 15:63:r6:rotr@base_45:bijective +igneum-ca3-v4-uniform/572 62aed6b8b22357ad 0 0:2:2 1:2:0 2:1:1 3:0:0 4:1:1 5:1:0 6:0:0 7:0:0 8:0:0 9:2:0 10:0:0 11:1:1 12:2:1 13:1:0 14:0:0 15:0:0 3 0 0 3 0 0:6:r4:xor@base_0:inject 1:11:r3:mul@base_3:lossy 2:15:r5:add@base_13:inject 3:17:r2:xor@base_9:inject 4:18:r0:load@base_11:inject 5:22:r6:load@base_17:inject 6:25:r0:load@base_22:inject 7:27:r1:add@base_8:inject 8:30:r5:load@base_27:inject 9:32:r2:mul@base_26:lossy 10:36:r3:shfl@base_29:inject 11:39:r2:add@base_35:inject 12:52:r4:load@base_39:inject 13:57:r4:mad@base_54:inject 14:58:r6:mul@base_56:lossy 15:61:r3:shfl@base_53:inject +igneum-ca3-v4-uniform/573 e22afb43e1a269a4 0 0:1:0 1:0:0 2:1:0 3:1:0 4:2:0 5:2:2 6:2:1 7:1:1 8:0:0 9:2:2 10:1:0 11:0:0 12:0:0 13:2:1 14:1:0 15:0:0 1 1 0 0 0 0:7:r1:rotl@base_5:bijective 1:15:r2:add@base_3:inject 2:22:r0:rotr@base_21:bijective 3:24:r7:add@base_0:inject 4:26:r4:xor@base_19:inject 5:28:r0:rotr@base_27:bijective 6:29:r1:load@base_22:inject 7:35:r1:mad@base_30:inject 8:37:r2:load@base_26:inject 9:38:r5:load@base_37:inject 10:39:r7:mad@base_36:inject 11:41:r2:mad@base_40:inject 12:52:r0:mad@base_45:inject 13:57:r6:add@base_51:inject 14:60:r3:or@base_47:lossy 15:62:r5:load@base_60:inject +igneum-ca3-v4-uniform/574 a02a7083b9887f87 0 0:1:1 1:2:2 2:0:0 3:2:2 4:0:0 5:2:1 6:2:0 7:1:1 8:2:1 9:1:0 10:1:1 11:0:0 12:1:0 13:1:0 14:0:0 15:1:0 1 0 0 0 1 0:7:r5:add@base_2:inject 1:17:r1:mad@base_10:inject 2:18:r6:mulhi@base_12:lossy 3:21:r6:sub@base_19:inject 4:22:r2:mad@base_15:inject 5:23:r4:load@base_21:inject 6:24:r7:load@base_22:inject 7:29:r1:mad@base_26:inject 8:32:r4:rotr@base_28:bijective 9:34:r6:xor@base_30:inject 10:35:r5:rotr@base_25:bijective 11:42:r1:mad@base_41:inject 12:47:r2:load@base_35:inject 13:50:r7:rotr@base_45:bijective 14:55:r0:mad@base_53:inject 15:58:r0:rotl@base_57:bijective +igneum-ca3-v4-uniform/575 e47938ec17ea6b9c 0 0:0:0 1:0:0 2:2:2 3:0:0 4:0:0 5:2:0 6:1:1 7:0:0 8:1:1 9:0:0 10:1:0 11:2:1 12:1:0 13:0:0 14:1:0 15:2:2 5 1 0 2 2 0:9:r6:mulhi@base_2:lossy 1:10:r5:rotl@base_7:bijective 2:15:r2:load@base_10:inject 3:20:r6:rotr@base_17:bijective 4:22:r3:mul@base_19:lossy 5:28:r7:mad@base_1:inject 6:30:r7:mad@base_29:inject 7:31:r1:add@base_24:inject 8:34:r0:load@base_31:inject 9:40:r5:mulhi@base_23:lossy 10:41:r7:xor@base_38:inject 11:43:r6:add@base_42:inject 12:49:r5:or@base_46:lossy 13:51:r6:sub@base_50:inject 14:54:r7:mul@base_47:lossy 15:61:r2:add@base_60:inject +igneum-ca3-v4-uniform/576 80080dcd30d6835d 0 0:0:0 1:0:0 2:0:0 3:1:1 4:0:0 5:1:0 6:2:2 7:1:1 8:0:0 9:2:3 10:2:1 11:1:0 12:2:1 13:1:0 14:0:0 15:2:2 5 0 0 4 1 0:3:r4:mulhi@base_1:lossy 1:5:r0:shfl@base_4:inject 2:9:r2:xor@base_8:inject 3:10:r4:mad@base_7:inject 4:14:r4:mad@base_13:inject 5:16:r0:rotr@base_15:bijective 6:17:r5:load@base_16:inject 7:27:r0:mul@base_26:lossy 8:29:r2:load@base_27:inject 9:30:r5:mul@base_21:lossy 10:34:r1:mul@base_19:lossy 11:35:r2:shfl@base_33:inject 12:36:r7:load@base_29:inject 13:42:r6:add@base_41:inject 14:48:r2:mul@base_46:lossy 15:51:r5:load@base_35:inject +igneum-ca3-v4-uniform/577 b85ff985933bd7ef 0 0:2:0 1:1:1 2:2:3 3:1:0 4:0:0 5:2:3 6:2:0 7:1:0 8:1:0 9:0:0 10:1:0 11:2:0 12:2:2 13:1:0 14:1:0 15:0:0 3 0 0 3 0 0:5:r1:xor@base_4:inject 1:12:r6:mul@base_11:lossy 2:13:r7:mad@base_7:inject 3:19:r4:load@base_12:inject 4:25:r0:xor@base_21:inject 5:27:r2:load@base_25:inject 6:34:r1:rotr@base_33:bijective 7:38:r3:shfl@base_24:inject 8:40:r6:xor@base_32:inject 9:46:r4:rotl@base_42:bijective 10:48:r3:mul@base_45:lossy 11:54:r1:load@base_48:inject 12:55:r3:rotl@base_53:bijective 13:59:r3:shfl@base_57:inject 14:60:r7:mul@base_52:lossy 15:63:r2:add@base_36:inject +igneum-ca3-v4-uniform/578 6d1a48db88b667b6 0 0:1:0 1:0:0 2:2:0 3:2:0 4:1:0 5:2:2 6:2:1 7:0:0 8:2:3 9:1:1 10:1:0 11:1:0 12:0:0 13:2:2 14:0:0 15:0:0 6 1 0 5 0 0:1:r0:mul@shadow_253:lossy 1:4:r5:mul@base_2:lossy 2:6:r6:shfl@base_5:inject 3:9:r1:mul@base_7:lossy 4:21:r4:add@base_17:inject 5:25:r5:load@base_9:inject 6:26:r0:load@base_25:inject 7:28:r2:mul@base_22:lossy 8:36:r3:add@base_34:inject 9:38:r4:shfl@base_37:inject 10:40:r6:load@base_36:inject 11:41:r7:shfl@base_32:inject 12:54:r5:load@base_41:inject 13:56:r2:load@base_54:inject 14:62:r1:or@base_51:lossy 15:63:r6:mul@base_55:lossy +igneum-ca3-v4-uniform/579 e0b76e864790b132 0 0:0:0 1:0:0 2:0:0 3:1:1 4:2:1 5:0:0 6:2:0 7:1:0 8:2:1 9:0:0 10:1:0 11:1:0 12:0:0 13:2:0 14:0:0 15:2:0 4 1 0 1 2 0:2:r3:add@base_1:inject 1:8:r1:rotl@base_5:bijective 2:12:r4:add@base_9:inject 3:13:r6:shfl@base_10:inject 4:14:r3:mul@base_4:lossy 5:17:r5:mulhi@base_0:lossy 6:20:r6:load@base_14:inject 7:22:r1:xor@base_21:inject 8:25:r3:mulhi@base_24:lossy 9:28:r2:load@base_17:inject 10:30:r0:load@base_25:inject 11:31:r6:or@base_26:lossy 12:33:r6:mad@base_32:inject 13:46:r2:mad@base_42:inject 14:48:r7:rotl@base_47:bijective 15:63:r3:xor@base_52:inject +igneum-ca3-v4-uniform/580 bb5223d5daa0a5e1 2 0:1:0 1:1:1 2:2:3 3:1:0 4:0:0 5:2:3 6:1:1 7:2:0 8:0:0 9:0:0 10:2:0 11:2:0 12:1:0 13:1:1 14:0:0 15:0:0 2 1 0 1 0 0:2:r7:mul@base_1:lossy 1:3:r3:load@base_2:inject 2:6:r6:mad@base_4:inject 3:8:r1:load@base_3:inject 4:10:r4:shfl@base_5:inject 5:21:r3:shfl@base_17:inject 6:22:r2:load@base_8:inject 7:25:r5:load@base_10:inject 8:28:r5:add@base_26:inject 9:36:r7:mad@base_32:inject 10:41:r0:load@base_36:inject 11:43:r3:load@base_41:inject 12:55:r3:mad@base_47:inject 13:58:r1:or@base_50:lossy 14:61:r5:add@base_51:inject 15:62:r6:add@base_59:inject +igneum-ca3-v4-uniform/581 69d8e438936af6ea 0 0:1:0 1:2:2 2:2:1 3:2:3 4:0:0 5:2:3 6:2:2 7:0:0 8:1:1 9:2:2 10:0:0 11:2:0 12:1:1 13:1:1 14:2:3 15:0:0 3 0 0 3 0 0:7:r6:mul@base_3:lossy 1:8:r5:shfl@base_0:inject 2:14:r3:rotr@base_6:bijective 3:25:r7:rotr@base_24:bijective 4:28:r4:mul@base_23:lossy 5:30:r3:mul@base_22:lossy 6:32:r2:rotr@base_26:bijective 7:36:r3:shfl@base_33:inject 8:37:r7:load@base_30:inject 9:39:r6:load@base_37:inject 10:42:r0:xor@base_38:inject 11:53:r3:xor@base_51:inject 12:56:r0:shfl@base_43:inject 13:58:r5:load@base_53:inject 14:59:r4:xor@base_57:inject 15:61:r2:load@base_58:inject +igneum-ca3-v4-uniform/582 bb51b24703785ad9 0 0:2:3 1:2:2 2:2:1 3:2:0 4:1:1 5:2:0 6:2:1 7:1:0 8:1:0 9:1:0 10:0:0 11:2:2 12:1:0 13:0:0 14:1:0 15:0:0 4 2 0 1 1 0:3:r0:mad@base_1:inject 1:19:r1:or@base_16:lossy 2:20:r5:mulhi@base_2:lossy 3:24:r1:mul@base_21:lossy 4:26:r7:load@base_19:inject 5:31:r5:rotr@base_30:bijective 6:32:r0:mad@base_29:inject 7:37:r0:shfl@base_33:inject 8:42:r1:mad@base_39:inject 9:43:r6:or@base_36:lossy 10:44:r7:xor@base_40:inject 11:48:r1:load@base_43:inject 12:52:r2:load@base_44:inject 13:57:r4:xor@base_55:inject 14:58:r6:shfl@base_46:inject 15:61:r0:xor@base_60:inject +igneum-ca3-v4-uniform/583 17a54517a692fec4 0 0:0:0 1:0:0 2:1:0 3:0:0 4:0:0 5:1:1 6:2:2 7:1:0 8:2:0 9:1:0 10:0:0 11:1:0 12:2:3 13:1:0 14:2:0 15:0:0 3 0 0 1 2 0:3:r5:mul@base_1:lossy 1:7:r2:xor@base_5:inject 2:8:r1:xor@base_2:inject 3:14:r7:shfl@base_6:inject 4:15:r1:sub@base_11:inject 5:16:r4:load@base_15:inject 6:17:r2:shfl@base_9:inject 7:19:r5:load@base_17:inject 8:25:r2:mulhi@base_24:lossy 9:42:r4:shfl@base_41:inject 10:46:r3:xor@base_44:inject 11:51:r0:xor@base_48:inject 12:53:r2:rotr@base_45:bijective 13:54:r5:mad@base_40:inject 14:57:r1:load@base_53:inject 15:63:r1:mulhi@base_60:lossy +igneum-ca3-v4-uniform/584 2d3b95ff0fc11890 0 0:2:3 1:0:0 2:0:0 3:2:3 4:2:0 5:0:0 6:0:0 7:1:1 8:1:0 9:0:0 10:0:0 11:2:1 12:1:0 13:2:2 14:1:1 15:0:0 3 0 0 3 0 0:6:r6:mul@base_2:lossy 1:7:r2:add@base_0:inject 2:8:r3:load@base_7:inject 3:17:r6:mad@base_16:inject 4:19:r5:rotl@base_14:bijective 5:23:r2:load@base_19:inject 6:26:r1:xor@base_25:inject 7:28:r7:xor@base_13:inject 8:30:r3:shfl@base_20:inject 9:32:r1:load@base_28:inject 10:36:r5:shfl@base_35:inject 11:48:r7:add@base_29:inject 12:49:r4:mul@base_44:lossy 13:56:r3:xor@base_51:inject 14:60:r2:mul@base_39:lossy 15:62:r6:shfl@base_53:inject +igneum-ca3-v4-uniform/585 bf08ccfc1ead89bf 0 0:2:0 1:0:0 2:2:3 3:0:0 4:1:1 5:1:0 6:1:1 7:1:1 8:2:0 9:2:2 10:0:0 11:1:0 12:1:1 13:0:0 14:2:2 15:1:0 3 0 0 1 2 0:8:r2:sub@base_2:inject 1:9:r5:load@base_8:inject 2:12:r3:shfl@base_5:inject 3:21:r5:mul@base_15:lossy 4:22:r4:rotl@base_14:bijective 5:23:r6:load@base_21:inject 6:29:r7:mulhi@base_24:lossy 7:30:r1:add@base_27:inject 8:32:r7:load@base_30:inject 9:33:r0:load@base_22:inject 10:35:r3:load@base_32:inject 11:48:r7:xor@base_44:inject 12:51:r3:mulhi@base_43:lossy 13:54:r0:load@base_51:inject 14:57:r3:load@base_54:inject 15:62:r1:sub@base_55:inject +igneum-ca3-v4-uniform/586 ac87bf31e7dca811 0 0:0:0 1:1:1 2:0:0 3:0:0 4:2:1 5:0:0 6:0:0 7:2:2 8:0:0 9:1:1 10:0:0 11:2:0 12:0:0 13:0:0 14:2:0 15:2:3 3 0 0 2 1 0:1:r2:sub@base_0:inject 1:5:r0:rotl@base_3:bijective 2:6:r5:mul@base_4:lossy 3:7:r3:xor@base_2:inject 4:23:r6:rotr@base_10:bijective 5:25:r4:load@base_5:inject 6:28:r1:rotr@base_27:bijective 7:30:r0:mad@base_20:inject 8:32:r2:rotl@base_21:bijective 9:34:r7:xor@base_31:inject 10:36:r6:shfl@base_35:inject 11:48:r4:load@base_30:inject 12:49:r5:mulhi@base_46:lossy 13:50:r3:rotr@base_43:bijective 14:55:r2:shfl@base_53:inject 15:60:r4:mul@base_51:lossy +igneum-ca3-v4-uniform/587 7881ae2d16d614f9 0 0:2:1 1:2:1 2:0:0 3:0:0 4:0:0 5:0:0 6:2:3 7:0:0 8:1:0 9:0:0 10:0:0 11:1:1 12:2:3 13:1:1 14:1:1 15:0:0 3 1 0 0 2 0:5:r0:or@base_3:lossy 1:9:r4:add@base_8:inject 2:11:r7:load@base_5:inject 3:14:r5:sub@base_4:inject 4:18:r4:mulhi@base_15:lossy 5:22:r1:rotl@base_16:bijective 6:25:r7:load@base_14:inject 7:26:r4:load@base_25:inject 8:38:r4:add@base_36:inject 9:39:r5:load@base_38:inject 10:41:r7:shfl@base_34:inject 11:48:r1:mad@base_40:inject 12:56:r2:mulhi@base_54:lossy 13:57:r6:mad@base_44:inject 14:61:r2:add@base_58:inject 15:63:r5:load@base_57:inject +igneum-ca3-v4-uniform/588 ebd7bdf8284d37e8 0 0:2:3 1:2:0 2:2:2 3:1:0 4:2:0 5:0:0 6:0:0 7:2:1 8:0:0 9:1:0 10:2:0 11:0:0 12:1:0 13:2:0 14:2:0 15:1:0 3 0 0 2 1 0:1:r3:mul@shadow_254:lossy 1:4:r0:rotl@base_2:bijective 2:5:r2:load@base_4:inject 3:8:r7:xor@base_7:inject 4:9:r0:load@base_8:inject 5:13:r4:rotl@base_12:bijective 6:14:r7:load@base_13:inject 7:15:r2:load@base_14:inject 8:18:r4:mad@base_17:inject 9:20:r6:load@base_18:inject 10:23:r5:mulhi@base_19:lossy 11:25:r7:load@base_20:inject 12:29:r5:mul@base_27:lossy 13:40:r6:rotl@base_37:bijective 14:60:r0:add@base_56:inject 15:63:r4:shfl@base_59:inject +igneum-ca3-v4-uniform/589 140a4940b32cb873 0 0:2:3 1:0:0 2:0:0 3:2:0 4:2:2 5:1:1 6:0:0 7:0:0 8:0:0 9:1:1 10:1:1 11:1:1 12:0:0 13:1:1 14:1:1 15:2:2 1 0 0 1 0 0:1:r5:mad@shadow_246:inject 1:4:r4:rotr@base_2:bijective 2:5:r7:load@base_4:inject 3:12:r4:xor@base_6:inject 4:13:r5:add@base_9:inject 5:22:r5:add@base_20:inject 6:34:r1:add@base_32:inject 7:36:r7:mul@base_30:lossy 8:38:r0:sub@base_35:inject 9:40:r3:load@base_36:inject 10:41:r2:load@base_40:inject 11:44:r7:mad@base_42:inject 12:45:r5:load@base_44:inject 13:48:r3:add@base_47:inject 14:49:r6:shfl@base_37:inject 15:62:r0:load@base_48:inject +igneum-ca3-v4-uniform/590 6bef16b31b192711 0 0:0:0 1:0:0 2:0:0 3:1:1 4:2:0 5:0:0 6:1:0 7:0:0 8:2:2 9:0:0 10:2:2 11:1:0 12:2:3 13:2:2 14:0:0 15:2:2 3 2 0 1 0 0:5:r3:rotl@base_3:bijective 1:6:r2:shfl@base_1:inject 2:7:r5:or@base_4:lossy 3:9:r4:or@base_8:lossy 4:13:r2:xor@base_11:inject 5:17:r7:load@base_13:inject 6:18:r4:xor@base_16:inject 7:20:r5:load@base_18:inject 8:24:r5:rotr@base_23:bijective 9:34:r2:rotl@base_28:bijective 10:36:r0:load@base_34:inject 11:37:r7:mad@base_30:inject 12:47:r0:shfl@base_42:inject 13:48:r5:load@base_47:inject 14:60:r2:mad@base_51:inject 15:63:r5:mul@base_53:lossy +igneum-ca3-v4-uniform/591 0f9072cc89cf0b1e 0 0:1:1 1:0:0 2:0:0 3:0:0 4:2:2 5:1:0 6:2:1 7:0:0 8:0:0 9:0:0 10:0:0 11:0:0 12:2:3 13:0:0 14:1:1 15:1:0 4 2 0 2 0 0:9:r3:shfl@base_6:inject 1:10:r6:xor@base_8:inject 2:15:r6:rotl@base_14:bijective 3:19:r7:mul@base_0:lossy 4:20:r0:load@base_10:inject 5:24:r2:xor@base_18:inject 6:25:r3:load@base_24:inject 7:28:r4:or@base_23:lossy 8:30:r1:shfl@base_27:inject 9:32:r5:or@base_29:lossy 10:40:r7:mul@base_33:lossy 11:44:r6:add@base_37:inject 12:53:r0:add@base_42:inject 13:54:r7:load@base_53:inject 14:57:r4:load@base_54:inject 15:63:r0:rotl@base_56:bijective +igneum-ca3-v4-uniform/592 2e2488648e0aa958 0 0:2:2 1:0:0 2:0:0 3:0:0 4:0:0 5:0:0 6:1:0 7:2:0 8:1:0 9:2:1 10:1:0 11:0:0 12:2:0 13:2:1 14:0:0 15:0:0 4 2 0 0 2 0:3:r7:sub@base_1:inject 1:10:r0:mad@base_7:inject 2:15:r6:or@base_14:lossy 3:24:r2:load@base_15:inject 4:25:r4:xor@base_22:inject 5:26:r0:load@base_24:inject 6:30:r2:shfl@base_27:inject 7:31:r6:mulhi@base_28:lossy 8:33:r7:mad@base_23:inject 9:42:r7:mulhi@base_40:lossy 10:48:r0:add@base_45:inject 11:53:r4:load@base_48:inject 12:55:r1:or@base_52:lossy 13:56:r0:load@base_53:inject 14:58:r7:load@base_55:inject 15:63:r0:xor@base_61:inject +igneum-ca3-v4-uniform/593 00d75683220960c8 0 0:2:2 1:1:0 2:0:0 3:0:0 4:2:1 5:0:0 6:0:0 7:2:0 8:1:1 9:2:1 10:2:0 11:1:1 12:2:2 13:2:2 14:1:1 15:2:0 4 1 0 3 0 0:4:r6:mul@base_0:lossy 1:12:r6:rotl@base_9:bijective 2:13:r4:mad@base_10:inject 3:14:r7:load@base_13:inject 4:15:r0:load@base_12:inject 5:16:r5:load@base_15:inject 6:28:r1:add@base_24:inject 7:30:r0:mul@base_26:lossy 8:34:r2:mul@base_33:lossy 9:35:r3:load@base_34:inject 10:40:r0:or@base_32:lossy 11:41:r6:load@base_28:inject 12:42:r7:load@base_41:inject 13:44:r5:load@base_35:inject 14:53:r2:shfl@base_50:inject 15:60:r6:load@base_53:inject +igneum-ca3-v4-uniform/594 314704f84952e8a6 0 0:2:1 1:2:1 2:1:1 3:0:0 4:0:0 5:1:1 6:0:0 7:0:0 8:1:1 9:0:0 10:2:1 11:2:0 12:0:0 13:1:1 14:0:0 15:0:0 5 3 0 1 1 0:11:r4:or@base_5:lossy 1:14:r7:mul@base_12:lossy 2:18:r6:or@base_13:lossy 3:30:r4:mad@base_21:inject 4:36:r5:add@base_31:inject 5:38:r1:xor@base_23:inject 6:39:r2:mulhi@base_35:lossy 7:43:r2:xor@base_42:inject 8:45:r7:or@base_33:lossy 9:46:r4:shfl@base_32:inject 10:48:r3:load@base_30:inject 11:50:r0:load@base_45:inject 12:53:r6:load@base_50:inject 13:59:r1:add@base_58:inject 14:61:r7:load@base_59:inject 15:63:r2:shfl@base_52:inject +igneum-ca3-v4-uniform/595 fb89cb5ec93f4b10 0 0:0:0 1:0:0 2:1:0 3:1:1 4:2:0 5:1:1 6:1:0 7:1:1 8:1:1 9:2:2 10:0:0 11:1:0 12:1:1 13:2:1 14:0:0 15:1:1 7 1 0 4 2 0:3:r3:mulhi@base_0:lossy 1:5:r5:mulhi@base_2:lossy 2:7:r3:mul@base_6:lossy 3:16:r5:xor@base_9:inject 4:20:r1:rotl@base_14:bijective 5:22:r3:mul@base_11:lossy 6:23:r6:shfl@base_15:inject 7:26:r5:mul@base_18:lossy 8:30:r1:mad@base_29:inject 9:33:r7:load@base_26:inject 10:35:r2:load@base_33:inject 11:36:r4:or@base_31:lossy 12:37:r0:rotl@base_10:bijective 13:39:r2:load@base_37:inject 14:51:r4:shfl@base_48:inject 15:54:r0:mul@base_52:lossy +igneum-ca3-v4-uniform/596 5d58577420ba67b2 0 0:0:0 1:1:1 2:2:2 3:2:1 4:2:1 5:1:1 6:1:1 7:0:0 8:0:0 9:1:0 10:1:0 11:2:2 12:2:1 13:2:1 14:0:0 15:1:0 1 0 0 0 1 0:1:r1:add@base_0:inject 1:4:r6:mad@base_3:inject 2:9:r1:xor@base_2:inject 3:12:r6:rotr@base_6:bijective 4:20:r7:add@base_13:inject 5:22:r1:load@base_20:inject 6:25:r2:rotl@base_19:bijective 7:34:r0:mad@base_30:inject 8:38:r3:rotr@base_26:bijective 9:39:r4:mulhi@base_35:lossy 10:43:r6:add@base_40:inject 11:46:r1:load@base_38:inject 12:47:r4:load@base_43:inject 13:54:r0:load@base_47:inject 14:55:r5:add@base_45:inject 15:58:r7:shfl@base_48:inject +igneum-ca3-v4-uniform/597 d6f929ea02d6857a 0 0:1:1 1:1:0 2:2:1 3:1:0 4:2:0 5:1:1 6:1:1 7:0:0 8:2:0 9:1:1 10:2:0 11:1:1 12:2:1 13:0:0 14:2:2 15:1:0 1 0 0 0 1 0:3:r6:mad@base_1:inject 1:4:r3:sub@base_2:inject 2:5:r4:load@base_4:inject 3:13:r0:xor@base_10:inject 4:19:r1:shfl@base_16:inject 5:20:r6:shfl@base_17:inject 6:22:r2:mulhi@base_21:lossy 7:23:r4:load@base_20:inject 8:28:r5:shfl@base_11:inject 9:30:r7:xor@base_27:inject 10:39:r2:sub@base_32:inject 11:40:r1:xor@base_38:inject 12:42:r3:shfl@base_36:inject 13:47:r7:load@base_40:inject 14:49:r6:rotr@base_43:bijective 15:58:r6:add@base_55:inject +igneum-ca3-v4-uniform/598 82ace122e23b7bb8 0 0:1:0 1:1:1 2:2:0 3:1:1 4:1:1 5:0:0 6:1:0 7:2:3 8:1:0 9:2:3 10:1:0 11:1:0 12:0:0 13:2:2 14:0:0 15:0:0 1 0 0 1 0 0:2:r2:xor@base_1:inject 1:5:r0:sub@base_0:inject 2:9:r3:mad@base_7:inject 3:14:r0:add@base_12:inject 4:19:r0:sub@base_18:inject 5:24:r2:load@base_19:inject 6:27:r4:add@base_21:inject 7:28:r7:load@base_24:inject 8:29:r6:rotr@base_26:bijective 9:30:r3:sub@base_10:inject 10:33:r1:shfl@base_32:inject 11:42:r6:mul@base_40:lossy 12:50:r5:add@base_49:inject 13:53:r0:rotl@base_51:bijective 14:61:r1:xor@base_60:inject 15:63:r7:sub@base_54:inject +igneum-ca3-v4-uniform/599 8c390ff8dfc3f286 0 0:0:0 1:0:0 2:0:0 3:1:0 4:2:3 5:1:1 6:2:0 7:0:0 8:0:0 9:0:0 10:2:0 11:0:0 12:0:0 13:0:0 14:0:0 15:1:0 5 0 0 3 2 0:5:r4:sub@base_1:inject 1:7:r1:rotl@base_6:bijective 2:14:r2:sub@base_13:inject 3:18:r7:mulhi@base_10:lossy 4:19:r5:xor@base_16:inject 5:26:r1:add@base_20:inject 6:29:r1:mul@base_28:lossy 7:35:r3:mul@base_21:lossy 8:36:r0:mulhi@base_34:lossy 9:40:r4:mad@base_24:inject 10:42:r3:load@base_40:inject 11:43:r1:rotl@base_37:bijective 12:46:r5:load@base_35:inject 13:56:r6:add@base_49:inject 14:58:r2:mul@base_54:lossy 15:59:r0:load@base_58:inject +igneum-ca3-v4-uniform/600 cb4dc81384b8c106 0 0:1:1 1:0:0 2:1:0 3:1:0 4:0:0 5:1:1 6:2:1 7:2:1 8:2:0 9:0:0 10:0:0 11:1:1 12:0:0 13:0:0 14:0:0 15:1:1 1 0 0 0 1 0:1:r5:xor@base_0:inject 1:5:r7:load@base_1:inject 2:7:r5:shfl@base_2:inject 3:9:r6:sub@base_6:inject 4:16:r0:rotr@base_15:bijective 5:17:r2:mad@base_10:inject 6:21:r6:load@base_17:inject 7:27:r7:xor@base_22:inject 8:29:r1:load@base_27:inject 9:30:r5:load@base_9:inject 10:47:r0:mad@base_41:inject 11:48:r1:shfl@base_42:inject 12:50:r6:shfl@base_28:inject 13:55:r4:sub@base_35:inject 14:59:r7:xor@base_58:inject 15:62:r6:mulhi@base_54:lossy +igneum-ca3-v4-uniform/601 d3ac9abd93b459ba 0 0:1:1 1:2:1 2:0:0 3:2:0 4:2:3 5:1:0 6:2:3 7:2:1 8:2:2 9:1:0 10:2:1 11:2:2 12:2:1 13:1:0 14:0:0 15:1:0 4 0 0 3 1 0:2:r5:mul@base_1:lossy 1:3:r3:load@base_2:inject 2:5:r2:shfl@base_0:inject 3:8:r5:rotr@base_6:bijective 4:11:r3:rotl@base_10:bijective 5:14:r7:mul@base_9:lossy 6:17:r0:load@base_11:inject 7:19:r2:rotl@base_15:bijective 8:24:r3:rotr@base_20:bijective 9:29:r2:mulhi@base_21:lossy 10:38:r4:mul@base_33:lossy 11:41:r6:rotl@base_40:bijective 12:46:r5:xor@base_35:inject 13:47:r1:rotl@base_43:bijective 14:53:r0:rotl@base_52:bijective 15:62:r4:mad@base_61:inject +igneum-ca3-v4-uniform/602 773e4119e2a1026c 1 0:0:0 1:1:1 2:0:0 3:0:0 4:1:1 5:1:1 6:0:0 7:1:1 8:0:0 9:0:0 10:1:0 11:0:0 12:1:1 13:1:0 14:2:2 15:0:0 3 0 0 1 2 0:1:r1:sub@base_0:inject 1:2:r5:load@base_1:inject 2:8:r6:load@base_2:inject 3:10:r1:rotr@base_9:bijective 4:18:r2:mul@base_15:lossy 5:26:r4:load@base_18:inject 6:29:r4:rotr@base_28:bijective 7:35:r0:shfl@base_21:inject 8:37:r5:load@base_35:inject 9:45:r3:mulhi@base_38:lossy 10:54:r1:add@base_36:inject 11:57:r0:mad@base_53:inject 12:59:r7:mulhi@base_51:lossy 13:61:r3:sub@base_56:inject 14:62:r6:rotl@base_60:bijective 15:63:r2:load@base_57:inject +igneum-ca3-v4-uniform/603 dd2d6801d0995b06 0 0:0:0 1:1:1 2:0:0 3:2:0 4:1:1 5:0:0 6:0:0 7:1:0 8:1:0 9:2:1 10:0:0 11:1:0 12:1:0 13:2:1 14:2:2 15:0:0 1 0 0 0 1 0:12:r7:add@base_10:inject 1:13:r3:load@base_12:inject 2:17:r1:sub@base_16:inject 3:18:r4:rotr@base_7:bijective 4:20:r3:load@base_17:inject 5:21:r2:load@base_13:inject 6:28:r6:xor@base_19:inject 7:29:r7:load@base_20:inject 8:30:r5:add@base_23:inject 9:41:r3:rotr@base_38:bijective 10:45:r6:rotl@base_31:bijective 11:48:r0:mulhi@base_44:lossy 12:49:r2:load@base_48:inject 13:56:r3:add@base_51:inject 14:57:r7:mad@base_54:inject 15:62:r4:add@base_59:inject +igneum-ca3-v4-uniform/604 0db572c45541b4ea 0 0:1:0 1:2:0 2:0:0 3:1:1 4:2:2 5:0:0 6:0:0 7:2:2 8:2:2 9:0:0 10:2:0 11:0:0 12:1:0 13:2:0 14:1:1 15:2:2 2 0 0 2 0 0:3:r6:xor@base_0:inject 1:6:r2:mul@base_1:lossy 2:12:r0:load@base_6:inject 3:13:r7:rotl@base_7:bijective 4:25:r7:add@base_23:inject 5:32:r4:add@base_26:inject 6:33:r7:load@base_32:inject 7:37:r1:xor@base_35:inject 8:41:r3:mul@base_34:lossy 9:45:r3:rotl@base_44:bijective 10:51:r3:shfl@base_47:inject 11:53:r5:mad@base_42:inject 12:55:r1:load@base_51:inject 13:57:r6:rotl@base_54:bijective 14:59:r4:xor@base_50:inject 15:60:r1:rotr@base_58:bijective +igneum-ca3-v4-uniform/605 8d1892a2eca1332d 0 0:0:0 1:1:0 2:0:0 3:2:0 4:1:0 5:1:0 6:0:0 7:1:1 8:0:0 9:0:0 10:1:1 11:0:0 12:2:0 13:0:0 14:1:0 15:1:0 4 2 1 1 1 0:4:r1:or@base_3:lossy-or-chain1 1:7:r5:mad@base_5:inject 2:10:r7:mul@base_2:lossy 3:11:r5:load@base_10:inject 4:14:r1:mad@base_12:inject 5:18:r6:load@base_14:inject 6:19:r4:add@base_6:inject 7:23:r2:mulhi@base_21:lossy 8:27:r5:sub@base_24:inject 9:32:r7:or@base_22:lossy 10:33:r0:add@base_31:inject 11:35:r1:load@base_33:inject 12:49:r4:xor@base_34:inject 13:52:r4:xor@base_50:inject 14:61:r6:xor@base_59:inject 15:62:r7:shfl@base_43:inject +igneum-ca3-v4-uniform/606 4c7be56c62c1cffa 0 0:2:2 1:2:3 2:2:0 3:1:1 4:1:0 5:2:2 6:0:0 7:2:3 8:0:0 9:0:0 10:2:3 11:2:3 12:2:2 13:2:0 14:0:0 15:0:0 5 0 0 2 3 0:3:r1:mad@base_2:inject 1:9:r3:xor@base_8:inject 2:15:r7:rotr@base_14:bijective 3:19:r5:mulhi@base_7:lossy 4:21:r7:mulhi@base_18:lossy 5:25:r6:mulhi@base_22:lossy 6:32:r3:mul@base_28:lossy 7:37:r5:add@base_36:inject 8:38:r2:xor@base_12:inject 9:39:r6:xor@base_35:inject 10:41:r5:load@base_39:inject 11:42:r0:add@base_34:inject 12:43:r3:load@base_42:inject 13:55:r4:add@base_52:inject 14:60:r5:load@base_55:inject 15:61:r1:mul@base_33:lossy +igneum-ca3-v4-uniform/607 495982b645409709 0 0:1:1 1:2:0 2:2:2 3:0:0 4:1:0 5:2:3 6:1:0 7:2:3 8:0:0 9:2:0 10:0:0 11:1:1 12:2:1 13:1:1 14:0:0 15:0:0 1 1 0 0 0 0:4:r2:add@base_1:inject 1:17:r4:add@base_5:inject 2:18:r0:rotr@base_13:bijective 3:21:r6:shfl@base_12:inject 4:22:r0:load@base_21:inject 5:24:r2:or@base_23:lossy 6:26:r3:sub@base_15:inject 7:32:r5:rotr@base_30:bijective 8:36:r3:load@base_32:inject 9:43:r0:add@base_42:inject 10:44:r5:xor@base_38:inject 11:46:r7:load@base_44:inject 12:48:r3:shfl@base_47:inject 13:52:r2:rotl@base_39:bijective 14:58:r0:xor@base_49:inject 15:60:r2:load@base_58:inject +igneum-ca3-v4-uniform/608 f4dca4f00aed92f7 0 0:1:0 1:2:0 2:2:0 3:0:0 4:1:0 5:1:1 6:1:1 7:1:0 8:2:1 9:0:0 10:2:2 11:1:1 12:1:1 13:1:0 14:2:3 15:1:1 3 1 0 1 1 0:2:r3:or@base_1:lossy 1:6:r4:xor@base_3:inject 2:9:r3:add@base_4:inject 3:14:r6:mul@base_5:lossy 4:18:r5:load@base_6:inject 5:23:r0:load@base_18:inject 6:26:r6:mulhi@base_19:lossy 7:30:r6:xor@base_28:inject 8:31:r1:load@base_26:inject 9:38:r2:xor@base_37:inject 10:39:r3:load@base_38:inject 11:40:r1:rotl@base_36:bijective 12:42:r7:add@base_27:inject 13:43:r5:load@base_42:inject 14:62:r0:add@base_46:inject 15:63:r6:rotr@base_60:bijective +igneum-ca3-v4-uniform/609 e5ac25088b9ac5c7 0 0:2:1 1:1:0 2:0:0 3:2:0 4:1:1 5:0:0 6:2:2 7:0:0 8:2:2 9:1:0 10:1:0 11:0:0 12:0:0 13:1:1 14:0:0 15:1:0 3 1 0 2 0 0:1:r4:xor@base_0:inject 1:2:r6:mad@shadow_227:inject 2:6:r5:add@base_3:inject 3:15:r2:sub@base_14:inject 4:19:r1:mad@base_5:inject 5:29:r2:mul@base_17:lossy 6:31:r4:mul@base_27:lossy 7:33:r5:mad@base_10:inject 8:35:r3:load@base_31:inject 9:36:r6:load@base_35:inject 10:37:r1:load@base_33:inject 11:44:r0:or@base_41:lossy 12:47:r6:mad@base_38:inject 13:55:r4:rotr@base_48:bijective 14:57:r7:load@base_44:inject 15:61:r3:rotr@base_60:bijective +igneum-ca3-v4-uniform/610 75086f0c488c5084 0 0:1:0 1:2:3 2:2:3 3:0:0 4:2:0 5:1:0 6:0:0 7:0:0 8:2:2 9:2:2 10:0:0 11:1:0 12:0:0 13:1:1 14:0:0 15:1:0 1 0 0 1 0 0:9:r4:mul@base_8:lossy 1:10:r1:load@base_9:inject 2:13:r2:xor@base_11:inject 3:16:r7:rotr@base_12:bijective 4:32:r4:add@base_31:inject 5:38:r1:shfl@base_24:inject 6:39:r7:add@base_27:inject 7:40:r2:add@base_37:inject 8:41:r0:load@base_40:inject 9:42:r3:mad@base_36:inject 10:45:r4:sub@base_43:inject 11:47:r3:sub@base_46:inject 12:52:r6:load@base_41:inject 13:53:r2:rotr@base_51:bijective 14:56:r0:mad@base_50:inject 15:59:r7:xor@base_55:inject +igneum-ca3-v4-uniform/611 33b5c8c86692a35a 0 0:0:0 1:1:0 2:2:2 3:0:0 4:0:0 5:2:2 6:2:2 7:1:1 8:1:1 9:1:1 10:0:0 11:0:0 12:0:0 13:2:0 14:0:0 15:0:0 1 1 0 0 0 0:7:r0:xor@base_3:inject 1:18:r3:add@base_12:inject 2:19:r7:sub@base_10:inject 3:23:r0:mad@base_9:inject 4:25:r1:load@base_19:inject 5:26:r3:load@base_25:inject 6:30:r1:load@base_26:inject 7:34:r5:or@base_5:lossy 8:35:r3:load@base_34:inject 9:37:r4:load@base_35:inject 10:40:r1:shfl@base_36:inject 11:42:r5:load@base_40:inject 12:43:r7:load@base_42:inject 13:50:r4:rotl@base_46:bijective 14:54:r1:mad@base_51:inject 15:63:r4:add@base_60:inject +igneum-ca3-v4-uniform/612 d33f92ece02a330b 0 0:2:0 1:1:1 2:1:1 3:1:1 4:2:2 5:2:1 6:0:0 7:2:1 8:1:1 9:0:0 10:2:0 11:2:2 12:1:1 13:0:0 14:0:0 15:0:0 2 1 0 1 0 0:12:r3:shfl@base_7:inject 1:13:r0:mad@base_9:inject 2:18:r5:xor@base_17:inject 3:21:r6:shfl@base_19:inject 4:23:r4:add@base_10:inject 5:24:r3:load@base_21:inject 6:32:r2:or@base_30:lossy 7:34:r5:mad@base_33:inject 8:38:r0:rotr@base_22:bijective 9:40:r4:load@base_38:inject 10:41:r1:sub@base_39:inject 11:43:r1:rotr@base_42:bijective 12:44:r7:load@base_43:inject 13:46:r5:load@base_41:inject 14:56:r4:load@base_46:inject 15:57:r1:mul@base_52:lossy +igneum-ca3-v4-uniform/613 c2d2276daacbffd4 0 0:2:2 1:1:1 2:0:0 3:1:1 4:1:1 5:0:0 6:2:2 7:2:1 8:2:1 9:0:0 10:1:0 11:2:0 12:2:2 13:2:0 14:2:1 15:1:1 3 0 0 2 1 0:5:r3:mul@base_0:lossy 1:13:r7:xor@base_12:inject 2:14:r1:shfl@base_9:inject 3:16:r6:add@base_11:inject 4:19:r4:mad@base_15:inject 5:21:r1:mad@base_18:inject 6:26:r2:shfl@base_25:inject 7:29:r7:rotl@base_22:bijective 8:30:r3:mulhi@base_20:lossy 9:42:r4:mad@base_41:inject 10:46:r7:shfl@base_45:inject 11:47:r6:mad@base_37:inject 12:49:r2:mul@base_32:lossy 13:53:r3:rotr@base_51:bijective 14:55:r7:load@base_49:inject 15:62:r0:rotl@base_52:bijective +igneum-ca3-v4-uniform/614 f9e335ab5e7c2214 0 0:0:0 1:0:0 2:1:0 3:2:0 4:2:1 5:1:1 6:1:0 7:1:0 8:1:1 9:1:1 10:2:1 11:1:0 12:0:0 13:2:3 14:2:2 15:2:0 3 0 0 2 1 0:1:r3:shfl@base_0:inject 1:5:r5:load@base_1:inject 2:8:r7:load@base_5:inject 3:15:r1:mulhi@base_14:lossy 4:16:r6:xor@base_9:inject 5:20:r5:mul@base_18:lossy 6:22:r0:rotl@base_21:bijective 7:31:r6:rotl@base_28:bijective 8:40:r3:mul@base_39:lossy 9:41:r1:load@base_31:inject 10:43:r2:xor@base_33:inject 11:47:r7:xor@base_46:inject 12:48:r0:load@base_40:inject 13:51:r5:mad@base_49:inject 14:55:r1:xor@base_52:inject 15:57:r4:load@base_51:inject +igneum-ca3-v4-uniform/615 dcd8c7a58b214d27 0 0:2:0 1:1:0 2:0:0 3:1:1 4:0:0 5:2:1 6:0:0 7:2:0 8:2:1 9:1:1 10:1:1 11:1:0 12:2:3 13:2:3 14:0:0 15:0:0 2 0 0 2 0 0:1:r5:add@base_0:inject 1:4:r3:add@base_2:inject 2:10:r7:load@base_4:inject 3:11:r6:mul@base_8:lossy 4:12:r0:load@base_11:inject 5:15:r5:mul@base_13:lossy 6:31:r2:load@base_10:inject 7:36:r4:shfl@base_34:inject 8:37:r3:add@base_32:inject 9:39:r5:xor@base_29:inject 10:40:r6:load@base_37:inject 11:44:r7:xor@base_35:inject 12:45:r3:load@base_40:inject 13:49:r6:add@base_47:inject 14:51:r4:xor@base_50:inject 15:58:r1:load@base_51:inject +igneum-ca3-v4-uniform/616 2768b889fb629a5f 0 0:0:0 1:0:0 2:1:1 3:1:0 4:2:1 5:0:0 6:0:0 7:1:1 8:1:0 9:1:0 10:1:0 11:0:0 12:1:1 13:1:0 14:1:0 15:0:0 1 0 0 1 0 0:4:r4:add@base_0:inject 1:11:r7:mad@base_8:inject 2:13:r6:add@base_9:inject 3:14:r7:load@base_13:inject 4:16:r3:add@base_6:inject 5:18:r4:rotl@base_15:bijective 6:23:r2:mul@base_21:lossy 7:27:r3:load@base_23:inject 8:28:r5:load@base_27:inject 9:38:r7:rotl@base_36:bijective 10:46:r2:rotl@base_44:bijective 11:52:r7:xor@base_47:inject 12:56:r3:rotr@base_50:bijective 13:59:r4:add@base_58:inject 14:61:r1:sub@base_60:inject 15:62:r6:xor@base_54:inject +igneum-ca3-v4-uniform/617 e25a23fad58c9bf5 0 0:0:0 1:1:0 2:2:2 3:0:0 4:0:0 5:1:0 6:1:0 7:1:1 8:2:2 9:2:0 10:0:0 11:2:3 12:0:0 13:2:0 14:2:1 15:1:0 3 0 0 3 0 0:6:r2:xor@base_4:inject 1:23:r1:add@base_16:inject 2:26:r5:mul@base_24:lossy 3:27:r6:load@base_26:inject 4:29:r0:rotl@base_25:bijective 5:30:r6:mul@base_28:lossy 6:40:r3:load@base_30:inject 7:43:r5:mul@base_34:lossy 8:45:r4:load@base_43:inject 9:48:r7:rotl@base_36:bijective 10:49:r2:add@base_47:inject 11:52:r1:add@base_37:inject 12:53:r4:rotr@base_46:bijective 13:55:r3:add@base_51:inject 14:58:r0:load@base_52:inject 15:60:r6:load@base_53:inject +igneum-ca3-v4-uniform/618 c848703f1ddb7357 2 0:1:0 1:0:0 2:0:0 3:1:0 4:0:0 5:2:0 6:0:0 7:0:0 8:2:2 9:2:3 10:0:0 11:2:0 12:1:1 13:1:0 14:1:0 15:1:0 0 0 0 0 0 0:6:r2:mad@base_2:inject 1:7:r3:load@base_6:inject 2:8:r4:shfl@base_4:inject 3:11:r0:rotr@base_5:bijective 4:13:r4:sub@base_10:inject 5:17:r7:load@base_13:inject 6:25:r4:sub@base_16:inject 7:26:r5:sub@base_18:inject 8:29:r1:xor@base_23:inject 9:30:r2:load@base_29:inject 10:32:r3:xor@base_21:inject 11:40:r0:load@base_26:inject 12:47:r3:rotr@base_43:bijective 13:54:r4:sub@base_49:inject 14:58:r6:mad@base_50:inject 15:62:r5:rotr@base_35:bijective +igneum-ca3-v4-uniform/619 c3350399454d6580 0 0:0:0 1:2:1 2:0:0 3:1:1 4:0:0 5:0:0 6:0:0 7:2:3 8:0:0 9:2:1 10:2:2 11:2:2 12:2:3 13:0:0 14:2:0 15:2:0 6 3 1 2 1 0:2:r7:mul@base_0:lossy 1:5:r5:add@base_3:inject 2:8:r3:load@base_5:inject 3:11:r1:shfl@base_9:inject 4:15:r7:or@base_12:lossy 5:18:r0:load@base_11:inject 6:20:r5:add@base_10:inject 7:21:r1:rotl@base_19:bijective 8:25:r2:mulhi@base_23:lossy 9:39:r5:or@base_31:lossy-or-chain1 10:48:r2:mul@base_46:lossy 11:53:r5:shfl@base_51:inject 12:55:r2:load@base_53:inject 13:56:r6:xor@base_49:inject 14:57:r4:or@base_41:lossy 15:63:r0:add@base_61:inject +igneum-ca3-v4-uniform/620 74742785671b76a5 0 0:1:0 1:0:0 2:2:2 3:1:1 4:1:1 5:1:0 6:2:2 7:0:0 8:0:0 9:2:3 10:1:1 11:0:0 12:0:0 13:1:0 14:0:0 15:1:1 4 1 0 1 2 0:2:r6:shfl@base_0:inject 1:3:r7:load@base_2:inject 2:6:r3:mulhi@base_5:lossy 3:17:r4:xor@base_11:inject 4:18:r6:add@base_15:inject 5:24:r5:mad@base_21:inject 6:31:r1:or@base_30:lossy 7:32:r6:load@base_24:inject 8:34:r7:rotr@base_33:bijective 9:36:r2:sub@base_25:inject 10:37:r3:sub@base_20:inject 11:39:r5:load@base_37:inject 12:41:r6:add@base_35:inject 13:45:r4:mulhi@base_44:lossy 14:54:r5:rotl@base_53:bijective 15:62:r5:mul@base_61:lossy +igneum-ca3-v4-uniform/621 e6e024bd5ca9581f 0 0:2:1 1:2:3 2:1:0 3:2:3 4:0:0 5:1:0 6:1:0 7:2:1 8:0:0 9:2:2 10:2:1 11:2:0 12:0:0 13:1:0 14:0:0 15:1:1 1 0 0 0 1 0:8:r7:add@base_1:inject 1:14:r3:shfl@base_13:inject 2:17:r2:mulhi@base_11:lossy 3:19:r7:load@base_14:inject 4:22:r0:rotr@base_21:bijective 5:24:r4:sub@base_23:inject 6:25:r7:load@base_24:inject 7:27:r5:load@base_19:inject 8:31:r1:add@base_26:inject 9:40:r1:sub@base_38:inject 10:45:r4:add@base_42:inject 11:46:r0:load@base_45:inject 12:50:r6:rotr@base_48:bijective 13:53:r7:rotr@base_47:bijective 14:55:r0:load@base_53:inject 15:56:r5:shfl@base_54:inject +igneum-ca3-v4-uniform/622 02af00f5e620532c 0 0:0:0 1:1:1 2:2:2 3:0:0 4:0:0 5:2:3 6:2:2 7:0:0 8:1:0 9:0:0 10:0:0 11:1:0 12:0:0 13:2:2 14:0:0 15:0:0 3 1 0 1 1 0:2:r6:add@base_0:inject 1:3:r4:or@base_1:lossy 2:5:r0:load@base_3:inject 3:6:r2:xor@base_4:inject 4:9:r1:load@base_5:inject 5:13:r1:mul@base_10:lossy 6:14:r3:load@base_6:inject 7:19:r6:rotr@base_18:bijective 8:24:r0:rotr@base_16:bijective 9:40:r7:add@base_25:inject 10:45:r2:add@base_34:inject 11:46:r4:load@base_40:inject 12:52:r6:mulhi@base_44:lossy 13:57:r2:shfl@base_51:inject 14:58:r4:add@base_54:inject 15:63:r6:load@base_58:inject +igneum-ca3-v4-uniform/623 3285e4acbce4bb16 0 0:1:1 1:1:1 2:1:1 3:1:0 4:2:2 5:1:0 6:2:2 7:2:3 8:2:0 9:1:1 10:1:1 11:0:0 12:1:0 13:1:0 14:2:3 15:1:0 4 1 0 1 2 0:3:r7:mulhi@base_0:lossy 1:5:r0:add@base_2:inject 2:7:r3:mul@base_1:lossy 3:8:r2:mulhi@base_4:lossy 4:17:r1:rotr@base_9:bijective 5:25:r3:sub@base_16:inject 6:26:r2:rotr@base_23:bijective 7:27:r6:load@base_26:inject 8:30:r0:load@base_25:inject 9:31:r6:load@base_30:inject 10:36:r5:add@base_29:inject 11:39:r4:rotr@base_38:bijective 12:40:r1:mad@base_35:inject 13:44:r0:or@base_32:lossy 14:47:r5:shfl@base_46:inject 15:52:r6:mad@base_49:inject +igneum-ca3-v4-uniform/624 c6b06a8b4b1ca291 0 0:0:0 1:0:0 2:2:1 3:0:0 4:1:0 5:0:0 6:1:1 7:1:1 8:0:0 9:1:1 10:2:1 11:1:1 12:0:0 13:1:1 14:0:0 15:1:1 1 0 0 1 0 0:5:r1:add@base_0:inject 1:6:r3:rotl@base_1:bijective 2:8:r4:mad@base_4:inject 3:9:r0:load@base_6:inject 4:10:r6:xor@base_7:inject 5:11:r7:load@base_9:inject 6:21:r3:add@base_18:inject 7:24:r1:add@base_22:inject 8:25:r7:load@base_21:inject 9:31:r5:load@base_24:inject 10:32:r3:load@base_31:inject 11:34:r4:load@base_25:inject 12:35:r0:mad@base_15:inject 13:41:r7:load@base_35:inject 14:43:r3:rotl@base_36:bijective 15:53:r1:mul@base_48:lossy +igneum-ca3-v4-uniform/625 572f7a8bc2e9a518 0 0:1:1 1:0:0 2:0:0 3:1:0 4:1:0 5:1:1 6:0:0 7:2:3 8:0:0 9:0:0 10:2:3 11:1:1 12:0:0 13:0:0 14:1:0 15:2:1 4 0 0 4 0 0:7:r5:mul@base_6:lossy 1:12:r0:load@base_7:inject 2:13:r2:shfl@base_11:inject 3:14:r5:load@base_13:inject 4:21:r6:mad@base_16:inject 5:32:r4:sub@base_31:inject 6:33:r1:mul@base_30:lossy 7:41:r3:shfl@base_39:inject 8:46:r3:mul@base_42:lossy 9:48:r6:load@base_46:inject 10:50:r7:sub@base_47:inject 11:54:r3:mad@base_52:inject 12:55:r1:xor@base_49:inject 13:60:r4:add@base_53:inject 14:61:r1:load@base_60:inject 15:62:r7:mul@base_57:lossy +igneum-ca3-v4-uniform/626 27208927143ed8b9 0 0:2:1 1:0:0 2:1:0 3:1:0 4:0:0 5:2:2 6:2:0 7:2:2 8:2:3 9:2:1 10:0:0 11:2:0 12:1:1 13:1:1 14:1:1 15:2:3 2 0 0 1 1 0:1:r4:shfl@shadow_252:inject 1:2:r0:load@base_1:inject 2:4:r1:load@base_2:inject 3:5:r0:load@base_4:inject 4:8:r3:load@base_5:inject 5:10:r5:load@base_8:inject 6:26:r1:add@base_21:inject 7:28:r0:load@base_26:inject 8:31:r2:sub@base_23:inject 9:38:r7:xor@base_27:inject 10:43:r4:mul@base_20:lossy 11:45:r1:load@base_43:inject 12:48:r1:xor@base_47:inject 13:49:r7:xor@base_39:inject 14:50:r5:load@base_48:inject 15:59:r0:mulhi@base_52:lossy +igneum-ca3-v4-uniform/627 914d114827c6a010 0 0:2:1 1:1:0 2:2:3 3:0:0 4:1:1 5:2:0 6:0:0 7:1:1 8:2:2 9:2:2 10:1:0 11:0:0 12:2:1 13:1:1 14:0:0 15:1:0 3 1 0 1 1 0:3:r0:or@base_0:lossy 1:6:r1:mulhi@base_2:lossy 2:9:r3:load@base_6:inject 3:16:r7:rotl@base_15:bijective 4:24:r1:mul@base_22:lossy 5:26:r6:load@base_24:inject 6:29:r0:rotl@base_27:bijective 7:38:r3:rotr@base_34:bijective 8:41:r2:load@base_38:inject 9:46:r5:load@base_41:inject 10:47:r3:load@base_46:inject 11:49:r6:add@base_45:inject 12:51:r1:load@base_49:inject 13:52:r2:rotr@base_48:bijective 14:57:r3:add@base_56:inject 15:59:r2:rotr@base_54:bijective +igneum-ca3-v4-uniform/628 6ef584c860a30967 0 0:1:0 1:1:1 2:2:3 3:1:1 4:2:1 5:1:0 6:0:0 7:2:2 8:0:0 9:1:1 10:2:0 11:1:0 12:0:0 13:2:3 14:2:3 15:0:0 4 1 0 1 2 0:1:r4:mulhi@base_0:lossy 1:2:r3:load@base_1:inject 2:4:r4:load@base_2:inject 3:8:r2:sub@base_6:inject 4:11:r3:mulhi@base_10:lossy 5:12:r5:load@base_4:inject 6:23:r5:shfl@base_20:inject 7:25:r4:or@base_24:lossy 8:26:r1:sub@base_16:inject 9:35:r4:load@base_26:inject 10:46:r0:rotr@base_44:bijective 11:47:r5:load@base_46:inject 12:50:r4:mul@base_42:lossy 13:53:r3:add@base_49:inject 14:59:r5:rotl@base_55:bijective 15:63:r6:mad@base_62:inject +igneum-ca3-v4-uniform/629 c09cfb3128cf8448 0 0:0:0 1:1:1 2:1:0 3:1:0 4:1:1 5:2:1 6:1:0 7:2:2 8:0:0 9:1:1 10:0:0 11:0:0 12:2:3 13:0:0 14:2:0 15:0:0 2 0 0 1 1 0:3:r0:mulhi@base_2:lossy 1:4:r5:xor@base_1:inject 2:5:r2:xor@base_0:inject 3:15:r5:rotl@base_11:bijective 4:23:r5:add@base_18:inject 5:27:r4:rotl@base_24:bijective 6:31:r1:shfl@base_14:inject 7:34:r3:add@base_26:inject 8:38:r2:shfl@base_36:inject 9:39:r3:load@base_38:inject 10:42:r5:xor@base_33:inject 11:44:r6:load@base_42:inject 12:45:r5:load@base_44:inject 13:50:r7:mad@base_47:inject 14:51:r2:shfl@base_46:inject 15:55:r6:mul@base_48:lossy +igneum-ca3-v4-uniform/630 42c9561a00dfc4f0 0 0:0:0 1:1:0 2:1:0 3:0:0 4:2:0 5:1:0 6:1:0 7:0:0 8:0:0 9:0:0 10:0:0 11:0:0 12:0:0 13:0:0 14:1:1 15:0:0 1 1 1 0 0 0:1:r4:xor@base_0:inject 1:3:r5:shfl@base_2:inject 2:4:r0:load@base_1:inject 3:5:r7:load@base_4:inject 4:10:r2:xor@base_8:inject 5:11:r3:load@base_10:inject 6:12:r7:load@base_11:inject 7:14:r0:rotr@base_13:bijective 8:18:r6:add@base_9:inject 9:19:r7:shfl@base_16:inject 10:26:r1:or@base_25:lossy-or-chain1 11:39:r3:xor@base_31:inject 12:46:r4:load@base_39:inject 13:48:r6:sub@base_44:inject 14:55:r6:shfl@base_54:inject 15:57:r3:load@base_55:inject +igneum-ca3-v4-uniform/631 8a83e4031e8bdcbd 0 0:2:0 1:1:1 2:2:3 3:2:1 4:1:0 5:2:1 6:2:0 7:1:0 8:2:0 9:1:1 10:2:3 11:2:3 12:2:2 13:1:0 14:2:1 15:2:2 2 0 0 0 2 0:2:r3:xor@base_1:inject 1:3:r0:load@base_2:inject 2:23:r3:add@base_19:inject 3:29:r7:shfl@base_28:inject 4:30:r0:mulhi@base_17:lossy 5:37:r2:load@base_30:inject 6:41:r6:shfl@base_38:inject 7:44:r3:mulhi@base_39:lossy 8:49:r5:rotr@base_48:bijective 9:50:r7:load@base_49:inject 10:54:r0:mad@base_47:inject 11:58:r5:rotl@base_53:bijective 12:59:r3:add@base_51:inject 13:60:r6:mad@base_57:inject 14:61:r2:load@base_41:inject 15:62:r1:rotl@base_55:bijective +igneum-ca3-v4-uniform/632 22eeec401ade3e04 0 0:1:1 1:1:0 2:2:1 3:0:0 4:0:0 5:2:1 6:2:3 7:1:0 8:1:1 9:2:2 10:2:0 11:2:3 12:2:1 13:2:3 14:0:0 15:1:1 2 0 0 1 1 0:8:r3:xor@base_7:inject 1:10:r6:add@base_4:inject 2:20:r1:mad@base_14:inject 3:23:r0:add@base_15:inject 4:24:r7:xor@base_16:inject 5:25:r6:load@base_20:inject 6:26:r5:load@base_23:inject 7:32:r3:load@base_24:inject 8:38:r2:add@base_37:inject 9:45:r0:xor@base_35:inject 10:47:r6:add@base_29:inject 11:53:r2:add@base_50:inject 12:54:r6:xor@base_49:inject 13:55:r3:mul@base_51:lossy 14:57:r7:mad@base_33:inject 15:59:r2:mulhi@base_58:lossy +igneum-ca3-v4-uniform/633 51bacf08e515ed90 0 0:1:1 1:0:0 2:0:0 3:0:0 4:1:0 5:2:3 6:2:3 7:0:0 8:0:0 9:1:0 10:0:0 11:2:1 12:1:1 13:2:2 14:0:0 15:1:1 0 0 0 0 0 0:3:r4:shfl@base_2:inject 1:4:r1:add@base_1:inject 2:6:r5:load@base_4:inject 3:8:r7:add@base_5:inject 4:16:r2:add@base_15:inject 5:17:r0:sub@base_13:inject 6:45:r4:xor@base_43:inject 7:46:r7:add@base_40:inject 8:48:r0:xor@base_36:inject 9:49:r2:xor@base_47:inject 10:50:r7:load@base_49:inject 11:52:r5:load@base_48:inject 12:54:r3:load@base_50:inject 13:57:r1:sub@base_55:inject 14:58:r0:shfl@base_56:inject 15:61:r5:load@base_58:inject +igneum-ca3-v4-uniform/634 ee955967eabe5607 0 0:1:1 1:2:2 2:1:0 3:2:3 4:1:1 5:0:0 6:1:1 7:2:1 8:1:1 9:2:1 10:2:1 11:2:3 12:0:0 13:1:1 14:0:0 15:1:0 3 0 0 1 2 0:3:r0:mul@base_1:lossy 1:4:r6:mulhi@base_2:lossy 2:6:r5:load@base_4:inject 3:18:r7:shfl@base_14:inject 4:20:r1:xor@base_17:inject 5:22:r5:load@base_20:inject 6:25:r4:add@base_16:inject 7:26:r3:xor@base_11:inject 8:27:r0:load@base_26:inject 9:29:r1:load@base_25:inject 10:30:r7:add@base_23:inject 11:32:r1:add@base_31:inject 12:34:r2:mulhi@base_33:lossy 13:37:r3:load@base_30:inject 14:53:r7:mad@base_48:inject 15:63:r6:add@base_60:inject +igneum-ca3-v4-uniform/635 ed05e72468b0862e 0 0:0:0 1:0:0 2:2:0 3:1:1 4:1:1 5:0:0 6:0:0 7:2:2 8:2:1 9:1:1 10:1:0 11:1:1 12:1:1 13:2:0 14:0:0 15:2:0 1 0 0 1 0 0:2:r6:rotr@base_0:bijective 1:5:r0:rotl@base_4:bijective 2:7:r7:mad@base_6:inject 3:16:r1:rotl@base_12:bijective 4:22:r0:add@base_19:inject 5:23:r3:load@base_22:inject 6:24:r5:mad@base_21:inject 7:26:r6:load@base_24:inject 8:27:r3:load@base_26:inject 9:33:r4:shfl@base_32:inject 10:35:r1:shfl@base_30:inject 11:36:r2:load@base_35:inject 12:37:r0:load@base_36:inject 13:41:r6:rotl@base_34:bijective 14:52:r2:mul@base_49:lossy 15:57:r3:rotl@base_50:bijective +igneum-ca3-v4-uniform/636 8ff6b99578dfe6f3 0 0:2:3 1:1:0 2:2:2 3:0:0 4:1:0 5:1:1 6:0:0 7:2:3 8:0:0 9:1:1 10:2:1 11:0:0 12:1:0 13:0:0 14:0:0 15:1:1 3 1 0 2 0 0:1:r2:add@base_0:inject 1:7:r5:or@base_4:lossy 2:8:r3:mul@base_6:lossy 3:9:r4:rotr@base_2:bijective 4:11:r6:load@base_1:inject 5:13:r5:rotl@base_10:bijective 6:19:r1:rotl@base_18:bijective 7:28:r2:load@base_8:inject 8:31:r4:mul@base_27:lossy 9:32:r7:shfl@base_23:inject 10:33:r5:load@base_31:inject 11:34:r1:add@base_22:inject 12:43:r7:mad@base_42:inject 13:50:r0:add@base_48:inject 14:59:r4:rotl@base_41:bijective 15:63:r0:xor@base_61:inject +igneum-ca3-v4-uniform/637 a0da8737f483ea84 0 0:2:3 1:1:1 2:0:0 3:1:1 4:1:1 5:2:3 6:2:2 7:0:0 8:0:0 9:1:0 10:1:1 11:0:0 12:1:1 13:2:0 14:1:1 15:1:0 3 0 0 2 1 0:2:r6:add@base_1:inject 1:3:r2:mulhi@base_0:lossy 2:5:r4:load@base_3:inject 3:8:r4:mul@base_6:lossy 4:11:r3:mul@base_4:lossy 5:12:r5:shfl@base_10:inject 6:13:r2:load@base_12:inject 7:18:r6:rotr@base_15:bijective 8:19:r7:shfl@base_17:inject 9:20:r3:load@base_19:inject 10:25:r7:xor@base_23:inject 11:27:r1:rotl@base_26:bijective 12:32:r7:shfl@base_30:inject 13:36:r5:load@base_32:inject 14:50:r7:add@base_49:inject 15:54:r5:load@base_50:inject +igneum-ca3-v4-uniform/638 45717ffb4776879e 0 0:2:0 1:2:1 2:0:0 3:2:3 4:0:0 5:1:1 6:1:1 7:0:0 8:1:1 9:1:1 10:2:1 11:2:1 12:1:1 13:2:0 14:1:0 15:2:2 4 1 0 1 2 0:1:r5:rotl@base_0:bijective 1:9:r5:mulhi@base_8:lossy 2:12:r2:or@base_7:lossy 3:14:r0:mulhi@base_11:lossy 4:17:r4:rotr@base_13:bijective 5:19:r6:load@base_14:inject 6:21:r7:rotr@base_10:bijective 7:27:r4:load@base_19:inject 8:28:r2:load@base_21:inject 9:35:r1:add@base_24:inject 10:36:r5:rotl@base_33:bijective 11:42:r6:load@base_28:inject 12:46:r3:mad@base_40:inject 13:60:r7:rotl@base_58:bijective 14:62:r3:mul@base_51:lossy 15:63:r1:add@base_61:inject +igneum-ca3-v4-uniform/639 9a55fcb4211bfe22 0 0:2:0 1:0:0 2:2:0 3:1:1 4:2:3 5:1:1 6:2:3 7:0:0 8:1:0 9:0:0 10:2:0 11:2:3 12:2:2 13:2:0 14:0:0 15:1:0 3 0 0 3 0 0:3:r7:add@base_2:inject 1:4:r3:rotr@base_1:bijective 2:8:r3:mul@base_7:lossy 3:13:r6:load@base_3:inject 4:14:r5:shfl@base_9:inject 5:16:r3:xor@base_11:inject 6:18:r7:mad@base_17:inject 7:20:r0:mul@base_15:lossy 8:26:r5:xor@base_24:inject 9:34:r3:shfl@base_27:inject 10:35:r1:rotr@base_19:bijective 11:42:r7:add@base_40:inject 12:45:r1:rotr@base_37:bijective 13:47:r2:add@base_38:inject 14:50:r3:mul@base_46:lossy 15:59:r2:sub@base_54:inject +igneum-ca3-v4-uniform/640 81c4d8c942b72bff 0 0:1:1 1:1:1 2:2:3 3:1:0 4:2:2 5:0:0 6:1:0 7:2:2 8:1:1 9:0:0 10:0:0 11:1:1 12:1:0 13:0:0 14:1:0 15:2:2 3 1 0 1 1 0:9:r4:or@base_7:lossy 1:10:r1:load@base_9:inject 2:14:r6:rotl@base_3:bijective 3:17:r4:shfl@base_12:inject 4:22:r0:rotr@base_16:bijective 5:24:r3:xor@base_21:inject 6:25:r7:mulhi@base_0:lossy 7:32:r2:load@base_25:inject 8:38:r6:load@base_32:inject 9:39:r7:rotl@base_26:bijective 10:50:r7:xor@base_40:inject 11:51:r2:mul@base_45:lossy 12:52:r0:load@base_38:inject 13:54:r1:sub@base_44:inject 14:56:r5:load@base_54:inject 15:63:r7:shfl@base_62:inject +igneum-ca3-v4-uniform/641 e4813d2fcf2c2cb1 0 0:0:0 1:2:0 2:2:2 3:1:0 4:0:0 5:0:0 6:0:0 7:0:0 8:1:0 9:0:0 10:2:2 11:2:1 12:0:0 13:1:0 14:2:1 15:2:3 4 1 0 2 1 0:2:r3:xor@base_1:inject 1:4:r5:xor@base_3:inject 2:8:r1:xor@base_0:inject 3:15:r4:or@base_14:lossy 4:24:r7:xor@base_20:inject 5:25:r0:load@base_4:inject 6:27:r5:load@base_25:inject 7:33:r1:shfl@base_32:inject 8:34:r5:rotr@base_29:bijective 9:38:r2:load@base_34:inject 10:43:r7:mad@base_40:inject 11:44:r0:load@base_43:inject 12:46:r1:add@base_42:inject 13:48:r3:mulhi@base_37:lossy 14:56:r3:mul@base_52:lossy 15:59:r0:mul@base_54:lossy +igneum-ca3-v4-uniform/642 34aba5010e20fad8 0 0:2:2 1:0:0 2:2:3 3:2:2 4:2:0 5:2:1 6:0:0 7:1:1 8:1:1 9:0:0 10:0:0 11:0:0 12:2:2 13:1:1 14:0:0 15:1:1 3 1 0 1 1 0:1:r1:shfl@base_0:inject 1:5:r2:load@base_1:inject 2:10:r7:mulhi@base_3:lossy 3:12:r4:rotr@base_11:bijective 4:14:r7:xor@base_13:inject 5:16:r6:or@base_6:lossy 6:21:r7:xor@base_19:inject 7:23:r4:rotl@base_20:bijective 8:24:r6:rotl@base_22:bijective 9:25:r3:load@base_24:inject 10:28:r5:load@base_14:inject 11:42:r4:rotr@base_38:bijective 12:46:r6:mad@base_43:inject 13:50:r1:mul@base_47:lossy 14:58:r3:mad@base_57:inject 15:61:r3:sub@base_60:inject +igneum-ca3-v4-uniform/643 2af90d83334af21e 0 0:1:0 1:0:0 2:1:1 3:2:1 4:1:1 5:2:2 6:0:0 7:0:0 8:2:2 9:2:1 10:2:1 11:1:1 12:2:3 13:2:3 14:2:0 15:1:0 5 2 0 1 2 0:2:r1:add@base_1:inject 1:7:r0:mad@base_0:inject 2:13:r7:load@base_7:inject 3:16:r1:add@base_11:inject 4:19:r1:mad@base_18:inject 5:21:r4:load@base_16:inject 6:22:r6:mulhi@base_12:lossy 7:37:r4:rotr@base_32:bijective 8:40:r0:shfl@base_35:inject 9:42:r5:load@base_22:inject 10:44:r2:shfl@base_9:inject 11:46:r6:or@base_39:lossy 12:50:r3:or@base_43:lossy 13:54:r0:mulhi@base_49:lossy 14:61:r1:mul@base_41:lossy 15:63:r3:mad@base_58:inject +igneum-ca3-v4-uniform/644 11add72c431215bc 0 0:0:0 1:0:0 2:2:1 3:1:0 4:1:1 5:1:0 6:2:2 7:2:3 8:0:0 9:2:1 10:1:0 11:1:0 12:2:1 13:0:0 14:2:1 15:2:1 2 0 0 1 1 0:2:r4:mad@base_1:inject 1:4:r2:load@base_2:inject 2:13:r3:xor@base_8:inject 3:16:r7:shfl@base_9:inject 4:18:r3:rotr@base_14:bijective 5:23:r4:rotl@base_12:bijective 6:25:r1:add@base_15:inject 7:27:r5:rotl@base_22:bijective 8:30:r0:mul@base_29:lossy 9:34:r7:sub@base_24:inject 10:40:r1:add@base_26:inject 11:50:r3:rotr@base_45:bijective 12:53:r6:load@base_34:inject 13:54:r2:sub@base_48:inject 14:58:r7:load@base_53:inject 15:59:r4:mulhi@base_56:lossy +igneum-ca3-v4-uniform/645 cf17c9913bc5dc1d 0 0:1:0 1:0:0 2:2:3 3:2:3 4:2:1 5:2:0 6:2:1 7:0:0 8:1:0 9:1:0 10:1:0 11:0:0 12:0:0 13:0:0 14:0:0 15:1:1 0 0 0 0 0 0:4:r6:shfl@base_0:inject 1:5:r5:load@base_4:inject 2:7:r2:sub@base_6:inject 3:14:r4:load@base_7:inject 4:19:r0:shfl@base_18:inject 5:21:r5:sub@base_20:inject 6:27:r2:load@base_21:inject 7:30:r7:load@base_27:inject 8:40:r4:add@base_36:inject 9:42:r0:load@base_40:inject 10:43:r5:add@base_39:inject 11:44:r1:sub@base_37:inject 12:53:r6:load@base_43:inject 13:54:r4:add@base_49:inject 14:55:r1:load@base_54:inject 15:60:r0:load@base_53:inject +igneum-ca3-v4-uniform/646 cbdf483fbdc1490a 0 0:0:0 1:0:0 2:0:0 3:2:1 4:1:1 5:0:0 6:0:0 7:1:0 8:1:1 9:2:0 10:1:1 11:2:3 12:1:1 13:0:0 14:0:0 15:2:2 2 0 0 2 0 0:5:r6:mul@base_2:lossy 1:10:r2:xor@base_6:inject 2:14:r1:xor@base_7:inject 3:19:r5:load@base_10:inject 4:21:r6:rotl@base_17:bijective 5:22:r3:load@base_19:inject 6:28:r4:mul@base_12:lossy 7:30:r1:sub@base_29:inject 8:34:r7:rotr@base_26:bijective 9:43:r2:xor@base_42:inject 10:49:r0:rotl@base_47:bijective 11:52:r6:rotl@base_50:bijective 12:53:r4:load@base_52:inject 13:54:r5:load@base_43:inject 14:56:r6:xor@base_55:inject 15:63:r5:xor@base_59:inject +igneum-ca3-v4-uniform/647 c6471411440719d5 0 0:2:1 1:0:0 2:0:0 3:0:0 4:2:3 5:1:1 6:0:0 7:1:1 8:0:0 9:1:1 10:0:0 11:2:0 12:0:0 13:0:0 14:2:0 15:2:1 4 2 0 0 2 0:6:r1:rotl@base_4:bijective 1:7:r6:or@base_1:lossy 2:10:r6:shfl@base_8:inject 3:14:r2:rotr@base_5:bijective 4:22:r2:add@base_19:inject 5:25:r3:mulhi@base_17:lossy 6:28:r2:rotr@base_27:bijective 7:40:r3:add@base_26:inject 8:43:r7:load@base_40:inject 9:44:r2:shfl@base_35:inject 10:47:r1:load@base_43:inject 11:50:r4:or@base_49:lossy 12:55:r5:rotr@base_53:bijective 13:57:r7:load@base_55:inject 14:62:r0:shfl@base_59:inject 15:63:r3:mulhi@base_60:lossy +igneum-ca3-v4-uniform/648 c089cb8e2aeb7f03 0 0:2:2 1:1:0 2:2:1 3:2:3 4:1:1 5:2:0 6:1:1 7:2:3 8:2:0 9:1:1 10:1:1 11:0:0 12:0:0 13:1:1 14:0:0 15:2:2 3 1 0 1 1 0:1:r1:shfl@base_0:inject 1:12:r0:xor@base_5:inject 2:13:r5:load@base_12:inject 3:15:r2:rotr@base_11:bijective 4:23:r7:mul@base_22:lossy 5:25:r3:add@base_24:inject 6:26:r5:load@base_15:inject 7:28:r1:add@base_18:inject 8:29:r7:load@base_28:inject 9:30:r0:load@base_29:inject 10:32:r4:load@base_23:inject 11:39:r6:or@base_38:lossy 12:42:r1:xor@base_41:inject 13:50:r6:mulhi@base_48:lossy 14:56:r0:sub@base_53:inject 15:63:r3:add@base_62:inject +igneum-ca3-v4-uniform/649 9292dabbbb80be7b 0 0:1:0 1:0:0 2:0:0 3:2:1 4:1:0 5:1:1 6:2:2 7:2:1 8:1:0 9:0:0 10:0:0 11:0:0 12:1:0 13:2:1 14:0:0 15:2:1 3 1 0 1 1 0:3:r3:or@base_1:lossy 1:7:r7:mul@base_0:lossy 2:8:r1:load@base_7:inject 3:9:r2:shfl@base_5:inject 4:12:r6:load@base_8:inject 5:13:r0:rotr@base_10:bijective 6:15:r5:load@base_12:inject 7:18:r1:load@base_9:inject 8:19:r6:mulhi@base_17:lossy 9:24:r4:rotl@base_20:bijective 10:26:r1:load@base_24:inject 11:27:r7:load@base_19:inject 12:31:r2:mad@base_30:inject 13:45:r5:load@base_26:inject 14:51:r7:add@base_40:inject 15:61:r2:add@base_60:inject +igneum-ca3-v4-uniform/650 7c34066e89bc536a 0 0:1:1 1:1:0 2:0:0 3:0:0 4:1:0 5:2:1 6:1:1 7:0:0 8:1:0 9:1:1 10:1:0 11:0:0 12:0:0 13:2:1 14:2:3 15:0:0 3 2 1 1 0 0:1:r5:or@base_0:lossy 1:2:r2:load@base_1:inject 2:4:r1:xor@base_3:inject 3:10:r6:load@base_2:inject 4:11:r7:or@base_5:lossy-or-chain1 5:16:r5:add@base_13:inject 6:32:r2:add@base_19:inject 7:33:r0:load@base_32:inject 8:35:r7:mul@base_17:lossy 9:36:r2:load@base_33:inject 10:38:r4:shfl@base_29:inject 11:41:r5:add@base_39:inject 12:43:r4:rotr@base_42:bijective 13:48:r2:mad@base_40:inject 14:54:r5:shfl@base_46:inject 15:58:r6:add@base_24:inject +igneum-ca3-v4-uniform/651 616af1905c05577e 0 0:1:0 1:2:1 2:0:0 3:2:2 4:2:0 5:0:0 6:2:0 7:2:1 8:2:0 9:2:1 10:2:2 11:0:0 12:2:2 13:1:1 14:0:0 15:2:0 1 0 0 1 0 0:10:r7:sub@base_9:inject 1:13:r3:shfl@base_12:inject 2:14:r2:load@base_13:inject 3:20:r0:add@base_16:inject 4:23:r2:load@base_20:inject 5:24:r1:xor@base_21:inject 6:25:r0:load@base_23:inject 7:32:r5:sub@base_27:inject 8:37:r2:rotr@base_31:bijective 9:42:r1:add@base_38:inject 10:46:r4:xor@base_43:inject 11:47:r0:rotr@base_28:bijective 12:48:r7:load@base_32:inject 13:55:r3:mad@base_54:inject 14:57:r6:load@base_42:inject 15:61:r5:mul@base_56:lossy +igneum-ca3-v4-uniform/652 3e93f6413b2c37d7 0 0:0:0 1:1:1 2:2:0 3:2:1 4:2:1 5:2:2 6:1:1 7:2:0 8:0:0 9:1:1 10:1:0 11:1:1 12:1:1 13:0:0 14:1:0 15:1:1 2 2 1 0 0 0:4:r4:shfl@base_1:inject 1:7:r6:or@base_6:lossy 2:17:r1:rotl@base_9:bijective 3:18:r3:or@base_15:lossy-or-chain1 4:24:r1:shfl@base_19:inject 5:25:r7:add@base_20:inject 6:27:r4:xor@base_22:inject 7:31:r3:load@base_27:inject 8:33:r5:xor@base_32:inject 9:36:r6:load@base_33:inject 10:41:r4:load@base_36:inject 11:44:r7:mad@base_34:inject 12:57:r4:load@base_44:inject 13:58:r1:sub@base_42:inject 14:59:r5:rotr@base_53:bijective 15:62:r2:load@base_57:inject +igneum-ca3-v4-uniform/653 d082ce2c0335745d 0 0:1:1 1:2:2 2:0:0 3:1:0 4:2:3 5:1:1 6:1:0 7:2:1 8:0:0 9:1:1 10:0:0 11:2:0 12:2:0 13:2:1 14:2:0 15:0:0 6 2 0 1 3 0:7:r1:mulhi@base_6:lossy 1:8:r3:load@base_7:inject 2:10:r4:mad@base_9:inject 3:13:r6:mad@base_5:inject 4:15:r7:xor@base_14:inject 5:17:r5:load@base_10:inject 6:18:r2:rotl@base_11:bijective 7:20:r3:load@base_15:inject 8:21:r0:mulhi@base_19:lossy 9:28:r0:or@base_25:lossy 10:38:r6:mad@base_37:inject 11:39:r3:load@base_38:inject 12:43:r0:mulhi@base_36:lossy 13:49:r5:mul@base_27:lossy 14:53:r2:or@base_51:lossy 15:58:r4:shfl@base_52:inject +igneum-ca3-v4-uniform/654 bbc382c72f079713 0 0:1:0 1:0:0 2:2:2 3:0:0 4:0:0 5:1:1 6:1:0 7:2:0 8:0:0 9:0:0 10:2:3 11:1:1 12:1:1 13:0:0 14:1:1 15:1:1 3 1 0 1 1 0:5:r5:add@base_3:inject 1:8:r6:rotr@base_2:bijective 2:10:r2:mulhi@base_7:lossy 3:13:r5:load@base_8:inject 4:16:r7:rotl@base_9:bijective 5:18:r3:or@base_15:lossy 6:29:r2:rotr@base_26:bijective 7:32:r0:load@base_13:inject 8:38:r5:mul@base_36:lossy 9:40:r5:mad@base_39:inject 10:41:r3:load@base_38:inject 11:42:r7:load@base_40:inject 12:46:r6:shfl@base_43:inject 13:54:r7:shfl@base_51:inject 14:59:r6:xor@base_50:inject 15:62:r1:add@base_47:inject +igneum-ca3-v4-uniform/655 60168715fdf82512 0 0:1:1 1:1:0 2:1:1 3:0:0 4:0:0 5:1:1 6:0:0 7:0:0 8:0:0 9:1:0 10:2:1 11:0:0 12:2:2 13:1:1 14:2:1 15:0:0 4 1 0 1 2 0:2:r0:xor@base_0:inject 1:8:r6:add@base_7:inject 2:10:r2:load@base_8:inject 3:12:r1:add@base_11:inject 4:13:r5:load@base_10:inject 5:21:r2:shfl@base_20:inject 6:25:r6:mul@base_22:lossy 7:32:r6:mad@base_31:inject 8:35:r7:mulhi@base_30:lossy 9:36:r3:shfl@base_28:inject 10:38:r5:mulhi@base_34:lossy 11:39:r6:add@base_33:inject 12:49:r7:load@base_39:inject 13:53:r3:or@base_48:lossy 14:55:r0:rotl@base_54:bijective 15:58:r5:xor@base_57:inject +igneum-ca3-v4-uniform/656 7683ada7d48dc63f 0 0:1:0 1:0:0 2:1:1 3:2:3 4:0:0 5:2:2 6:1:1 7:1:0 8:2:2 9:0:0 10:2:1 11:1:0 12:2:3 13:2:3 14:0:0 15:0:0 3 0 0 2 1 0:3:r6:mulhi@base_1:lossy 1:4:r3:rotr@base_2:bijective 2:6:r6:mul@base_5:lossy 3:7:r2:load@base_6:inject 4:10:r5:add@base_8:inject 5:16:r4:add@base_15:inject 6:19:r6:xor@base_18:inject 7:22:r5:xor@base_13:inject 8:30:r7:mul@base_27:lossy 9:32:r1:load@base_19:inject 10:35:r2:load@base_30:inject 11:37:r5:rotl@base_36:bijective 12:47:r3:shfl@base_26:inject 13:50:r2:rotl@base_49:bijective 14:52:r0:rotl@base_51:bijective 15:53:r1:load@base_52:inject +igneum-ca3-v4-uniform/657 607f6c9c8ed9f7f0 0 0:1:0 1:1:0 2:0:0 3:1:0 4:2:0 5:1:1 6:2:1 7:0:0 8:0:0 9:2:2 10:1:0 11:1:1 12:2:0 13:1:0 14:1:1 15:2:1 3 1 0 1 1 0:1:r7:mulhi@base_0:lossy 1:2:r0:load@base_1:inject 2:5:r4:rotl@base_3:bijective 3:6:r7:load@base_5:inject 4:14:r0:or@base_13:lossy 5:22:r2:add@base_17:inject 6:24:r1:load@base_22:inject 7:26:r5:load@base_2:inject 8:28:r2:load@base_26:inject 9:38:r7:shfl@base_31:inject 10:47:r0:load@base_28:inject 11:48:r6:add@base_33:inject 12:51:r2:rotr@base_50:bijective 13:55:r3:mul@base_30:lossy 14:59:r5:mad@base_57:inject 15:62:r4:shfl@base_54:inject +igneum-ca3-v4-uniform/658 58945c52efba6bc7 0 0:1:0 1:0:0 2:1:0 3:2:0 4:2:0 5:0:0 6:1:0 7:2:3 8:1:0 9:0:0 10:1:1 11:2:1 12:1:0 13:0:0 14:1:1 15:0:0 2 0 0 0 2 0:4:r4:sub@base_2:inject 1:6:r1:load@base_4:inject 2:7:r7:add@base_3:inject 3:8:r5:load@base_7:inject 4:10:r6:load@base_8:inject 5:16:r5:mad@base_11:inject 6:17:r0:load@base_16:inject 7:18:r6:rotr@base_12:bijective 8:22:r3:rotl@base_19:bijective 9:30:r3:mulhi@base_24:lossy 10:31:r2:load@base_18:inject 11:37:r5:mad@base_26:inject 12:43:r6:sub@base_38:inject 13:46:r2:xor@base_42:inject 14:48:r7:add@base_34:inject 15:59:r7:mulhi@base_55:lossy +igneum-ca3-v4-uniform/659 9503d6c00202f540 0 0:2:1 1:0:0 2:1:0 3:0:0 4:0:0 5:0:0 6:2:3 7:0:0 8:0:0 9:2:2 10:2:0 11:2:1 12:1:0 13:2:2 14:2:0 15:0:0 4 2 0 1 1 0:1:r3:xor@base_0:inject 1:2:r2:load@base_1:inject 2:4:r0:or@base_3:lossy 3:6:r0:shfl@base_5:inject 4:22:r1:shfl@base_15:inject 5:33:r2:or@base_25:lossy 6:34:r4:mul@base_20:lossy 7:39:r0:rotr@base_35:bijective 8:46:r7:load@base_39:inject 9:48:r3:shfl@base_29:inject 10:51:r5:rotl@base_44:bijective 11:55:r6:load@base_48:inject 12:59:r4:mulhi@base_56:lossy 13:60:r0:xor@base_49:inject 14:61:r1:load@base_59:inject 15:62:r6:mad@base_57:inject +igneum-ca3-v4-uniform/660 31ef4616c326eff8 0 0:2:0 1:0:0 2:2:1 3:1:1 4:0:0 5:2:2 6:0:0 7:2:1 8:1:0 9:1:1 10:2:1 11:1:1 12:2:3 13:2:3 14:1:1 15:2:0 4 1 1 1 2 0:1:r6:rotl@base_0:bijective 1:2:r7:load@base_1:inject 2:4:r2:load@base_2:inject 3:8:r1:mad@base_3:inject 4:20:r0:mad@base_17:inject 5:22:r7:load@base_20:inject 6:28:r3:or@base_26:lossy-or-chain1 7:30:r7:shfl@base_25:inject 8:32:r6:add@base_31:inject 9:36:r5:mulhi@base_16:lossy 10:39:r0:mulhi@base_34:lossy 11:43:r1:add@base_42:inject 12:45:r3:add@base_44:inject 13:49:r3:xor@base_47:inject 14:52:r4:mul@base_50:lossy 15:59:r7:load@base_49:inject +igneum-ca3-v4-uniform/661 50fa2dfea93c881b 0 0:1:1 1:0:0 2:2:3 3:2:2 4:1:0 5:2:3 6:1:0 7:0:0 8:1:1 9:1:1 10:0:0 11:2:0 12:2:2 13:2:1 14:2:0 15:0:0 2 2 0 0 0 0:1:r3:rotl@base_0:bijective 1:15:r4:add@base_14:inject 2:18:r6:add@base_9:inject 3:19:r3:or@base_16:lossy 4:20:r1:load@base_18:inject 5:24:r3:load@base_20:inject 6:30:r5:add@base_22:inject 7:37:r7:or@base_35:lossy 8:40:r4:rotl@base_27:bijective 9:47:r2:rotl@base_36:bijective 10:49:r3:sub@base_46:inject 11:52:r6:xor@base_50:inject 12:55:r7:load@base_47:inject 13:59:r3:rotr@base_54:bijective 14:61:r2:load@base_59:inject 15:62:r4:load@base_52:inject +igneum-ca3-v4-uniform/662 f0d95074b6ff0603 0 0:0:0 1:1:1 2:2:3 3:2:2 4:2:1 5:1:0 6:1:0 7:0:0 8:1:1 9:1:1 10:2:0 11:1:1 12:1:1 13:1:1 14:0:0 15:2:0 2 0 0 1 1 0:1:r0:add@base_0:inject 1:7:r1:mulhi@base_6:lossy 2:15:r3:add@base_11:inject 3:17:r5:shfl@base_10:inject 4:18:r1:load@base_17:inject 5:19:r7:add@base_14:inject 6:29:r5:mad@base_28:inject 7:34:r3:rotr@base_30:bijective 8:35:r6:load@base_18:inject 9:39:r2:mad@base_38:inject 10:41:r7:load@base_39:inject 11:43:r5:shfl@base_42:inject 12:44:r4:mul@base_36:lossy 13:47:r5:load@base_44:inject 14:56:r2:xor@base_46:inject 15:58:r5:add@base_57:inject +igneum-ca3-v4-uniform/663 5b88a1dff6744bbf 0 0:1:1 1:2:1 2:0:0 3:2:3 4:2:3 5:2:0 6:2:1 7:2:3 8:0:0 9:0:0 10:0:0 11:1:1 12:0:0 13:1:1 14:1:0 15:0:0 2 0 0 1 1 0:3:r7:add@base_2:inject 1:5:r4:add@base_1:inject 2:8:r7:load@base_5:inject 3:20:r5:add@base_15:inject 4:25:r7:rotl@base_10:bijective 5:28:r5:load@base_25:inject 6:31:r1:xor@base_30:inject 7:35:r2:mad@base_33:inject 8:40:r5:load@base_31:inject 9:47:r6:add@base_39:inject 10:55:r0:sub@base_42:inject 11:56:r3:sub@base_37:inject 12:57:r5:mul@base_54:lossy 13:59:r2:shfl@base_50:inject 14:60:r1:load@base_59:inject 15:61:r4:mulhi@base_52:lossy +igneum-ca3-v4-uniform/664 aa85e1d5457f316e 0 0:0:0 1:0:0 2:2:3 3:2:3 4:2:1 5:0:0 6:1:1 7:2:0 8:1:0 9:0:0 10:0:0 11:1:1 12:2:0 13:0:0 14:2:3 15:2:3 4 2 1 2 0 0:3:r6:or@base_0:lossy 1:10:r5:mul@base_9:lossy 2:12:r4:rotl@base_11:bijective 3:13:r2:mad@base_6:inject 4:16:r0:load@base_10:inject 5:21:r7:load@base_12:inject 6:22:r6:or@base_8:lossy-or-chain1 7:29:r5:mad@base_20:inject 8:30:r2:sub@base_28:inject 9:31:r4:xor@base_17:inject 10:35:r0:mad@base_34:inject 11:37:r3:load@base_21:inject 12:48:r7:add@base_46:inject 13:49:r4:mad@base_40:inject 14:59:r5:sub@base_42:inject 15:61:r7:mul@base_53:lossy +igneum-ca3-v4-uniform/665 0fc34312aa3283d7 0 0:2:1 1:2:2 2:0:0 3:1:1 4:0:0 5:1:0 6:1:0 7:2:0 8:1:0 9:0:0 10:0:0 11:0:0 12:2:3 13:1:1 14:2:2 15:2:3 1 0 0 0 1 0:2:r7:rotr@base_1:bijective 1:3:r1:load@base_2:inject 2:6:r1:xor@base_5:inject 3:9:r0:mulhi@base_8:lossy 4:12:r5:load@base_6:inject 5:21:r4:mad@base_16:inject 6:22:r2:add@base_17:inject 7:24:r3:mad@base_15:inject 8:26:r6:load@base_22:inject 9:33:r1:load@base_24:inject 10:37:r0:sub@base_31:inject 11:42:r4:load@base_33:inject 12:44:r5:add@base_32:inject 13:47:r1:rotl@base_46:bijective 14:49:r7:shfl@base_39:inject 15:59:r6:shfl@base_55:inject +igneum-ca3-v4-uniform/666 cf0e7a27db3c134f 0 0:0:0 1:0:0 2:2:1 3:1:1 4:2:3 5:0:0 6:0:0 7:1:0 8:0:0 9:0:0 10:0:0 11:1:0 12:0:0 13:1:1 14:2:1 15:2:3 2 0 0 0 2 0:2:r0:add@base_0:inject 1:4:r5:load@base_2:inject 2:5:r1:load@base_4:inject 3:6:r7:load@base_5:inject 4:19:r6:mulhi@base_7:lossy 5:21:r0:load@base_19:inject 6:22:r2:mulhi@base_17:lossy 7:23:r6:shfl@base_20:inject 8:36:r7:xor@base_34:inject 9:39:r4:load@base_23:inject 10:42:r3:add@base_32:inject 11:45:r0:xor@base_41:inject 12:46:r1:load@base_39:inject 13:50:r0:sub@base_48:inject 14:51:r5:shfl@base_31:inject 15:52:r7:load@base_51:inject +igneum-ca3-v4-uniform/667 1b9d5d4f01890aca 1 0:0:0 1:2:1 2:2:2 3:0:0 4:1:0 5:0:0 6:2:0 7:0:0 8:0:0 9:2:3 10:1:0 11:1:1 12:0:0 13:0:0 14:1:1 15:2:2 5 2 0 1 2 0:2:r4:or@base_1:lossy 1:4:r6:or@base_0:lossy 2:11:r3:load@base_4:inject 3:12:r6:mul@base_9:lossy 4:16:r2:add@base_15:inject 5:18:r0:load@base_11:inject 6:19:r6:mulhi@base_14:lossy 7:27:r1:xor@base_25:inject 8:30:r5:load@base_18:inject 9:31:r2:load@base_27:inject 10:34:r5:xor@base_33:inject 11:35:r3:mulhi@base_29:lossy 12:38:r4:shfl@base_32:inject 13:39:r7:load@base_16:inject 14:43:r5:sub@base_40:inject 15:52:r2:xor@base_47:inject +igneum-ca3-v4-uniform/668 f921c908829a5d40 0 0:2:0 1:0:0 2:1:0 3:1:1 4:2:1 5:2:3 6:0:0 7:0:0 8:1:0 9:2:1 10:2:3 11:0:0 12:0:0 13:2:1 14:2:2 15:0:0 5 1 0 4 0 0:3:r3:mul@base_2:lossy 1:5:r4:rotr@base_4:bijective 2:7:r3:sub@base_6:inject 3:13:r7:add@base_9:inject 4:15:r6:mul@base_12:lossy 5:17:r5:load@base_15:inject 6:19:r1:load@base_17:inject 7:20:r6:or@base_18:lossy 8:24:r2:add@base_23:inject 9:28:r3:xor@base_26:inject 10:36:r2:mul@base_31:lossy 11:45:r5:load@base_36:inject 12:49:r4:add@base_47:inject 13:52:r3:load@base_45:inject 14:54:r4:mul@base_51:lossy 15:57:r2:load@base_54:inject +igneum-ca3-v4-uniform/669 78ac6eb678fdd9fa 0 0:2:2 1:2:2 2:1:0 3:0:0 4:0:0 5:1:0 6:0:0 7:2:0 8:1:1 9:0:0 10:0:0 11:1:1 12:2:2 13:1:0 14:1:0 15:0:0 3 1 0 0 2 0:5:r4:rotr@base_4:bijective 1:7:r3:or@base_6:lossy 2:9:r1:load@base_7:inject 3:12:r7:load@base_5:inject 4:19:r6:xor@base_13:inject 5:20:r4:shfl@base_15:inject 6:25:r2:mulhi@base_22:lossy 7:28:r0:rotl@base_26:bijective 8:31:r5:load@base_20:inject 9:33:r6:load@base_31:inject 10:44:r3:load@base_28:inject 11:46:r1:mulhi@base_36:lossy 12:54:r4:xor@base_52:inject 13:55:r6:load@base_54:inject 14:59:r7:shfl@base_50:inject 15:60:r0:mad@base_37:inject +igneum-ca3-v4-uniform/670 3674631cd6c602bf 0 0:2:2 1:2:3 2:2:0 3:0:0 4:0:0 5:2:2 6:1:0 7:0:0 8:0:0 9:0:0 10:2:1 11:0:0 12:0:0 13:0:0 14:0:0 15:0:0 4 0 0 1 3 0:4:r1:rotr@base_1:bijective 1:7:r5:xor@base_0:inject 2:11:r0:mulhi@base_8:lossy 3:12:r1:mad@base_10:inject 4:14:r5:mad@base_13:inject 5:15:r2:load@base_4:inject 6:17:r4:sub@base_9:inject 7:20:r1:load@base_15:inject 8:25:r6:add@base_22:inject 9:28:r1:mulhi@base_23:lossy 10:31:r2:shfl@base_24:inject 11:32:r5:load@base_28:inject 12:47:r3:mul@base_43:lossy 13:52:r2:mulhi@base_41:lossy 14:54:r1:sub@base_48:inject 15:61:r0:rotr@base_46:bijective +igneum-ca3-v4-uniform/671 a38a3920e4320ae3 0 0:2:2 1:0:0 2:2:2 3:2:2 4:2:3 5:2:1 6:0:0 7:2:3 8:2:1 9:1:0 10:1:1 11:0:0 12:0:0 13:0:0 14:2:2 15:2:1 5 1 0 3 1 0:3:r1:or@base_2:lossy 1:6:r7:rotr@base_1:bijective 2:10:r0:load@base_6:inject 3:13:r6:shfl@base_8:inject 4:23:r3:load@base_10:inject 5:26:r0:mad@base_24:inject 6:27:r7:sub@base_25:inject 7:29:r2:load@base_23:inject 8:30:r4:load@base_29:inject 9:42:r4:mul@base_38:lossy 10:44:r7:mul@base_28:lossy 11:49:r2:sub@base_47:inject 12:51:r6:mulhi@base_48:lossy 13:57:r0:mad@base_54:inject 14:59:r4:load@base_49:inject 15:61:r5:mul@base_52:lossy +igneum-ca3-v4-uniform/672 5ecb52dc5a707e2f 0 0:1:0 1:1:1 2:2:3 3:1:1 4:2:1 5:1:0 6:1:1 7:0:0 8:0:0 9:1:0 10:0:0 11:1:1 12:0:0 13:0:0 14:0:0 15:0:0 3 1 0 1 1 0:1:r7:shfl@base_0:inject 1:8:r4:load@base_1:inject 2:13:r7:or@base_7:lossy 3:14:r6:add@base_11:inject 4:21:r4:load@base_13:inject 5:24:r5:shfl@base_23:inject 6:26:r4:mul@base_22:lossy 7:30:r7:mulhi@base_29:lossy 8:33:r5:sub@base_27:inject 9:35:r6:add@base_31:inject 10:42:r1:load@base_30:inject 11:48:r0:shfl@base_40:inject 12:51:r4:sub@base_47:inject 13:54:r2:shfl@base_49:inject 14:56:r3:add@base_52:inject 15:57:r5:rotr@base_55:bijective +igneum-ca3-v4-uniform/673 dd77eecf49ee48c1 0 0:1:0 1:0:0 2:2:0 3:0:0 4:2:2 5:2:1 6:1:1 7:1:1 8:1:1 9:1:1 10:2:1 11:2:2 12:0:0 13:0:0 14:1:0 15:2:3 5 1 0 1 3 0:9:r6:shfl@base_1:inject 1:10:r4:rotr@base_8:bijective 2:15:r3:xor@base_14:inject 3:17:r2:xor@base_12:inject 4:18:r7:xor@base_16:inject 5:19:r1:mulhi@base_2:lossy 6:21:r3:mulhi@base_20:lossy 7:22:r0:load@base_19:inject 8:25:r5:load@base_17:inject 9:31:r3:mad@base_26:inject 10:43:r3:add@base_42:inject 11:44:r5:add@base_27:inject 12:45:r0:mul@base_40:lossy 13:46:r6:mulhi@base_36:lossy 14:57:r0:sub@base_56:inject 15:58:r5:or@base_50:lossy +igneum-ca3-v4-uniform/674 5693be27ad204471 0 0:2:3 1:1:0 2:2:2 3:0:0 4:2:0 5:1:0 6:1:0 7:2:1 8:2:2 9:0:0 10:0:0 11:1:1 12:0:0 13:2:0 14:0:0 15:2:1 3 1 0 1 1 0:1:r7:mul@base_0:lossy 1:11:r6:add@base_10:inject 2:12:r1:mad@base_4:inject 3:16:r2:add@base_13:inject 4:17:r0:load@base_11:inject 5:18:r6:load@base_16:inject 6:22:r5:rotl@base_14:bijective 7:25:r2:or@base_24:lossy 8:31:r4:mulhi@base_26:lossy 9:32:r5:load@base_31:inject 10:34:r0:shfl@base_28:inject 11:36:r0:sub@base_35:inject 12:41:r4:rotr@base_39:bijective 13:54:r7:load@base_22:inject 14:58:r0:rotr@base_53:bijective 15:62:r1:add@base_59:inject +igneum-ca3-v4-uniform/675 c7ebe5490931c283 0 0:2:3 1:0:0 2:0:0 3:0:0 4:1:1 5:1:1 6:1:1 7:1:0 8:1:1 9:0:0 10:2:1 11:0:0 12:0:0 13:1:0 14:0:0 15:2:2 2 0 0 2 0 0:2:r7:rotr@base_1:bijective 1:8:r4:rotr@base_5:bijective 2:10:r2:load@base_8:inject 3:11:r6:load@base_2:inject 4:23:r5:mad@base_22:inject 5:25:r1:load@base_11:inject 6:27:r6:mad@base_12:inject 7:32:r1:rotl@base_30:bijective 8:36:r1:mul@base_35:lossy 9:39:r3:load@base_36:inject 10:41:r4:mul@base_31:lossy 11:44:r5:add@base_43:inject 12:47:r0:mad@base_33:inject 13:48:r4:add@base_45:inject 14:50:r2:load@base_47:inject 15:60:r5:sub@base_54:inject +igneum-ca3-v4-uniform/676 994a9d1c780e30ae 0 0:2:2 1:2:1 2:0:0 3:1:0 4:2:2 5:1:1 6:1:0 7:2:1 8:1:1 9:1:1 10:1:0 11:2:2 12:2:0 13:1:0 14:2:2 15:2:1 4 1 0 1 2 0:8:r7:rotl@base_0:bijective 1:9:r5:mulhi@base_7:lossy 2:12:r6:rotl@base_6:bijective 3:22:r4:load@base_12:inject 4:23:r0:mad@base_20:inject 5:24:r2:mad@base_14:inject 6:26:r7:add@base_21:inject 7:29:r3:load@base_23:inject 8:39:r4:mul@base_34:lossy 9:41:r6:add@base_38:inject 10:42:r0:or@base_36:lossy 11:46:r6:rotl@base_43:bijective 12:48:r3:sub@base_47:inject 13:49:r5:load@base_46:inject 14:51:r7:rotr@base_44:bijective 15:63:r5:mulhi@base_60:lossy +igneum-ca3-v4-uniform/677 9c6018c1b2658dad 0 0:2:1 1:1:0 2:0:0 3:2:3 4:0:0 5:2:1 6:2:2 7:0:0 8:2:2 9:0:0 10:1:0 11:0:0 12:2:0 13:2:1 14:0:0 15:1:0 1 0 0 1 0 0:1:r0:xor@base_0:inject 1:3:r7:shfl@base_2:inject 2:6:r0:sub@base_4:inject 3:7:r2:load@base_6:inject 4:11:r7:add@base_8:inject 5:14:r4:load@base_11:inject 6:19:r0:mul@base_17:lossy 7:31:r2:shfl@base_18:inject 8:32:r0:sub@base_22:inject 9:36:r1:load@base_32:inject 10:45:r2:shfl@base_37:inject 11:46:r0:load@base_36:inject 12:47:r5:sub@base_43:inject 13:49:r3:rotl@base_42:bijective 14:51:r6:load@base_47:inject 15:53:r0:load@base_49:inject +igneum-ca3-v4-uniform/678 27b489ec0466a92d 0 0:2:1 1:2:1 2:0:0 3:1:1 4:0:0 5:0:0 6:0:0 7:0:0 8:0:0 9:2:0 10:1:0 11:1:1 12:0:0 13:1:1 14:2:2 15:0:0 3 3 1 0 0 0:2:r7:add@base_0:inject 1:3:r6:load@base_2:inject 2:4:r5:load@base_3:inject 3:5:r1:load@base_4:inject 4:8:r5:shfl@base_6:inject 5:26:r0:or@base_16:lossy 6:29:r7:shfl@base_23:inject 7:30:r1:add@base_27:inject 8:35:r6:or@base_24:lossy-or-chain1 9:37:r4:load@base_30:inject 10:38:r7:load@base_35:inject 11:51:r5:mad@base_46:inject 12:55:r6:or@base_49:lossy 13:58:r3:load@base_38:inject 14:59:r5:shfl@base_56:inject 15:60:r4:sub@base_48:inject +igneum-ca3-v4-uniform/679 a4f121a7228a910b 0 0:0:0 1:0:0 2:0:0 3:0:0 4:1:1 5:1:0 6:1:1 7:2:1 8:2:0 9:1:0 10:0:0 11:0:0 12:0:0 13:1:0 14:2:0 15:2:2 1 0 0 0 1 0:3:r4:xor@base_0:inject 1:4:r5:mad@base_2:inject 2:5:r7:load@base_4:inject 3:7:r6:load@base_3:inject 4:15:r0:shfl@base_9:inject 5:17:r1:load@base_15:inject 6:25:r7:add@base_18:inject 7:31:r4:load@base_25:inject 8:32:r7:mulhi@base_29:lossy 9:42:r0:load@base_17:inject 10:47:r5:shfl@base_41:inject 11:48:r1:shfl@base_38:inject 12:52:r4:mad@base_49:inject 13:56:r0:rotl@base_55:bijective 14:61:r3:add@base_54:inject 15:63:r5:mad@base_59:inject +igneum-ca3-v4-uniform/680 544c0a69b2026df6 0 0:1:0 1:1:1 2:0:0 3:2:1 4:2:3 5:1:1 6:1:1 7:2:0 8:1:0 9:0:0 10:2:3 11:0:0 12:1:0 13:2:2 14:2:1 15:2:1 3 0 0 2 1 0:1:r2:xor@base_0:inject 1:6:r1:sub@base_4:inject 2:9:r3:load@base_6:inject 3:12:r2:add@base_5:inject 4:16:r5:mulhi@base_11:lossy 5:17:r6:mul@base_14:lossy 6:23:r2:mad@base_20:inject 7:25:r6:load@base_23:inject 8:26:r4:load@base_16:inject 9:43:r6:sub@base_40:inject 10:46:r1:xor@base_42:inject 11:47:r4:load@base_46:inject 12:49:r2:sub@base_45:inject 13:52:r4:mul@base_48:lossy 14:59:r0:xor@base_36:inject 15:60:r3:add@base_57:inject +igneum-ca3-v4-uniform/681 44e695042a3087aa 0 0:1:1 1:1:1 2:2:1 3:0:0 4:0:0 5:0:0 6:1:0 7:1:0 8:0:0 9:1:1 10:1:0 11:2:2 12:2:3 13:1:0 14:1:0 15:0:0 2 1 0 1 0 0:2:r5:rotl@base_1:bijective 1:5:r6:mad@base_0:inject 2:13:r0:shfl@base_10:inject 3:15:r6:or@base_8:lossy 4:20:r3:load@base_13:inject 5:26:r7:mad@base_22:inject 6:28:r6:sub@base_25:inject 7:37:r6:mad@base_31:inject 8:39:r7:mad@base_36:inject 9:40:r5:load@base_28:inject 10:45:r4:add@base_42:inject 11:50:r2:rotl@base_48:bijective 12:53:r0:mul@base_52:lossy 13:57:r6:xor@base_54:inject 14:58:r5:mad@base_44:inject 15:59:r1:load@base_50:inject +igneum-ca3-v4-uniform/682 99a4830adf269c45 0 0:1:0 1:2:3 2:1:0 3:1:0 4:2:2 5:2:1 6:1:0 7:0:0 8:2:2 9:2:3 10:2:2 11:1:0 12:1:1 13:2:0 14:1:0 15:1:1 5 1 0 2 2 0:1:r1:add@base_0:inject 1:3:r2:mad@base_2:inject 2:12:r1:load@base_3:inject 3:16:r4:mulhi@base_14:lossy 4:21:r7:load@base_12:inject 5:26:r1:load@base_21:inject 6:27:r4:mulhi@base_25:lossy 7:30:r7:rotl@base_29:bijective 8:31:r0:xor@base_28:inject 9:37:r6:mul@base_24:lossy 10:38:r2:shfl@base_33:inject 11:44:r7:mul@base_39:lossy 12:52:r0:mad@base_48:inject 13:55:r2:add@base_45:inject 14:57:r5:or@base_41:lossy 15:59:r3:add@base_58:inject +igneum-ca3-v4-uniform/683 bc62fb6023efd290 0 0:1:0 1:1:0 2:1:1 3:2:1 4:0:0 5:0:0 6:0:0 7:2:0 8:2:0 9:2:0 10:1:1 11:2:0 12:1:1 13:2:2 14:1:1 15:1:1 3 0 0 2 1 0:6:r4:xor@base_4:inject 1:12:r1:add@base_7:inject 2:25:r3:xor@base_24:inject 3:29:r1:xor@base_19:inject 4:30:r6:xor@base_28:inject 5:35:r2:mul@base_34:lossy 6:38:r5:rotl@base_33:bijective 7:41:r6:xor@base_40:inject 8:42:r3:load@base_35:inject 9:43:r0:mul@base_16:lossy 10:46:r3:mulhi@base_44:lossy 11:48:r1:load@base_43:inject 12:50:r5:load@base_48:inject 13:51:r7:load@base_42:inject 14:55:r5:add@base_54:inject 15:62:r1:rotl@base_56:bijective +igneum-ca3-v4-uniform/684 9c8d18d5cd432d5e 0 0:2:0 1:1:1 2:0:0 3:0:0 4:2:2 5:1:1 6:0:0 7:1:1 8:1:1 9:1:1 10:0:0 11:2:2 12:2:0 13:0:0 14:0:0 15:2:1 3 1 0 1 1 0:4:r3:xor@base_3:inject 1:9:r3:shfl@base_7:inject 2:10:r5:mul@base_5:lossy 3:11:r4:rotr@base_1:bijective 4:13:r1:load@base_10:inject 5:17:r6:add@base_16:inject 6:25:r0:rotl@base_15:bijective 7:28:r3:load@base_25:inject 8:31:r2:add@base_27:inject 9:33:r7:xor@base_12:inject 10:34:r6:load@base_33:inject 11:41:r4:load@base_34:inject 12:43:r0:mulhi@base_42:lossy 13:55:r1:add@base_52:inject 14:57:r7:or@base_46:lossy 15:61:r5:add@base_50:inject +igneum-ca3-v4-uniform/685 d874689b75990c0f 0 0:0:0 1:1:0 2:0:0 3:0:0 4:0:0 5:0:0 6:1:0 7:2:0 8:0:0 9:1:0 10:2:0 11:1:1 12:2:3 13:1:1 14:0:0 15:2:0 4 1 0 1 2 0:1:r5:mulhi@shadow_254:lossy 1:3:r4:load@base_1:inject 2:7:r0:shfl@base_6:inject 3:17:r4:sub@base_11:inject 4:18:r7:xor@base_9:inject 5:19:r3:mulhi@base_15:lossy 6:25:r5:load@base_19:inject 7:32:r6:xor@base_27:inject 8:39:r7:add@base_38:inject 9:44:r1:load@base_32:inject 10:47:r0:or@base_46:lossy 11:52:r4:xor@base_49:inject 12:53:r5:load@base_52:inject 13:61:r2:mad@base_60:inject 14:62:r1:mul@base_59:lossy 15:63:r7:load@base_61:inject +igneum-ca3-v4-uniform/686 c209ddb8de36b497 0 0:0:0 1:1:1 2:0:0 3:2:0 4:1:1 5:2:1 6:2:1 7:1:0 8:0:0 9:1:0 10:0:0 11:2:0 12:2:2 13:0:0 14:2:2 15:2:1 2 0 0 0 2 0:1:r5:xor@base_0:inject 1:5:r6:rotr@base_2:bijective 2:10:r0:shfl@base_8:inject 3:17:r4:rotl@base_16:bijective 4:21:r2:mulhi@base_19:lossy 5:27:r1:rotl@base_25:bijective 6:29:r7:mad@base_15:inject 7:31:r3:rotr@base_23:bijective 8:34:r4:sub@base_33:inject 9:41:r1:sub@base_30:inject 10:47:r4:mulhi@base_45:lossy 11:48:r1:shfl@base_44:inject 12:55:r4:rotr@base_54:bijective 13:58:r0:load@base_55:inject 14:62:r0:add@base_60:inject 15:63:r6:load@base_62:inject +igneum-ca3-v4-uniform/687 37cc243d4950bda9 1 0:2:3 1:1:0 2:1:0 3:2:1 4:2:0 5:1:0 6:1:1 7:0:0 8:0:0 9:2:2 10:0:0 11:0:0 12:1:0 13:2:3 14:0:0 15:1:1 4 0 0 1 3 0:2:r1:sub@base_1:inject 1:8:r3:mulhi@base_7:lossy 2:10:r7:shfl@base_9:inject 3:13:r4:sub@base_11:inject 4:14:r3:load@base_13:inject 5:26:r5:load@base_14:inject 6:28:r7:add@base_25:inject 7:29:r4:mulhi@base_23:lossy 8:32:r3:mulhi@base_24:lossy 9:35:r2:load@base_26:inject 10:38:r4:rotl@base_37:bijective 11:46:r3:add@base_45:inject 12:51:r3:mul@base_49:lossy 13:52:r1:xor@base_40:inject 14:54:r7:add@base_44:inject 15:57:r6:rotr@base_53:bijective +igneum-ca3-v4-uniform/688 108dbbc860b0cdb4 0 0:2:2 1:1:1 2:0:0 3:0:0 4:2:2 5:0:0 6:0:0 7:0:0 8:0:0 9:1:1 10:2:0 11:1:0 12:1:1 13:2:0 14:2:2 15:0:0 2 0 0 2 0 0:1:r7:rotr@shadow_241:bijective 1:8:r5:xor@base_3:inject 2:18:r0:xor@base_5:inject 3:20:r7:xor@base_13:inject 4:24:r5:mul@base_12:lossy 5:28:r2:load@base_20:inject 6:32:r2:shfl@base_30:inject 7:33:r1:add@base_27:inject 8:37:r3:rotl@base_29:bijective 9:41:r0:sub@base_34:inject 10:47:r5:mul@base_45:lossy 11:50:r3:rotl@base_46:bijective 12:53:r2:add@base_52:inject 13:56:r4:mad@base_51:inject 14:61:r3:xor@base_60:inject 15:63:r1:load@base_61:inject +igneum-ca3-v4-uniform/689 a3d0afdebc62947f 0 0:2:3 1:1:0 2:2:3 3:2:1 4:1:0 5:2:3 6:0:0 7:0:0 8:0:0 9:1:0 10:2:2 11:0:0 12:1:1 13:1:1 14:0:0 15:0:0 1 0 0 1 0 0:3:r7:add@base_0:inject 1:4:r4:add@base_1:inject 2:5:r1:load@base_3:inject 3:6:r4:load@base_5:inject 4:9:r1:load@base_6:inject 5:16:r0:xor@base_14:inject 6:17:r1:load@base_16:inject 7:20:r7:add@base_18:inject 8:26:r0:load@base_17:inject 9:28:r3:rotl@base_24:bijective 10:34:r7:add@base_32:inject 11:42:r4:add@base_37:inject 12:49:r1:mul@base_46:lossy 13:51:r3:load@base_49:inject 14:59:r1:load@base_51:inject 15:60:r4:rotr@base_52:bijective +igneum-ca3-v4-uniform/690 24598959788be794 0 0:0:0 1:2:1 2:2:2 3:2:3 4:2:0 5:2:2 6:0:0 7:1:0 8:1:1 9:0:0 10:1:1 11:0:0 12:0:0 13:1:0 14:1:0 15:2:1 1 0 0 0 1 0:3:r2:add@base_1:inject 1:4:r0:xor@base_2:inject 2:5:r2:load@base_4:inject 3:7:r5:load@base_3:inject 4:8:r3:mulhi@base_6:lossy 5:13:r1:rotr@base_11:bijective 6:15:r4:load@base_13:inject 7:21:r3:sub@base_20:inject 8:23:r7:sub@base_17:inject 9:26:r1:add@base_22:inject 10:37:r6:rotl@base_18:bijective 11:46:r7:rotr@base_44:bijective 12:54:r3:mad@base_51:inject 13:55:r7:rotr@base_50:bijective 14:61:r4:load@base_46:inject 15:62:r2:rotr@base_59:bijective +igneum-ca3-v4-uniform/691 8463355e6bcf20df 0 0:2:3 1:1:0 2:1:0 3:1:1 4:2:1 5:2:3 6:1:1 7:1:0 8:2:1 9:0:0 10:1:0 11:1:0 12:0:0 13:2:0 14:2:3 15:1:1 3 0 0 3 0 0:4:r7:xor@base_0:inject 1:7:r7:mul@base_5:lossy 2:8:r4:rotr@base_2:bijective 3:20:r5:rotl@base_18:bijective 4:22:r2:load@base_20:inject 5:26:r4:mul@base_24:lossy 6:35:r4:rotr@base_31:bijective 7:37:r2:shfl@base_34:inject 8:38:r3:add@base_23:inject 9:41:r0:shfl@base_40:inject 10:42:r2:load@base_41:inject 11:45:r1:mad@base_33:inject 12:47:r7:xor@base_36:inject 13:48:r3:add@base_46:inject 14:54:r0:sub@base_53:inject 15:59:r4:mul@base_56:lossy +igneum-ca3-v4-uniform/692 39871fb58bfae76c 0 0:2:2 1:1:1 2:0:0 3:2:2 4:0:0 5:1:1 6:1:0 7:2:2 8:1:1 9:1:0 10:2:2 11:1:0 12:0:0 13:1:0 14:0:0 15:1:0 0 0 0 0 0 0:2:r3:mad@base_0:inject 1:5:r0:add@base_4:inject 2:6:r6:load@base_2:inject 3:7:r4:load@base_6:inject 4:8:r7:load@base_7:inject 5:10:r3:load@base_8:inject 6:12:r6:load@base_10:inject 7:18:r1:mad@base_15:inject 8:19:r4:sub@base_14:inject 9:29:r6:mad@base_26:inject 10:37:r3:mad@base_30:inject 11:43:r7:sub@base_42:inject 12:55:r3:shfl@base_50:inject 13:57:r7:rotr@base_56:bijective 14:59:r6:load@base_57:inject 15:62:r4:load@base_43:inject +igneum-ca3-v4-uniform/693 a6c7b52677c7d172 0 0:2:3 1:0:0 2:0:0 3:1:0 4:2:0 5:0:0 6:0:0 7:2:1 8:0:0 9:1:0 10:0:0 11:0:0 12:0:0 13:0:0 14:1:0 15:2:1 1 0 0 1 0 0:2:r5:xor@base_0:inject 1:6:r4:mad@base_1:inject 2:8:r1:load@base_2:inject 3:11:r7:rotl@base_7:bijective 4:15:r7:add@base_14:inject 5:22:r7:mad@base_16:inject 6:29:r4:sub@base_27:inject 7:30:r0:mad@base_28:inject 8:39:r2:add@base_10:inject 9:42:r1:xor@base_36:inject 10:43:r4:load@base_39:inject 11:44:r7:mad@base_38:inject 12:45:r5:load@base_44:inject 13:50:r6:mad@base_47:inject 14:56:r0:mul@base_55:lossy 15:57:r5:xor@base_51:inject +igneum-ca3-v4-uniform/694 1e0a3e69fa958ee0 0 0:1:0 1:2:2 2:1:0 3:0:0 4:0:0 5:0:0 6:1:1 7:2:2 8:1:0 9:2:1 10:2:3 11:0:0 12:1:1 13:0:0 14:1:0 15:0:0 2 1 0 1 0 0:12:r7:shfl@base_3:inject 1:16:r0:or@base_7:lossy 2:21:r6:shfl@base_10:inject 3:24:r0:xor@base_18:inject 4:31:r7:add@base_30:inject 5:38:r5:mad@base_28:inject 6:39:r3:rotl@base_29:bijective 7:40:r1:rotl@base_34:bijective 8:41:r4:mul@base_36:lossy 9:44:r5:load@base_41:inject 10:48:r7:sub@base_45:inject 11:54:r6:load@base_44:inject 12:56:r2:add@base_53:inject 13:57:r1:mad@base_47:inject 14:60:r1:xor@base_59:inject 15:62:r0:rotr@base_46:bijective +igneum-ca3-v4-uniform/695 4759b9c4dde03e6b 0 0:2:0 1:1:1 2:0:0 3:2:3 4:0:0 5:2:3 6:2:2 7:2:3 8:1:0 9:1:0 10:2:1 11:1:1 12:0:0 13:1:0 14:2:0 15:2:1 5 3 0 1 1 0:7:r6:mulhi@base_3:lossy 1:10:r7:add@base_4:inject 2:11:r0:or@base_6:lossy 3:12:r6:load@base_11:inject 4:20:r3:xor@base_15:inject 5:23:r5:rotr@base_21:bijective 6:26:r1:load@base_12:inject 7:31:r0:mul@base_30:lossy 8:34:r2:add@base_24:inject 9:37:r1:add@base_36:inject 10:39:r2:add@base_38:inject 11:43:r5:load@base_37:inject 12:47:r7:or@base_46:lossy 13:55:r4:or@base_50:lossy 14:56:r7:rotl@base_54:bijective 15:63:r1:rotl@base_45:bijective +igneum-ca3-v4-uniform/696 085abd99e7629c97 0 0:2:2 1:2:0 2:1:0 3:1:1 4:1:0 5:2:3 6:0:0 7:0:0 8:0:0 9:0:0 10:0:0 11:2:2 12:0:0 13:2:2 14:0:0 15:1:0 2 1 1 0 1 0:3:r7:rotl@base_0:bijective 1:4:r6:or@base_2:lossy-or-chain1 2:7:r4:load@base_4:inject 3:9:r5:add@base_8:inject 4:12:r4:mad@base_11:inject 5:16:r7:sub@base_13:inject 6:19:r1:add@base_15:inject 7:21:r1:xor@base_20:inject 8:23:r0:load@base_12:inject 9:26:r1:load@base_23:inject 10:29:r4:shfl@base_27:inject 11:31:r7:load@base_29:inject 12:46:r0:mulhi@base_44:lossy 13:49:r1:rotr@base_41:bijective 14:52:r4:xor@base_45:inject 15:61:r0:shfl@base_51:inject +igneum-ca3-v4-uniform/697 1cfb0ea061d54a05 0 0:0:0 1:2:2 2:1:0 3:1:1 4:1:1 5:0:0 6:1:1 7:0:0 8:1:0 9:0:0 10:1:0 11:1:0 12:0:0 13:2:2 14:1:0 15:2:3 2 0 0 0 2 0:3:r4:mulhi@base_0:lossy 1:12:r2:add@base_10:inject 2:13:r4:xor@base_8:inject 3:20:r7:mulhi@base_17:lossy 4:23:r3:load@base_13:inject 5:27:r6:load@base_20:inject 6:30:r3:sub@base_29:inject 7:31:r2:load@base_23:inject 8:34:r6:sub@base_28:inject 9:39:r7:xor@base_37:inject 10:42:r0:sub@base_32:inject 11:44:r1:load@base_34:inject 12:47:r4:rotl@base_45:bijective 13:49:r1:load@base_47:inject 14:53:r3:mad@base_52:inject 15:58:r0:xor@base_54:inject +igneum-ca3-v4-uniform/698 1c2b7b674ffd345d 0 0:2:3 1:1:0 2:2:0 3:0:0 4:1:0 5:2:1 6:0:0 7:2:1 8:0:0 9:2:3 10:1:0 11:0:0 12:2:3 13:1:1 14:0:0 15:0:0 2 1 0 1 0 0:10:r6:rotr@base_5:bijective 1:20:r7:shfl@base_14:inject 2:22:r4:xor@base_19:inject 3:23:r5:rotl@base_13:bijective 4:27:r2:xor@base_25:inject 5:31:r3:add@base_29:inject 6:33:r5:xor@base_32:inject 7:36:r7:add@base_28:inject 8:37:r6:or@base_34:lossy 9:40:r4:load@base_37:inject 10:46:r0:mul@base_43:lossy 11:49:r5:load@base_36:inject 12:57:r0:sub@base_51:inject 13:58:r4:add@base_52:inject 14:60:r1:xor@base_59:inject 15:63:r7:load@base_58:inject +igneum-ca3-v4-uniform/699 65b4bdb5ea7b7847 0 0:1:0 1:0:0 2:2:2 3:2:3 4:0:0 5:1:0 6:1:0 7:1:1 8:1:0 9:2:3 10:0:0 11:0:0 12:0:0 13:2:0 14:1:1 15:1:1 2 1 0 1 0 0:2:r2:add@base_1:inject 1:3:r4:load@base_2:inject 2:4:r1:load@base_3:inject 3:7:r0:sub@base_6:inject 4:8:r4:load@base_7:inject 5:12:r1:xor@base_9:inject 6:19:r5:shfl@base_10:inject 7:24:r0:add@base_13:inject 8:27:r4:load@base_24:inject 9:30:r2:mul@base_21:lossy 10:34:r6:xor@base_23:inject 11:41:r1:sub@base_39:inject 12:42:r3:mad@base_38:inject 13:55:r7:shfl@base_48:inject 14:58:r3:or@base_46:lossy 15:60:r5:xor@base_45:inject +igneum-ca3-v4-uniform/700 252fc0131c683d9d 0 0:1:1 1:2:2 2:1:1 3:2:3 4:0:0 5:2:3 6:0:0 7:0:0 8:1:1 9:1:1 10:0:0 11:0:0 12:0:0 13:0:0 14:0:0 15:0:0 2 0 0 0 2 0:4:r3:shfl@base_0:inject 1:6:r7:add@base_5:inject 2:12:r1:add@base_8:inject 3:19:r6:load@base_12:inject 4:20:r1:add@base_15:inject 5:35:r3:rotl@base_31:bijective 6:36:r2:xor@base_34:inject 7:41:r7:rotl@base_27:bijective 8:47:r0:mulhi@base_22:lossy 9:48:r2:load@base_47:inject 10:49:r1:load@base_36:inject 11:50:r4:sub@base_45:inject 12:52:r5:rotr@base_18:bijective 13:58:r0:load@base_52:inject 14:61:r7:load@base_48:inject 15:62:r1:mulhi@base_55:lossy +igneum-ca3-v4-uniform/701 d7f333b4355ab605 0 0:2:1 1:0:0 2:0:0 3:2:0 4:0:0 5:2:2 6:0:0 7:0:0 8:2:3 9:2:1 10:1:1 11:2:1 12:2:1 13:2:3 14:1:1 15:1:1 3 1 0 0 2 0:4:r4:or@base_2:lossy 1:10:r7:rotr@base_7:bijective 2:15:r6:mulhi@base_9:lossy 3:21:r4:add@base_19:inject 4:22:r6:rotr@base_17:bijective 5:23:r3:load@base_21:inject 6:34:r7:sub@base_26:inject 7:35:r4:mad@base_33:inject 8:36:r2:mulhi@base_8:lossy 9:42:r6:load@base_34:inject 10:50:r7:load@base_35:inject 11:54:r0:load@base_50:inject 12:58:r2:rotl@base_56:bijective 13:59:r5:add@base_45:inject 14:60:r6:load@base_58:inject 15:62:r4:sub@base_51:inject +igneum-ca3-v4-uniform/702 4555d0835f993540 0 0:0:0 1:0:0 2:2:2 3:2:1 4:2:1 5:2:1 6:1:1 7:2:2 8:2:2 9:0:0 10:2:0 11:0:0 12:2:3 13:0:0 14:1:0 15:2:2 3 0 0 2 1 0:2:r7:shfl@base_0:inject 1:6:r4:rotl@base_4:bijective 2:8:r1:load@base_6:inject 3:11:r0:mad@base_7:inject 4:12:r4:mul@base_9:lossy 5:18:r3:mul@base_10:lossy 6:20:r5:shfl@base_19:inject 7:21:r7:load@base_12:inject 8:22:r2:load@base_11:inject 9:25:r3:load@base_22:inject 10:28:r4:load@base_21:inject 11:30:r5:load@base_28:inject 12:31:r6:mulhi@base_29:lossy 13:43:r6:add@base_36:inject 14:53:r2:rotr@base_45:bijective 15:56:r1:xor@base_52:inject +igneum-ca3-v4-uniform/703 a62aae84f37897e2 0 0:1:1 1:1:0 2:0:0 3:2:3 4:2:2 5:0:0 6:0:0 7:2:3 8:0:0 9:2:3 10:1:0 11:0:0 12:0:0 13:2:0 14:0:0 15:2:0 3 2 0 1 0 0:3:r6:mad@base_2:inject 1:14:r1:or@base_5:lossy 2:16:r3:rotl@base_11:bijective 3:22:r4:rotr@base_21:bijective 4:24:r5:xor@base_23:inject 5:26:r6:shfl@base_19:inject 6:35:r2:shfl@base_34:inject 7:37:r4:load@base_26:inject 8:41:r7:or@base_28:lossy 9:44:r6:shfl@base_36:inject 10:50:r4:mul@base_45:lossy 11:54:r2:xor@base_48:inject 12:55:r3:rotr@base_52:bijective 13:57:r7:load@base_50:inject 14:61:r5:load@base_55:inject 15:63:r4:rotl@base_62:bijective +igneum-ca3-v4-uniform/704 4af6a02c09262497 0 0:1:0 1:0:0 2:0:0 3:1:0 4:2:2 5:2:2 6:1:1 7:1:1 8:1:0 9:2:3 10:0:0 11:0:0 12:1:0 13:2:3 14:2:3 15:0:0 2 0 0 1 1 0:4:r4:xor@base_3:inject 1:5:r1:xor@base_2:inject 2:11:r7:mul@base_9:lossy 3:13:r3:load@base_11:inject 4:18:r2:load@base_13:inject 5:21:r4:load@base_18:inject 6:25:r1:rotr@base_23:bijective 7:29:r2:rotr@base_20:bijective 8:32:r5:mad@base_22:inject 9:45:r5:sub@base_42:inject 10:48:r1:add@base_47:inject 11:54:r0:load@base_48:inject 12:57:r6:shfl@base_51:inject 13:58:r7:mulhi@base_56:lossy 14:59:r0:load@base_58:inject 15:63:r7:xor@base_62:inject +igneum-ca3-v4-uniform/705 37fd43213ca32986 0 0:1:0 1:1:0 2:2:1 3:2:3 4:2:2 5:0:0 6:1:1 7:1:0 8:1:1 9:0:0 10:1:1 11:0:0 12:1:1 13:1:1 14:1:1 15:0:0 4 0 0 2 2 0:4:r3:mul@base_3:lossy 1:6:r7:rotl@base_0:bijective 2:21:r7:add@base_18:inject 3:29:r2:shfl@base_28:inject 4:30:r5:sub@base_9:inject 5:34:r6:mulhi@base_32:lossy 6:39:r3:load@base_34:inject 7:44:r1:shfl@base_40:inject 8:45:r0:xor@base_31:inject 9:48:r6:load@base_39:inject 10:49:r4:mul@base_43:lossy 11:51:r7:sub@base_35:inject 12:55:r6:mulhi@base_52:lossy 13:56:r1:load@base_49:inject 14:59:r1:mad@base_58:inject 15:62:r3:shfl@base_54:inject +igneum-ca3-v4-uniform/706 ecd2899816cecb58 0 0:2:3 1:2:2 2:0:0 3:1:0 4:2:0 5:1:0 6:0:0 7:0:0 8:1:0 9:1:1 10:2:3 11:0:0 12:2:2 13:1:0 14:0:0 15:1:0 4 0 0 2 2 0:7:r6:mul@base_4:lossy 1:11:r7:mulhi@base_3:lossy 2:18:r1:add@base_14:inject 3:25:r2:rotl@base_8:bijective 4:28:r5:rotr@base_26:bijective 5:29:r1:load@base_25:inject 6:33:r6:add@base_23:inject 7:34:r1:rotr@base_31:bijective 8:38:r3:sub@base_35:inject 9:45:r7:mulhi@base_44:lossy 10:46:r2:load@base_45:inject 11:49:r1:shfl@base_47:inject 12:51:r3:load@base_49:inject 13:52:r4:mul@base_15:lossy 14:59:r6:add@base_54:inject 15:62:r0:load@base_52:inject +igneum-ca3-v4-uniform/707 a4585ce6b08f687f 0 0:2:0 1:1:1 2:2:3 3:0:0 4:1:1 5:1:1 6:0:0 7:2:1 8:0:0 9:2:3 10:2:3 11:0:0 12:2:1 13:0:0 14:0:0 15:2:1 4 0 0 1 3 0:3:r5:add@base_2:inject 1:5:r3:mad@base_4:inject 2:7:r7:shfl@base_6:inject 3:8:r0:load@base_7:inject 4:12:r6:add@base_9:inject 5:20:r5:mulhi@base_16:lossy 6:21:r1:shfl@base_13:inject 7:30:r1:add@base_28:inject 8:34:r0:add@base_31:inject 9:38:r4:mulhi@base_33:lossy 10:39:r6:xor@base_36:inject 11:44:r3:mad@base_43:inject 12:46:r2:mulhi@base_42:lossy 13:57:r7:add@base_49:inject 14:61:r1:mul@base_55:lossy 15:63:r5:xor@base_62:inject +igneum-ca3-v4-uniform/708 61ea1158f0535f74 0 0:0:0 1:2:1 2:1:1 3:0:0 4:2:2 5:2:2 6:0:0 7:2:1 8:0:0 9:1:1 10:0:0 11:0:0 12:1:0 13:0:0 14:1:0 15:2:3 3 1 0 2 0 0:5:r7:xor@base_3:inject 1:13:r3:rotl@base_10:bijective 2:15:r1:mul@base_4:lossy 3:16:r2:load@base_15:inject 4:23:r2:xor@base_21:inject 5:25:r5:load@base_23:inject 6:29:r6:sub@base_22:inject 7:33:r1:sub@base_30:inject 8:34:r5:mad@base_32:inject 9:41:r3:mad@base_40:inject 10:43:r6:or@base_39:lossy 11:46:r7:rotl@base_44:bijective 12:51:r0:mul@base_42:lossy 13:58:r4:shfl@base_47:inject 14:60:r7:rotl@base_56:bijective 15:62:r5:xor@base_53:inject +igneum-ca3-v4-uniform/709 ddc28dff2b1e3851 0 0:1:0 1:1:0 2:2:3 3:1:0 4:1:0 5:2:3 6:2:3 7:1:0 8:2:3 9:0:0 10:0:0 11:0:0 12:1:0 13:2:2 14:0:0 15:2:2 3 1 0 1 1 0:4:r1:mul@base_1:lossy 1:9:r0:mulhi@base_6:lossy 2:16:r1:shfl@base_12:inject 3:17:r0:load@base_16:inject 4:18:r3:or@base_13:lossy 5:19:r4:load@base_18:inject 6:23:r6:rotl@base_14:bijective 7:24:r5:add@base_21:inject 8:28:r2:load@base_23:inject 9:31:r6:rotl@base_25:bijective 10:40:r7:sub@base_10:inject 11:42:r2:add@base_34:inject 12:47:r5:xor@base_45:inject 13:50:r1:xor@base_41:inject 14:59:r5:sub@base_52:inject 15:62:r3:rotl@base_61:bijective +igneum-ca3-v4-uniform/710 0adeee64d6f6557a 0 0:2:3 1:1:1 2:0:0 3:0:0 4:1:1 5:0:0 6:2:0 7:2:2 8:2:2 9:0:0 10:2:0 11:2:2 12:0:0 13:2:1 14:0:0 15:2:3 6 2 0 4 0 0:12:r5:mul@base_5:lossy 1:18:r3:mul@base_9:lossy 2:24:r7:or@base_22:lossy 3:27:r4:mul@base_23:lossy 4:28:r0:load@base_24:inject 5:29:r2:mad@base_26:inject 6:31:r7:load@base_28:inject 7:34:r5:shfl@base_15:inject 8:35:r3:load@base_34:inject 9:41:r4:mul@base_32:lossy 10:43:r6:load@base_41:inject 11:44:r1:shfl@base_40:inject 12:45:r5:sub@base_37:inject 13:46:r0:rotl@base_42:bijective 14:48:r7:or@base_47:lossy 15:54:r2:load@base_44:inject +igneum-ca3-v4-uniform/711 bd756a7b3aa873ea 0 0:2:0 1:0:0 2:0:0 3:1:1 4:2:1 5:1:1 6:0:0 7:1:0 8:1:1 9:2:0 10:0:0 11:0:0 12:2:1 13:1:0 14:1:0 15:0:0 2 1 0 0 1 0:1:r1:sub@base_0:inject 1:12:r7:sub@base_6:inject 2:13:r1:add@base_7:inject 3:16:r3:mad@base_9:inject 4:26:r4:rotl@base_24:bijective 5:28:r2:rotl@base_20:bijective 6:30:r7:or@base_29:lossy 7:37:r5:load@base_13:inject 8:38:r1:mulhi@base_36:lossy 9:40:r0:shfl@base_39:inject 10:45:r3:load@base_30:inject 11:46:r7:load@base_45:inject 12:53:r6:mad@base_47:inject 13:57:r4:rotl@base_54:bijective 14:58:r2:load@base_53:inject 15:60:r6:sub@base_55:inject +igneum-ca3-v4-uniform/712 f87a73f57d841b1f 0 0:2:3 1:1:0 2:0:0 3:1:0 4:2:3 5:1:0 6:2:3 7:0:0 8:2:3 9:0:0 10:2:3 11:0:0 12:2:1 13:2:1 14:2:3 15:2:0 4 1 1 2 1 0:19:r0:add@base_9:inject 1:20:r2:or@base_15:lossy-or-chain1 2:22:r4:add@base_21:inject 3:29:r3:mul@base_7:lossy 4:30:r1:add@base_27:inject 5:31:r5:xor@base_26:inject 6:37:r2:load@base_29:inject 7:39:r0:load@base_37:inject 8:40:r1:add@base_32:inject 9:43:r7:rotr@base_36:bijective 10:47:r5:mul@base_41:lossy 11:50:r0:shfl@base_46:inject 12:51:r1:load@base_43:inject 13:53:r6:mulhi@base_45:lossy 14:54:r4:load@base_50:inject 15:58:r6:add@base_57:inject +igneum-ca3-v4-uniform/713 e747d80fa32f25dd 0 0:1:1 1:0:0 2:0:0 3:0:0 4:1:1 5:0:0 6:2:1 7:0:0 8:1:0 9:1:1 10:0:0 11:0:0 12:1:0 13:0:0 14:0:0 15:2:0 2 0 0 1 1 0:2:r6:shfl@base_1:inject 1:4:r7:load@base_2:inject 2:11:r2:rotr@base_7:bijective 3:12:r4:add@base_10:inject 4:17:r4:rotr@base_14:bijective 5:21:r5:load@base_11:inject 6:28:r2:mulhi@base_26:lossy 7:29:r0:mad@base_19:inject 8:30:r5:shfl@base_23:inject 9:37:r3:load@base_29:inject 10:39:r1:mul@base_27:lossy 11:42:r5:load@base_39:inject 12:43:r0:load@base_42:inject 13:44:r6:load@base_43:inject 14:48:r4:rotl@base_41:bijective 15:50:r2:mad@base_46:inject +igneum-ca3-v4-uniform/714 42a7b4ed9dceff6d 0 0:0:0 1:1:0 2:0:0 3:1:0 4:2:1 5:2:0 6:1:0 7:1:0 8:1:0 9:1:0 10:2:0 11:2:2 12:2:1 13:2:1 14:0:0 15:1:0 2 2 0 0 0 0:2:r2:or@base_1:lossy 1:5:r3:add@base_4:inject 2:9:r6:add@base_6:inject 3:22:r6:xor@base_13:inject 4:29:r6:rotl@base_26:bijective 5:30:r1:load@base_29:inject 6:31:r4:or@base_27:lossy 7:32:r1:load@base_31:inject 8:34:r5:add@base_19:inject 9:36:r0:load@base_34:inject 10:38:r7:load@base_30:inject 11:44:r2:load@base_36:inject 12:45:r1:mad@base_41:inject 13:49:r2:rotl@base_47:bijective 14:51:r7:rotl@base_48:bijective 15:55:r0:sub@base_50:inject +igneum-ca3-v4-uniform/715 efaf0cf23b376cc8 0 0:1:0 1:1:1 2:0:0 3:2:0 4:0:0 5:0:0 6:1:1 7:2:1 8:1:0 9:2:1 10:2:0 11:0:0 12:1:0 13:1:1 14:1:0 15:0:0 2 1 0 1 0 0:3:r0:mul@base_0:lossy 1:4:r7:xor@base_2:inject 2:6:r3:rotr@base_5:bijective 3:9:r1:add@base_8:inject 4:14:r2:load@base_9:inject 5:26:r7:or@base_25:lossy 6:27:r2:xor@base_21:inject 7:33:r1:shfl@base_31:inject 8:34:r5:load@base_33:inject 9:36:r3:load@base_34:inject 10:40:r3:mad@base_37:inject 11:42:r0:rotr@base_39:bijective 12:46:r2:rotr@base_32:bijective 13:48:r5:rotr@base_43:bijective 14:59:r7:rotr@base_52:bijective 15:60:r1:load@base_59:inject +igneum-ca3-v4-uniform/716 f9aaaca315771f43 0 0:0:0 1:0:0 2:2:2 3:2:0 4:0:0 5:2:3 6:1:0 7:1:0 8:2:3 9:1:1 10:2:3 11:0:0 12:2:0 13:0:0 14:1:1 15:2:3 1 0 0 1 0 0:3:r2:rotr@base_2:bijective 1:6:r1:load@base_3:inject 2:7:r3:rotl@base_1:bijective 3:9:r0:load@base_7:inject 4:13:r6:load@base_6:inject 5:15:r3:load@base_9:inject 6:18:r7:load@base_15:inject 7:27:r1:xor@base_20:inject 8:28:r4:sub@base_8:inject 9:31:r7:load@base_28:inject 10:32:r2:shfl@base_24:inject 11:36:r6:load@base_32:inject 12:49:r1:rotl@base_38:bijective 13:53:r4:xor@base_42:inject 14:57:r4:mul@base_56:lossy 15:59:r3:load@base_57:inject +igneum-ca3-v4-uniform/717 c142ea4e51651816 0 0:0:0 1:0:0 2:2:0 3:0:0 4:2:0 5:1:1 6:1:0 7:0:0 8:1:0 9:2:1 10:0:0 11:0:0 12:1:0 13:1:1 14:0:0 15:1:0 4 1 1 1 2 0:12:r0:mad@base_11:inject 1:14:r4:add@base_5:inject 2:18:r5:load@base_14:inject 3:25:r1:mulhi@base_20:lossy 4:28:r0:load@base_25:inject 5:31:r7:xor@base_24:inject 6:33:r5:rotr@base_29:bijective 7:37:r0:mulhi@base_34:lossy 8:40:r4:mad@base_39:inject 9:41:r7:add@base_36:inject 10:42:r3:load@base_41:inject 11:54:r5:load@base_37:inject 12:59:r2:or@base_58:lossy-or-chain1 13:60:r5:add@base_57:inject 14:61:r0:mul@base_56:lossy 15:63:r6:load@base_61:inject +igneum-ca3-v4-uniform/718 cd4b104877ca61d2 0 0:1:1 1:2:1 2:2:2 3:2:1 4:2:1 5:0:0 6:2:2 7:0:0 8:2:2 9:0:0 10:0:0 11:2:0 12:0:0 13:1:0 14:1:1 15:0:0 3 1 0 1 1 0:1:r1:xor@base_0:inject 1:8:r3:rotr@base_7:bijective 2:11:r5:add@base_9:inject 3:20:r7:add@base_14:inject 4:25:r0:load@base_20:inject 5:30:r6:mad@base_21:inject 6:32:r7:load@base_25:inject 7:34:r1:mul@base_28:lossy 8:36:r0:add@base_35:inject 9:44:r0:or@base_37:lossy 10:46:r5:load@base_32:inject 11:50:r3:load@base_46:inject 12:52:r6:load@base_34:inject 13:53:r4:load@base_52:inject 14:55:r2:mulhi@base_43:lossy 15:63:r6:xor@base_54:inject +igneum-ca3-v4-uniform/719 24af86ed01c04a9f 0 0:0:0 1:2:2 2:1:0 3:1:0 4:1:1 5:2:3 6:1:0 7:0:0 8:1:0 9:1:0 10:0:0 11:0:0 12:1:0 13:2:0 14:2:3 15:1:0 5 0 0 3 2 0:8:r2:sub@base_7:inject 1:14:r5:mul@base_13:lossy 2:18:r7:mulhi@base_15:lossy 3:20:r6:xor@base_9:inject 4:22:r1:mad@base_6:inject 5:27:r2:mulhi@base_25:lossy 6:28:r7:mul@base_24:lossy 7:32:r5:mul@base_23:lossy 8:35:r0:sub@base_33:inject 9:41:r2:add@base_36:inject 10:44:r6:rotr@base_42:bijective 11:45:r3:load@base_32:inject 12:50:r4:load@base_44:inject 13:55:r6:add@base_51:inject 14:56:r3:sub@base_46:inject 15:59:r0:load@base_55:inject +igneum-ca3-v4-uniform/720 d7686da0a623216d 0 0:0:0 1:0:0 2:1:0 3:2:1 4:2:0 5:0:0 6:2:1 7:2:0 8:0:0 9:1:0 10:2:3 11:0:0 12:0:0 13:1:1 14:0:0 15:1:1 3 0 0 3 0 0:7:r3:add@base_5:inject 1:16:r5:rotl@base_10:bijective 2:18:r1:xor@base_14:inject 3:27:r6:add@base_26:inject 4:37:r1:mad@base_32:inject 5:38:r2:mul@base_29:lossy 6:41:r3:rotr@base_40:bijective 7:42:r4:load@base_38:inject 8:43:r7:load@base_37:inject 9:45:r3:load@base_42:inject 10:47:r6:load@base_41:inject 11:48:r5:load@base_47:inject 12:49:r0:rotl@base_36:bijective 13:55:r4:mul@base_52:lossy 14:56:r7:mad@base_50:inject 15:61:r0:mul@base_59:lossy +igneum-ca3-v4-uniform/721 78d4f20376549c3c 0 0:1:0 1:0:0 2:0:0 3:2:0 4:1:1 5:1:0 6:1:1 7:2:3 8:1:1 9:1:0 10:1:0 11:1:1 12:0:0 13:2:3 14:2:2 15:2:3 5 3 1 1 1 0:1:r1:add@base_0:inject 1:2:r6:load@base_1:inject 2:5:r6:rotl@base_4:bijective 3:12:r6:mulhi@base_11:lossy 4:15:r7:or@base_6:lossy-or-chain1 5:21:r0:add@base_19:inject 6:28:r1:mad@base_20:inject 7:31:r6:load@base_21:inject 8:32:r7:rotr@base_29:bijective 9:34:r3:shfl@base_25:inject 10:35:r1:load@base_34:inject 11:43:r2:rotl@base_39:bijective 12:46:r7:load@base_35:inject 13:53:r3:or@base_52:lossy 14:55:r7:mul@base_49:lossy 15:63:r3:or@base_61:lossy +igneum-ca3-v4-uniform/722 6fc2c9c61e3f9a62 1 0:0:0 1:1:0 2:0:0 3:1:0 4:0:0 5:2:0 6:1:1 7:2:3 8:0:0 9:2:3 10:2:2 11:2:3 12:0:0 13:0:0 14:1:0 15:2:3 4 0 0 2 2 0:3:r0:sub@base_0:inject 1:10:r0:mulhi@base_4:lossy 2:14:r3:xor@base_11:inject 3:18:r5:add@base_17:inject 4:23:r7:rotl@base_22:bijective 5:25:r4:load@base_23:inject 6:26:r2:mul@base_20:lossy 7:36:r2:add@base_34:inject 8:37:r7:rotl@base_30:bijective 9:39:r5:load@base_36:inject 10:41:r5:mulhi@base_40:lossy 11:42:r3:mad@base_38:inject 12:47:r6:load@base_39:inject 13:49:r1:load@base_42:inject 14:59:r5:load@base_49:inject 15:61:r3:mul@base_52:lossy +igneum-ca3-v4-uniform/723 e4500391143856b7 0 0:2:0 1:2:2 2:0:0 3:0:0 4:0:0 5:0:0 6:0:0 7:2:1 8:1:0 9:1:1 10:0:0 11:0:0 12:1:1 13:2:1 14:1:1 15:2:2 5 0 0 1 4 0:2:r1:mad@base_0:inject 1:4:r6:add@base_1:inject 2:7:r6:sub@base_5:inject 3:9:r1:load@base_7:inject 4:12:r4:load@base_9:inject 5:26:r6:mulhi@base_20:lossy 6:27:r5:mul@base_24:lossy 7:30:r0:shfl@base_23:inject 8:32:r3:load@base_30:inject 9:41:r3:sub@base_36:inject 10:43:r7:mulhi@base_39:lossy 11:52:r2:load@base_43:inject 12:54:r1:mulhi@base_50:lossy 13:57:r6:load@base_54:inject 14:59:r5:mulhi@base_51:lossy 15:62:r6:load@base_59:inject +igneum-ca3-v4-uniform/724 b844366caa6c2858 0 0:0:0 1:1:1 2:2:3 3:1:1 4:2:2 5:2:3 6:2:2 7:0:0 8:0:0 9:2:0 10:0:0 11:0:0 12:1:0 13:0:0 14:0:0 15:0:0 2 0 0 1 1 0:5:r7:sub@base_3:inject 1:6:r4:load@base_5:inject 2:9:r2:mad@base_0:inject 3:11:r3:load@base_9:inject 4:13:r4:xor@base_12:inject 5:19:r7:load@base_6:inject 6:20:r3:sub@base_14:inject 7:37:r6:sub@base_28:inject 8:38:r5:add@base_31:inject 9:42:r2:xor@base_22:inject 10:43:r7:mul@base_40:lossy 11:47:r6:rotl@base_46:bijective 12:49:r0:load@base_43:inject 13:54:r6:add@base_50:inject 14:55:r7:mulhi@base_52:lossy 15:59:r2:load@base_55:inject +igneum-ca3-v4-uniform/725 e3f040f954d4813f 0 0:2:3 1:1:1 2:0:0 3:1:0 4:0:0 5:0:0 6:1:0 7:0:0 8:0:0 9:0:0 10:1:0 11:1:1 12:0:0 13:0:0 14:0:0 15:2:1 1 0 0 0 1 0:1:r2:rotl@base_0:bijective 1:6:r3:shfl@base_3:inject 2:7:r6:load@base_6:inject 3:8:r0:xor@base_5:inject 4:9:r2:load@base_7:inject 5:14:r3:mad@base_11:inject 6:19:r0:sub@base_17:inject 7:20:r2:mad@base_18:inject 8:22:r7:shfl@base_16:inject 9:29:r4:mad@base_12:inject 10:39:r1:mad@base_36:inject 11:40:r3:mulhi@base_33:lossy 12:42:r2:load@base_40:inject 13:45:r5:shfl@base_44:inject 14:58:r1:mad@base_55:inject 15:61:r7:xor@base_41:inject +igneum-ca3-v4-uniform/726 aa6b1380aecedc9a 0 0:2:1 1:0:0 2:1:0 3:2:3 4:2:3 5:0:0 6:2:2 7:0:0 8:1:0 9:2:2 10:2:0 11:2:0 12:1:0 13:2:3 14:2:2 15:1:1 4 2 0 0 2 0:11:r5:mulhi@base_8:lossy 1:16:r3:rotr@base_1:bijective 2:22:r3:mad@base_18:inject 3:23:r6:add@base_14:inject 4:26:r7:mad@base_20:inject 5:28:r3:mulhi@base_27:lossy 6:34:r1:rotl@base_29:bijective 7:37:r4:shfl@base_30:inject 8:42:r7:or@base_38:lossy 9:43:r0:add@base_36:inject 10:46:r4:mad@base_41:inject 11:47:r2:add@base_33:inject 12:48:r6:sub@base_45:inject 13:52:r7:mad@base_44:inject 14:53:r1:or@base_51:lossy 15:61:r5:add@base_58:inject +igneum-ca3-v4-uniform/727 b312d630cd0c26fa 0 0:1:0 1:0:0 2:1:1 3:1:1 4:1:0 5:1:1 6:0:0 7:1:0 8:1:0 9:0:0 10:2:3 11:2:3 12:1:1 13:0:0 14:1:0 15:2:0 1 0 0 0 1 0:8:r7:sub@base_5:inject 1:16:r4:shfl@base_10:inject 2:22:r1:add@base_19:inject 3:30:r0:xor@base_13:inject 4:31:r1:load@base_30:inject 5:33:r5:load@base_16:inject 6:34:r2:load@base_31:inject 7:35:r6:shfl@base_21:inject 8:36:r7:shfl@base_23:inject 9:37:r1:load@base_33:inject 10:40:r2:mad@base_38:inject 11:44:r1:sub@base_43:inject 12:47:r3:load@base_36:inject 13:52:r7:xor@base_49:inject 14:53:r0:xor@base_51:inject 15:62:r3:mulhi@base_61:lossy +igneum-ca3-v4-uniform/728 cc98672bab86bda0 0 0:0:0 1:0:0 2:0:0 3:1:1 4:2:1 5:1:0 6:2:1 7:0:0 8:1:0 9:1:0 10:0:0 11:1:1 12:1:0 13:1:1 14:2:2 15:1:1 4 1 0 2 1 0:5:r5:rotl@base_1:bijective 1:16:r1:mul@base_15:lossy 2:18:r7:mad@base_13:inject 3:24:r4:shfl@base_19:inject 4:27:r5:xor@base_22:inject 5:30:r7:add@base_20:inject 6:31:r3:mul@base_26:lossy 7:33:r2:load@base_31:inject 8:35:r4:add@base_32:inject 9:37:r5:mulhi@base_36:lossy 10:41:r1:load@base_37:inject 11:47:r2:add@base_44:inject 12:54:r7:or@base_48:lossy 13:55:r3:load@base_54:inject 14:56:r0:rotl@base_53:bijective 15:58:r2:rotr@base_57:bijective +igneum-ca3-v4-uniform/729 ea4efaf1afc0ec4e 0 0:1:1 1:0:0 2:1:1 3:0:0 4:0:0 5:1:0 6:1:1 7:2:1 8:2:3 9:2:1 10:1:1 11:2:0 12:1:0 13:2:3 14:2:2 15:0:0 4 1 0 3 0 0:4:r3:xor@base_2:inject 1:5:r7:mad@base_3:inject 2:9:r0:or@base_1:lossy 3:10:r2:xor@base_8:inject 4:14:r7:add@base_11:inject 5:21:r0:mul@base_18:lossy 6:24:r1:mul@base_6:lossy 7:28:r6:add@base_23:inject 8:29:r0:xor@base_25:inject 9:35:r5:load@base_28:inject 10:38:r2:xor@base_34:inject 11:40:r3:mad@base_36:inject 12:41:r6:mul@base_31:lossy 13:43:r4:load@base_41:inject 14:50:r0:load@base_43:inject 15:51:r3:add@base_46:inject +igneum-ca3-v4-uniform/730 ea53e0701b1e19f2 0 0:1:1 1:0:0 2:1:0 3:0:0 4:1:1 5:2:0 6:1:0 7:2:2 8:2:0 9:1:1 10:1:0 11:2:3 12:2:0 13:0:0 14:0:0 15:1:0 5 0 0 2 3 0:1:r1:xor@base_0:inject 1:5:r1:mulhi@base_4:lossy 2:8:r7:add@base_7:inject 3:9:r2:load@base_5:inject 4:11:r0:load@base_8:inject 5:13:r7:load@base_9:inject 6:14:r6:mad@base_2:inject 7:18:r6:mulhi@base_15:lossy 8:26:r1:rotl@base_22:bijective 9:30:r4:mad@base_27:inject 10:34:r0:load@base_30:inject 11:35:r6:load@base_34:inject 12:40:r7:mulhi@base_25:lossy 13:49:r5:shfl@base_48:inject 14:57:r3:mul@base_56:lossy 15:62:r5:mul@base_54:lossy +igneum-ca3-v4-uniform/731 a07a72526af5299f 0 0:0:0 1:2:2 2:2:0 3:0:0 4:1:1 5:0:0 6:1:1 7:2:2 8:1:0 9:0:0 10:2:0 11:1:1 12:1:0 13:1:0 14:1:1 15:2:3 0 0 0 0 0 0:11:r5:add@base_3:inject 1:12:r0:xor@base_10:inject 2:17:r6:rotr@base_16:bijective 3:18:r3:shfl@base_6:inject 4:22:r6:xor@base_21:inject 5:32:r5:add@base_15:inject 6:34:r4:load@base_17:inject 7:41:r1:load@base_22:inject 8:44:r0:rotl@base_43:bijective 9:50:r0:sub@base_48:inject 10:53:r6:load@base_50:inject 11:56:r7:mad@base_47:inject 12:57:r2:load@base_56:inject 13:61:r1:shfl@base_58:inject 14:62:r0:load@base_57:inject 15:63:r4:load@base_61:inject +igneum-ca3-v4-uniform/732 2237987cd1c8ed1d 0 0:0:0 1:0:0 2:1:1 3:1:1 4:1:0 5:0:0 6:1:1 7:0:0 8:1:1 9:2:2 10:2:3 11:0:0 12:2:0 13:2:0 14:2:3 15:0:0 2 1 0 1 0 0:12:r4:mad@base_2:inject 1:13:r1:shfl@base_1:inject 2:17:r5:load@base_12:inject 3:21:r2:shfl@base_7:inject 4:27:r6:sub@base_23:inject 5:30:r1:shfl@base_22:inject 6:36:r7:xor@base_32:inject 7:37:r0:load@base_36:inject 8:40:r5:rotl@base_35:bijective 9:43:r6:add@base_41:inject 10:50:r7:or@base_47:lossy 11:51:r3:sub@base_42:inject 12:53:r1:load@base_50:inject 13:56:r7:load@base_53:inject 14:60:r7:mul@base_58:lossy 15:61:r1:sub@base_55:inject +igneum-ca3-v4-uniform/733 5bbe5dd9cb3db6cf 0 0:1:0 1:2:3 2:2:1 3:2:3 4:0:0 5:0:0 6:0:0 7:2:2 8:0:0 9:1:1 10:0:0 11:0:0 12:2:2 13:2:0 14:2:3 15:1:1 2 0 0 1 1 0:3:r3:add@base_2:inject 1:4:r6:load@base_3:inject 2:5:r4:add@base_1:inject 3:26:r1:rotr@base_23:bijective 4:27:r7:rotl@base_24:bijective 5:29:r3:rotr@base_14:bijective 6:33:r0:shfl@base_32:inject 7:36:r6:mulhi@base_31:lossy 8:37:r4:load@base_27:inject 9:38:r2:sub@base_22:inject 10:45:r1:rotr@base_44:bijective 11:52:r6:add@base_50:inject 12:55:r5:shfl@base_54:inject 13:57:r1:load@base_55:inject 14:59:r4:mul@base_42:lossy 15:62:r2:rotr@base_56:bijective +igneum-ca3-v4-uniform/734 f06a15baa505e067 0 0:2:2 1:2:0 2:0:0 3:0:0 4:1:0 5:2:0 6:0:0 7:2:0 8:2:3 9:0:0 10:0:0 11:1:0 12:1:1 13:0:0 14:2:1 15:1:0 4 1 0 2 1 0:6:r1:or@base_1:lossy 1:8:r3:mad@base_5:inject 2:9:r2:load@base_6:inject 3:17:r4:mad@base_15:inject 4:18:r5:xor@base_14:inject 5:23:r5:xor@base_21:inject 6:29:r4:add@base_27:inject 7:34:r5:mad@base_24:inject 8:35:r7:mul@base_32:lossy 9:36:r1:shfl@base_22:inject 10:43:r3:sub@base_42:inject 11:44:r6:mulhi@base_33:lossy 12:48:r1:load@base_44:inject 13:49:r0:load@base_43:inject 14:62:r3:mul@base_61:lossy 15:63:r5:load@base_62:inject +igneum-ca3-v4-uniform/735 e88f7fd5aac31b27 0 0:0:0 1:0:0 2:2:1 3:1:0 4:0:0 5:2:1 6:1:1 7:1:0 8:0:0 9:1:1 10:1:1 11:0:0 12:1:1 13:0:0 14:2:3 15:1:0 5 1 0 3 1 0:2:r5:mad@base_1:inject 1:12:r6:rotl@base_11:bijective 2:16:r1:or@base_8:lossy 3:22:r5:load@base_16:inject 4:24:r2:mul@base_4:lossy 5:25:r0:mul@base_7:lossy 6:26:r7:mad@base_20:inject 7:27:r0:load@base_26:inject 8:30:r6:load@base_24:inject 9:34:r7:xor@base_32:inject 10:35:r4:mul@base_29:lossy 11:38:r6:rotl@base_33:bijective 12:41:r2:mulhi@base_39:lossy 13:44:r4:mad@base_43:inject 14:45:r0:shfl@base_37:inject 15:50:r1:load@base_44:inject +igneum-ca3-v4-uniform/736 f1e4303d0d0183d2 0 0:2:3 1:0:0 2:2:1 3:1:1 4:1:0 5:0:0 6:0:0 7:2:0 8:0:0 9:0:0 10:0:0 11:2:0 12:1:1 13:0:0 14:2:3 15:2:0 6 0 0 4 2 0:5:r4:mul@base_0:lossy 1:6:r1:mul@base_3:lossy 2:10:r7:xor@base_1:inject 3:12:r6:mul@base_11:lossy 4:27:r1:sub@base_24:inject 5:31:r7:mul@base_28:lossy 6:33:r5:rotr@base_20:bijective 7:34:r3:mulhi@base_19:lossy 8:35:r0:load@base_34:inject 9:39:r1:add@base_37:inject 10:40:r3:xor@base_38:inject 11:43:r2:rotr@base_41:bijective 12:47:r4:mad@base_45:inject 13:52:r7:mulhi@base_48:lossy 14:53:r0:add@base_51:inject 15:61:r6:add@base_56:inject +igneum-ca3-v4-uniform/737 2179a726ec51d58d 0 0:0:0 1:2:2 2:1:0 3:2:2 4:0:0 5:1:1 6:2:0 7:0:0 8:1:0 9:2:2 10:1:0 11:1:1 12:1:0 13:2:0 14:0:0 15:1:1 3 1 0 2 0 0:1:r0:xor@base_0:inject 1:3:r6:load@base_1:inject 2:5:r7:load@base_3:inject 3:13:r1:load@base_5:inject 4:14:r5:sub@base_12:inject 5:20:r2:rotl@base_8:bijective 6:25:r2:add@base_22:inject 7:33:r6:shfl@base_11:inject 8:39:r6:or@base_36:lossy 9:40:r2:mul@base_29:lossy 10:43:r5:load@base_39:inject 11:52:r2:shfl@base_51:inject 12:55:r2:shfl@base_53:inject 13:56:r1:mul@base_48:lossy 14:57:r0:load@base_52:inject 15:62:r2:load@base_57:inject +igneum-ca3-v4-uniform/738 077a96b592de6521 0 0:0:0 1:1:1 2:1:0 3:2:0 4:1:1 5:1:0 6:0:0 7:0:0 8:0:0 9:1:1 10:0:0 11:1:1 12:1:0 13:1:0 14:1:0 15:0:0 1 0 0 0 1 0:6:r6:sub@base_2:inject 1:18:r6:mulhi@base_13:lossy 2:19:r4:add@base_9:inject 3:25:r0:shfl@base_23:inject 4:26:r6:shfl@base_21:inject 5:32:r0:load@base_26:inject 6:33:r4:load@base_25:inject 7:34:r7:add@base_27:inject 8:37:r1:shfl@base_30:inject 9:38:r3:load@base_33:inject 10:43:r7:load@base_37:inject 11:45:r4:mad@base_44:inject 12:46:r6:shfl@base_41:inject 13:49:r7:sub@base_48:inject 14:55:r3:load@base_49:inject 15:58:r5:load@base_46:inject +igneum-ca3-v4-uniform/739 fa14d49c6d40f187 0 0:2:1 1:0:0 2:1:0 3:1:0 4:0:0 5:0:0 6:2:1 7:1:0 8:1:0 9:1:1 10:1:1 11:0:0 12:2:3 13:1:0 14:2:1 15:0:0 2 0 0 2 0 0:2:r4:mul@base_1:lossy 1:9:r4:rotr@base_7:bijective 2:10:r2:shfl@base_4:inject 3:14:r6:xor@base_12:inject 4:15:r3:mad@base_11:inject 5:16:r5:load@base_9:inject 6:21:r4:add@base_17:inject 7:22:r1:rotr@base_20:bijective 8:30:r4:mul@base_29:lossy 9:39:r1:load@base_30:inject 10:43:r4:add@base_42:inject 11:44:r0:rotl@base_19:bijective 12:51:r6:shfl@base_49:inject 13:55:r5:shfl@base_48:inject 14:56:r7:mad@base_35:inject 15:61:r3:sub@base_58:inject +igneum-ca3-v4-uniform/740 61f7a8b66952bdba 1 0:0:0 1:0:0 2:0:0 3:0:0 4:1:1 5:2:2 6:1:1 7:1:1 8:2:0 9:2:3 10:1:1 11:0:0 12:2:3 13:2:3 14:1:0 15:2:2 1 1 0 0 0 0:6:r1:shfl@base_1:inject 1:7:r3:xor@base_0:inject 2:9:r0:load@base_7:inject 3:14:r6:sub@base_13:inject 4:16:r7:load@base_9:inject 5:17:r6:load@base_16:inject 6:20:r4:xor@base_5:inject 7:32:r3:mad@base_25:inject 8:33:r7:xor@base_28:inject 9:39:r0:sub@base_36:inject 10:41:r4:xor@base_38:inject 11:55:r7:sub@base_54:inject 12:57:r0:or@base_53:lossy 13:59:r1:shfl@base_50:inject 14:62:r5:add@base_40:inject 15:63:r2:mad@base_58:inject +igneum-ca3-v4-uniform/741 442f597549728bc1 0 0:1:0 1:2:1 2:0:0 3:1:1 4:2:0 5:1:1 6:2:1 7:1:0 8:0:0 9:1:1 10:1:0 11:1:1 12:1:0 13:0:0 14:0:0 15:1:0 5 1 0 2 2 0:3:r2:mul@base_0:lossy 1:6:r4:rotl@base_4:bijective 2:12:r5:mad@base_8:inject 3:14:r7:sub@base_7:inject 4:16:r0:load@base_12:inject 5:20:r2:xor@base_13:inject 6:26:r5:shfl@base_23:inject 7:27:r1:load@base_14:inject 8:30:r4:rotl@base_29:bijective 9:31:r3:mul@base_22:lossy 10:35:r3:or@base_32:lossy 11:39:r5:rotr@base_33:bijective 12:41:r7:sub@base_37:inject 13:43:r0:mulhi@base_40:lossy 14:52:r6:load@base_43:inject 15:62:r7:mulhi@base_55:lossy +igneum-ca3-v4-uniform/742 72b35ba2142782d8 0 0:2:3 1:1:1 2:2:0 3:1:1 4:0:0 5:0:0 6:2:1 7:1:0 8:1:1 9:1:1 10:2:0 11:1:0 12:1:0 13:0:0 14:0:0 15:1:0 2 1 0 1 0 0:4:r5:xor@base_1:inject 1:7:r1:mul@base_2:lossy 2:11:r7:xor@base_9:inject 3:12:r1:sub@base_10:inject 4:13:r2:load@base_12:inject 5:15:r3:rotl@base_14:bijective 6:18:r3:rotl@base_16:bijective 7:23:r6:load@base_18:inject 8:30:r7:shfl@base_28:inject 9:31:r3:add@base_20:inject 10:32:r4:load@base_30:inject 11:33:r0:load@base_31:inject 12:41:r1:sub@base_39:inject 13:44:r2:rotl@base_29:bijective 14:52:r1:sub@base_49:inject 15:63:r5:or@base_58:lossy +igneum-ca3-v4-uniform/743 fa0887aceb410b11 0 0:2:0 1:1:0 2:1:1 3:0:0 4:2:2 5:2:1 6:1:1 7:1:0 8:2:0 9:0:0 10:0:0 11:2:0 12:2:1 13:1:0 14:0:0 15:2:0 1 0 0 1 0 0:2:r3:xor@base_1:inject 1:5:r4:load@base_2:inject 2:7:r7:sub@base_4:inject 3:14:r0:shfl@base_6:inject 4:15:r7:load@base_14:inject 5:16:r4:load@base_15:inject 6:23:r3:shfl@base_22:inject 7:24:r6:shfl@base_19:inject 8:27:r0:load@base_23:inject 9:29:r2:sub@base_25:inject 10:33:r5:add@base_31:inject 11:35:r0:load@base_33:inject 12:39:r3:mul@base_34:lossy 13:40:r4:rotl@base_37:bijective 14:48:r3:xor@base_44:inject 15:51:r7:load@base_29:inject +igneum-ca3-v4-uniform/744 85579798370b0171 0 0:0:0 1:2:2 2:2:1 3:0:0 4:0:0 5:1:0 6:2:2 7:2:2 8:1:0 9:2:3 10:1:1 11:0:0 12:2:0 13:1:0 14:1:1 15:1:0 2 0 0 0 2 0:3:r2:rotr@base_0:bijective 1:12:r2:xor@base_11:inject 2:13:r5:add@base_6:inject 3:20:r4:load@base_12:inject 4:23:r6:mulhi@base_15:lossy 5:25:r1:rotr@base_19:bijective 6:28:r7:add@base_21:inject 7:31:r5:load@base_23:inject 8:38:r0:mulhi@base_37:lossy 9:41:r3:add@base_26:inject 10:44:r1:load@base_38:inject 11:53:r2:xor@base_36:inject 12:56:r4:mad@base_46:inject 13:59:r5:xor@base_32:inject 14:60:r7:xor@base_42:inject 15:62:r6:load@base_56:inject +igneum-ca3-v4-uniform/745 4392e487d3702496 0 0:1:0 1:0:0 2:0:0 3:2:1 4:1:1 5:1:0 6:2:0 7:1:1 8:2:3 9:2:3 10:0:0 11:2:2 12:0:0 13:0:0 14:0:0 15:0:0 5 0 0 3 2 0:1:r7:mulhi@base_0:lossy 1:2:r3:load@base_1:inject 2:3:r7:load@base_2:inject 3:4:r0:load@base_3:inject 4:6:r4:xor@base_5:inject 5:12:r2:rotl@base_9:bijective 6:20:r4:mulhi@base_16:lossy 7:24:r1:mul@base_18:lossy 8:28:r3:mul@base_10:lossy 9:29:r6:load@base_20:inject 10:36:r1:xor@base_35:inject 11:38:r3:add@base_33:inject 12:44:r2:shfl@base_43:inject 13:50:r7:load@base_38:inject 14:52:r6:mul@base_40:lossy 15:54:r0:shfl@base_32:inject +igneum-ca3-v4-uniform/746 7f7b3cdfcbaf0ce3 0 0:2:3 1:0:0 2:2:3 3:2:3 4:2:1 5:2:1 6:1:1 7:2:3 8:0:0 9:1:1 10:0:0 11:0:0 12:0:0 13:0:0 14:2:3 15:0:0 4 1 0 3 0 0:6:r3:rotl@base_5:bijective 1:7:r4:mad@base_3:inject 2:11:r2:mul@base_10:lossy 3:21:r1:sub@base_20:inject 4:23:r3:mul@base_16:lossy 5:24:r0:load@base_11:inject 6:29:r6:rotr@base_28:bijective 7:33:r2:or@base_31:lossy 8:36:r7:mul@base_32:lossy 9:37:r5:rotl@base_19:bijective 10:42:r3:xor@base_34:inject 11:45:r2:rotr@base_43:bijective 12:49:r7:xor@base_46:inject 13:54:r5:shfl@base_50:inject 14:57:r4:load@base_54:inject 15:60:r6:shfl@base_55:inject +igneum-ca3-v4-uniform/747 7eafda46e88c37a7 0 0:0:0 1:0:0 2:2:1 3:1:1 4:2:0 5:0:0 6:2:0 7:2:1 8:0:0 9:1:0 10:0:0 11:1:0 12:1:1 13:2:0 14:1:1 15:1:1 2 1 0 0 1 0:8:r5:sub@base_5:inject 1:11:r3:xor@base_7:inject 2:19:r6:rotr@base_18:bijective 3:20:r5:load@base_19:inject 4:23:r1:load@base_20:inject 5:26:r0:xor@base_0:inject 6:28:r4:sub@base_22:inject 7:29:r1:load@base_28:inject 8:38:r1:or@base_31:lossy 9:39:r4:load@base_38:inject 10:41:r7:sub@base_40:inject 11:42:r2:shfl@base_14:inject 12:46:r5:load@base_39:inject 13:60:r1:load@base_42:inject 14:62:r4:load@base_46:inject 15:63:r0:mulhi@base_59:lossy +igneum-ca3-v4-uniform/748 e118a09aff18ba7f 0 0:0:0 1:2:1 2:1:0 3:1:0 4:2:2 5:0:0 6:1:0 7:2:3 8:1:1 9:0:0 10:1:1 11:1:1 12:1:0 13:2:1 14:2:3 15:1:0 3 1 0 2 0 0:2:r3:sub@base_0:inject 1:12:r1:xor@base_4:inject 2:18:r6:load@base_12:inject 3:24:r4:shfl@base_19:inject 4:25:r0:shfl@base_16:inject 5:26:r3:load@base_24:inject 6:27:r1:rotl@base_17:bijective 7:33:r5:mul@base_28:lossy 8:41:r3:or@base_34:lossy 9:44:r6:mul@base_39:lossy 10:46:r1:shfl@base_43:inject 11:49:r2:load@base_46:inject 12:54:r0:sub@base_53:inject 13:55:r4:rotl@base_51:bijective 14:59:r6:load@base_55:inject 15:62:r4:load@base_59:inject +igneum-ca3-v4-uniform/749 c555184743bc599e 0 0:1:0 1:0:0 2:2:0 3:2:1 4:2:3 5:0:0 6:1:0 7:0:0 8:0:0 9:0:0 10:1:0 11:0:0 12:0:0 13:0:0 14:1:1 15:2:1 4 0 0 0 4 0:5:r2:sub@base_1:inject 1:7:r4:load@base_5:inject 2:12:r4:rotr@base_10:bijective 3:20:r7:shfl@base_13:inject 4:30:r6:mulhi@base_23:lossy 5:32:r4:mulhi@base_26:lossy 6:33:r7:xor@base_24:inject 7:34:r3:rotr@base_28:bijective 8:35:r0:load@base_30:inject 9:36:r5:sub@base_11:inject 10:43:r7:rotr@base_37:bijective 11:50:r5:shfl@base_48:inject 12:55:r1:load@base_50:inject 13:57:r0:mulhi@base_45:lossy 14:58:r2:add@base_54:inject 15:62:r5:mulhi@base_51:lossy +igneum-ca3-v4-uniform/750 9d557966895baf8d 0 0:2:1 1:2:3 2:1:0 3:1:0 4:0:0 5:1:1 6:0:0 7:0:0 8:0:0 9:2:1 10:2:2 11:1:1 12:1:0 13:1:0 14:0:0 15:1:0 4 1 0 0 3 0:4:r4:sub@base_1:inject 1:5:r1:load@base_4:inject 2:11:r7:load@base_5:inject 3:17:r5:sub@base_3:inject 4:21:r3:load@base_17:inject 5:22:r0:mulhi@base_12:lossy 6:28:r7:mulhi@base_26:lossy 7:30:r5:or@base_27:lossy 8:37:r3:load@base_28:inject 9:42:r5:mad@base_40:inject 10:44:r3:mad@base_41:inject 11:47:r7:load@base_30:inject 12:48:r2:load@base_37:inject 13:49:r6:add@base_35:inject 14:53:r1:mulhi@base_24:lossy 15:57:r4:load@base_49:inject +igneum-ca3-v4-uniform/751 5efae0c792cbcdd1 0 0:1:1 1:1:1 2:0:0 3:2:3 4:1:0 5:2:3 6:2:1 7:1:1 8:0:0 9:2:3 10:1:1 11:1:1 12:1:0 13:0:0 14:2:3 15:0:0 1 1 0 0 0 0:6:r2:sub@base_5:inject 1:9:r6:load@base_6:inject 2:12:r1:rotr@base_4:bijective 3:21:r4:load@base_12:inject 4:26:r6:rotl@base_25:bijective 5:29:r2:add@base_16:inject 6:31:r0:load@base_26:inject 7:32:r1:load@base_29:inject 8:33:r3:mad@base_24:inject 9:41:r5:rotl@base_38:bijective 10:44:r7:or@base_28:lossy 11:45:r2:xor@base_42:inject 12:48:r0:sub@base_47:inject 13:50:r3:load@base_45:inject 14:59:r1:sub@base_52:inject 15:61:r7:sub@base_58:inject +igneum-ca3-v4-uniform/752 13ba1ce85b393787 0 0:1:0 1:2:2 2:0:0 3:2:0 4:2:2 5:0:0 6:1:0 7:2:0 8:0:0 9:1:1 10:2:3 11:2:0 12:1:0 13:0:0 14:2:2 15:2:0 3 0 0 3 0 0:1:r2:add@shadow_252:inject 1:3:r6:mad@base_2:inject 2:6:r5:load@base_1:inject 3:18:r3:mul@base_12:lossy 4:20:r2:add@base_17:inject 5:23:r5:add@base_21:inject 6:24:r0:shfl@base_7:inject 7:33:r1:mul@base_28:lossy 8:42:r3:xor@base_36:inject 9:44:r4:sub@base_41:inject 10:45:r5:load@base_44:inject 11:46:r7:mul@base_43:lossy 12:49:r6:load@base_42:inject 13:50:r7:add@base_48:inject 14:57:r5:rotl@base_56:bijective 15:63:r1:load@base_49:inject +igneum-ca3-v4-uniform/753 81e9defb77fe21ba 0 0:2:0 1:0:0 2:0:0 3:1:0 4:2:3 5:2:0 6:2:1 7:2:3 8:1:1 9:0:0 10:2:0 11:1:0 12:0:0 13:2:3 14:0:0 15:1:1 4 0 0 2 2 0:1:r1:mul@base_0:lossy 1:3:r6:xor@base_2:inject 2:7:r2:xor@base_6:inject 3:9:r1:add@base_5:inject 4:11:r5:mul@base_8:lossy 5:12:r7:load@base_11:inject 6:14:r4:load@base_9:inject 7:16:r1:add@base_13:inject 8:18:r3:load@base_16:inject 9:34:r6:rotl@base_23:bijective 10:37:r4:mulhi@base_30:lossy 11:44:r0:xor@base_43:inject 12:47:r2:mad@base_40:inject 13:51:r0:add@base_46:inject 14:55:r5:load@base_51:inject 15:58:r6:mulhi@base_53:lossy +igneum-ca3-v4-uniform/754 0fa64cf6daa303f8 0 0:2:1 1:1:1 2:1:0 3:0:0 4:2:0 5:1:0 6:0:0 7:0:0 8:0:0 9:0:0 10:1:0 11:0:0 12:1:0 13:2:0 14:1:0 15:0:0 4 1 0 3 0 0:2:r3:mul@base_1:lossy 1:8:r1:xor@base_6:inject 2:10:r2:xor@base_7:inject 3:11:r7:load@base_8:inject 4:12:r5:load@base_10:inject 5:15:r1:mad@base_13:inject 6:19:r5:mad@base_18:inject 7:26:r1:mul@base_16:lossy 8:27:r3:sub@base_23:inject 9:31:r0:or@base_28:lossy 10:41:r2:mul@base_37:lossy 11:43:r3:add@base_42:inject 12:46:r3:shfl@base_45:inject 13:54:r1:rotr@base_52:bijective 14:57:r2:add@base_56:inject 15:61:r5:shfl@base_40:inject +igneum-ca3-v4-uniform/755 9dc987c1fe302add 0 0:1:0 1:0:0 2:0:0 3:2:0 4:2:0 5:1:0 6:1:0 7:2:3 8:2:0 9:1:1 10:0:0 11:1:1 12:0:0 13:2:2 14:1:1 15:1:0 2 0 0 0 2 0:5:r1:mulhi@base_4:lossy 1:6:r7:shfl@base_1:inject 2:7:r4:load@base_5:inject 3:9:r0:load@base_6:inject 4:10:r2:mulhi@base_8:lossy 5:20:r3:xor@base_12:inject 6:27:r0:rotl@base_26:bijective 7:34:r1:mad@base_32:inject 8:36:r6:mad@base_30:inject 9:40:r5:sub@base_39:inject 10:46:r1:rotl@base_44:bijective 11:49:r4:add@base_45:inject 12:51:r0:rotl@base_48:bijective 13:59:r2:load@base_51:inject 14:61:r3:load@base_40:inject 15:62:r0:load@base_59:inject +igneum-ca3-v4-uniform/756 bb8ee8b35e0d05ae 0 0:0:0 1:2:0 2:1:0 3:1:1 4:0:0 5:1:1 6:1:0 7:0:0 8:1:1 9:0:0 10:2:1 11:2:3 12:1:0 13:2:1 14:1:0 15:2:1 3 0 0 1 2 0:4:r3:xor@base_3:inject 1:6:r4:mulhi@base_2:lossy 2:7:r2:add@base_5:inject 3:8:r7:load@base_4:inject 4:9:r6:load@base_7:inject 5:17:r5:shfl@base_12:inject 6:19:r1:mad@base_10:inject 7:23:r0:rotr@base_18:bijective 8:25:r3:mulhi@base_16:lossy 9:29:r5:load@base_23:inject 10:30:r6:mul@base_27:lossy 11:47:r0:mad@base_41:inject 12:53:r7:shfl@base_51:inject 13:54:r3:load@base_47:inject 14:59:r6:rotl@base_45:bijective 15:61:r1:load@base_59:inject +igneum-ca3-v4-uniform/757 3bb97596796fadec 0 0:1:1 1:1:1 2:2:1 3:2:0 4:1:0 5:0:0 6:0:0 7:1:0 8:2:2 9:1:1 10:1:1 11:2:1 12:0:0 13:2:2 14:1:1 15:1:0 0 0 0 0 0 0:7:r0:mad@base_5:inject 1:8:r7:load@base_7:inject 2:12:r0:xor@base_11:inject 3:17:r7:mad@base_14:inject 4:19:r1:load@base_17:inject 5:20:r2:load@base_8:inject 6:24:r4:add@base_23:inject 7:25:r1:load@base_24:inject 8:27:r6:load@base_12:inject 9:31:r3:load@base_20:inject 10:39:r3:add@base_35:inject 11:43:r1:shfl@base_41:inject 12:48:r5:rotr@base_30:bijective 13:49:r7:load@base_43:inject 14:57:r4:mad@base_38:inject 15:59:r2:rotl@base_46:bijective +igneum-ca3-v4-uniform/758 1c1477903daaf80f 0 0:0:0 1:1:0 2:0:0 3:0:0 4:1:0 5:2:2 6:0:0 7:1:0 8:1:1 9:2:2 10:1:1 11:1:0 12:0:0 13:0:0 14:2:3 15:0:0 2 0 0 0 2 0:4:r1:add@base_0:inject 1:5:r4:load@base_4:inject 2:10:r3:shfl@base_9:inject 3:14:r1:shfl@base_7:inject 4:15:r7:rotr@base_13:bijective 5:22:r6:shfl@base_21:inject 6:23:r2:add@base_19:inject 7:34:r1:mulhi@base_30:lossy 8:39:r1:mulhi@base_38:lossy 9:40:r5:mad@base_37:inject 10:45:r3:shfl@base_41:inject 11:48:r5:load@base_45:inject 12:50:r1:sub@base_47:inject 13:54:r4:rotr@base_46:bijective 14:58:r3:add@base_56:inject 15:60:r0:load@base_58:inject +igneum-ca3-v4-uniform/759 0a2fa1d63c103d12 0 0:2:0 1:0:0 2:2:2 3:2:2 4:0:0 5:1:1 6:0:0 7:2:2 8:2:2 9:1:1 10:0:0 11:0:0 12:0:0 13:2:3 14:2:0 15:1:0 1 0 0 0 1 0:3:r4:mulhi@base_1:lossy 1:7:r3:sub@base_4:inject 2:12:r6:xor@base_11:inject 3:16:r1:xor@base_9:inject 4:21:r3:add@base_19:inject 5:22:r0:xor@base_6:inject 6:31:r5:add@base_26:inject 7:37:r3:sub@base_23:inject 8:38:r6:add@base_14:inject 9:39:r2:rotr@base_36:bijective 10:40:r1:load@base_21:inject 11:43:r1:sub@base_42:inject 12:49:r4:load@base_40:inject 13:52:r6:rotr@base_45:bijective 14:62:r3:load@base_49:inject 15:63:r7:load@base_52:inject +igneum-ca3-v4-uniform/760 9e4667e3ef1c676f 0 0:2:1 1:1:0 2:1:0 3:0:0 4:0:0 5:1:1 6:0:0 7:1:0 8:2:1 9:1:0 10:1:0 11:0:0 12:1:1 13:2:0 14:0:0 15:2:1 4 0 0 4 0 0:3:r3:add@base_1:inject 1:8:r1:load@base_3:inject 2:11:r3:sub@base_10:inject 3:14:r7:rotr@base_2:bijective 4:15:r0:load@base_14:inject 5:22:r7:rotl@base_19:bijective 6:32:r0:xor@base_25:inject 7:34:r6:load@base_32:inject 8:35:r2:load@base_34:inject 9:42:r5:mad@base_37:inject 10:43:r7:mul@base_39:lossy 11:45:r6:mul@base_41:lossy 12:46:r3:load@base_43:inject 13:48:r4:load@base_46:inject 14:49:r2:mul@base_44:lossy 15:58:r0:mul@base_57:lossy +igneum-ca3-v4-uniform/761 88a91daac3d807d0 0 0:1:0 1:2:2 2:0:0 3:0:0 4:1:1 5:1:0 6:2:3 7:1:0 8:0:0 9:0:0 10:1:0 11:1:0 12:0:0 13:0:0 14:0:0 15:1:1 3 1 0 2 0 0:8:r0:mad@base_5:inject 1:13:r4:mul@base_1:lossy 2:14:r1:load@base_8:inject 3:18:r2:load@base_14:inject 4:20:r6:load@base_18:inject 5:26:r1:xor@base_16:inject 6:28:r5:add@base_21:inject 7:33:r1:rotl@base_30:bijective 8:36:r3:rotr@base_32:bijective 9:38:r7:load@base_36:inject 10:44:r0:mul@base_23:lossy 11:50:r5:or@base_45:lossy 12:51:r2:add@base_31:inject 13:58:r1:xor@base_55:inject 14:62:r3:add@base_61:inject 15:63:r5:shfl@base_60:inject +igneum-ca3-v4-uniform/762 928e8752405aef5e 0 0:2:0 1:0:0 2:1:0 3:1:1 4:2:2 5:2:1 6:1:1 7:0:0 8:1:1 9:2:2 10:0:0 11:1:0 12:0:0 13:0:0 14:2:1 15:0:0 1 0 0 0 1 0:2:r3:rotr@base_0:bijective 1:11:r6:sub@base_10:inject 2:24:r5:rotl@base_21:bijective 3:25:r7:load@base_24:inject 4:27:r2:sub@base_23:inject 5:28:r6:load@base_25:inject 6:34:r5:mulhi@base_29:lossy 7:35:r3:load@base_34:inject 8:41:r2:rotr@base_40:bijective 9:45:r7:add@base_44:inject 10:51:r7:rotr@base_49:bijective 11:53:r0:add@base_18:inject 12:54:r1:load@base_51:inject 13:60:r1:add@base_58:inject 14:61:r6:load@base_60:inject 15:62:r0:load@base_61:inject +igneum-ca3-v4-uniform/763 de2727c1d7ea44a7 0 0:2:1 1:2:1 2:2:0 3:1:0 4:2:0 5:0:0 6:2:0 7:2:0 8:1:1 9:2:3 10:2:2 11:1:1 12:1:0 13:1:0 14:0:0 15:1:0 2 0 0 1 1 0:3:r2:mul@base_2:lossy 1:5:r2:add@base_4:inject 2:6:r3:load@base_5:inject 3:7:r6:load@base_6:inject 4:19:r6:sub@base_14:inject 5:24:r2:rotr@base_23:bijective 6:29:r1:load@base_24:inject 7:30:r2:mulhi@base_27:lossy 8:31:r4:shfl@base_21:inject 9:33:r0:rotl@base_16:bijective 10:39:r5:add@base_37:inject 11:43:r7:xor@base_40:inject 12:49:r3:mad@base_45:inject 13:53:r7:shfl@base_51:inject 14:60:r1:add@base_55:inject 15:61:r4:rotl@base_59:bijective +igneum-ca3-v4-uniform/764 9cb1dbe7f2b7388b 0 0:0:0 1:1:0 2:2:2 3:1:1 4:0:0 5:1:0 6:0:0 7:2:0 8:0:0 9:2:0 10:2:2 11:0:0 12:0:0 13:0:0 14:1:1 15:0:0 0 0 0 0 0 0:2:r5:add@base_0:inject 1:9:r3:rotr@base_4:bijective 2:10:r1:load@base_9:inject 3:11:r0:add@base_7:inject 4:26:r2:rotl@base_24:bijective 5:30:r0:mad@base_27:inject 6:33:r1:rotl@base_29:bijective 7:36:r7:shfl@base_34:inject 8:48:r0:add@base_41:inject 9:50:r4:add@base_43:inject 10:54:r3:rotl@base_31:bijective 11:55:r5:mad@base_25:inject 12:57:r2:add@base_52:inject 13:58:r6:shfl@base_53:inject 14:61:r5:add@base_59:inject 15:62:r7:load@base_57:inject +igneum-ca3-v4-uniform/765 acd470ad77f433cf 0 0:2:2 1:1:0 2:0:0 3:0:0 4:1:0 5:0:0 6:2:1 7:1:1 8:1:0 9:0:0 10:0:0 11:2:2 12:0:0 13:1:1 14:0:0 15:1:1 3 2 0 0 1 0:2:r3:or@base_0:lossy 1:4:r5:load@base_2:inject 2:5:r1:load@base_4:inject 3:8:r7:shfl@base_3:inject 4:16:r4:or@base_12:lossy 5:18:r5:load@base_16:inject 6:21:r1:add@base_20:inject 7:22:r2:mad@base_19:inject 8:23:r0:load@base_21:inject 9:26:r4:xor@base_24:inject 10:32:r7:rotr@base_25:bijective 11:34:r6:rotl@base_29:bijective 12:39:r7:mulhi@base_38:lossy 13:52:r5:xor@base_48:inject 14:57:r3:mad@base_53:inject 15:62:r2:mad@base_56:inject +igneum-ca3-v4-uniform/766 b563240c727b7a47 0 0:1:0 1:1:1 2:1:0 3:1:0 4:0:0 5:2:1 6:0:0 7:1:0 8:1:1 9:2:1 10:2:3 11:0:0 12:1:0 13:1:1 14:2:1 15:1:1 0 0 0 0 0 0:16:r0:sub@base_11:inject 1:19:r3:add@base_6:inject 2:20:r2:load@base_16:inject 3:22:r5:rotr@base_15:bijective 4:25:r0:xor@base_24:inject 5:26:r1:load@base_25:inject 6:29:r3:load@base_20:inject 7:31:r4:load@base_26:inject 8:32:r7:mad@base_30:inject 9:41:r6:load@base_31:inject 10:45:r3:xor@base_44:inject 11:47:r0:xor@base_38:inject 12:48:r2:xor@base_35:inject 13:51:r4:add@base_50:inject 14:53:r0:rotl@base_49:bijective 15:56:r5:sub@base_55:inject +igneum-ca3-v4-uniform/767 a6f23751b10604dc 0 0:0:0 1:0:0 2:0:0 3:1:0 4:2:0 5:2:1 6:1:1 7:0:0 8:2:1 9:1:0 10:0:0 11:1:0 12:0:0 13:0:0 14:2:0 15:2:0 4 0 0 2 2 0:2:r4:xor@base_0:inject 1:6:r7:mulhi@base_4:lossy 2:8:r1:load@base_2:inject 3:9:r7:load@base_8:inject 4:10:r5:sub@base_5:inject 5:16:r6:load@base_9:inject 6:17:r3:rotr@base_14:bijective 7:25:r1:mulhi@base_23:lossy 8:30:r4:shfl@base_21:inject 9:32:r6:rotl@base_31:bijective 10:41:r2:mul@base_37:lossy 11:43:r7:sub@base_40:inject 12:53:r5:rotl@base_36:bijective 13:54:r1:xor@base_51:inject 14:59:r0:xor@base_56:inject 15:61:r6:mul@base_60:lossy +igneum-ca3-v4-uniform/768 bc5d9ee3ec375910 0 0:0:0 1:1:0 2:1:1 3:0:0 4:1:0 5:0:0 6:2:0 7:2:1 8:1:1 9:2:1 10:1:0 11:1:1 12:2:3 13:0:0 14:1:0 15:2:3 3 2 0 0 1 0:4:r5:or@base_3:lossy 1:6:r2:sub@base_2:inject 2:10:r4:xor@base_7:inject 3:11:r7:sub@base_8:inject 4:14:r2:add@base_12:inject 5:28:r4:add@base_24:inject 6:30:r6:xor@base_17:inject 7:31:r5:mad@base_23:inject 8:34:r6:rotr@base_32:bijective 9:43:r4:xor@base_40:inject 10:45:r3:load@base_28:inject 11:49:r1:rotl@base_37:bijective 12:54:r6:or@base_46:lossy 13:56:r7:load@base_49:inject 14:57:r0:sub@base_52:inject 15:63:r4:mulhi@base_59:lossy +igneum-ca3-v4-uniform/769 43079e71d061722c 0 0:1:0 1:0:0 2:2:0 3:0:0 4:2:1 5:0:0 6:2:0 7:0:0 8:1:0 9:0:0 10:0:0 11:2:2 12:2:1 13:0:0 14:0:0 15:2:1 2 0 0 2 0 0:1:r1:mul@base_0:lossy 1:7:r2:mad@base_6:inject 2:17:r3:mul@base_2:lossy 3:19:r1:load@base_17:inject 4:26:r7:mad@base_22:inject 5:27:r2:add@base_14:inject 6:28:r0:load@base_27:inject 7:32:r6:xor@base_30:inject 8:33:r3:load@base_32:inject 9:37:r2:mad@base_36:inject 10:40:r5:load@base_28:inject 11:43:r6:add@base_42:inject 12:50:r5:add@base_49:inject 13:57:r0:mad@base_39:inject 14:60:r3:shfl@base_54:inject 15:63:r1:xor@base_61:inject +igneum-ca3-v4-uniform/770 95ba83f696493236 0 0:2:3 1:0:0 2:2:2 3:1:0 4:0:0 5:1:1 6:2:1 7:0:0 8:2:2 9:1:0 10:1:0 11:2:0 12:2:2 13:1:1 14:0:0 15:2:3 3 1 0 2 0 0:2:r6:shfl@base_1:inject 1:7:r3:add@base_4:inject 2:10:r7:mul@base_9:lossy 3:16:r0:load@base_10:inject 4:22:r2:xor@base_20:inject 5:27:r1:sub@base_21:inject 6:28:r7:rotl@base_19:bijective 7:31:r1:add@base_30:inject 8:39:r7:add@base_38:inject 9:43:r4:shfl@base_37:inject 10:45:r6:load@base_31:inject 11:46:r1:load@base_43:inject 12:47:r0:xor@base_34:inject 13:48:r5:or@base_44:lossy 14:54:r2:mul@base_53:lossy 15:57:r7:sub@base_51:inject +igneum-ca3-v4-uniform/771 a1cb386c543c1e2d 0 0:2:1 1:1:1 2:2:0 3:2:0 4:2:2 5:0:0 6:2:3 7:1:0 8:2:1 9:0:0 10:2:0 11:0:0 12:2:3 13:2:2 14:0:0 15:2:3 1 0 0 1 0 0:1:r7:shfl@base_0:inject 1:9:r2:load@base_1:inject 2:12:r7:load@base_9:inject 3:14:r2:shfl@base_11:inject 4:16:r4:sub@base_13:inject 5:28:r6:shfl@base_25:inject 6:31:r1:load@base_28:inject 7:39:r5:rotr@base_18:bijective 8:40:r0:rotl@base_23:bijective 9:42:r3:xor@base_19:inject 10:44:r6:load@base_31:inject 11:49:r7:mul@base_41:lossy 12:50:r2:load@base_39:inject 13:54:r1:load@base_50:inject 14:56:r6:load@base_54:inject 15:61:r0:add@base_57:inject +igneum-ca3-v4-uniform/772 1224152c8facba58 0 0:1:0 1:0:0 2:1:1 3:0:0 4:0:0 5:1:1 6:0:0 7:1:1 8:1:0 9:2:2 10:0:0 11:1:0 12:2:0 13:2:3 14:1:1 15:0:0 6 0 0 2 4 0:3:r1:mulhi@base_0:lossy 1:14:r6:sub@base_7:inject 2:19:r7:mul@base_5:lossy 3:22:r4:shfl@base_15:inject 4:28:r4:mad@base_27:inject 5:29:r2:rotr@base_24:bijective 6:35:r6:mad@base_31:inject 7:38:r7:load@base_35:inject 8:40:r4:mulhi@base_36:lossy 9:45:r7:mul@base_42:lossy 10:47:r1:load@base_38:inject 11:55:r5:mulhi@base_26:lossy 12:57:r0:mulhi@base_52:lossy 13:58:r4:xor@base_56:inject 14:62:r5:mad@base_60:inject 15:63:r2:load@base_57:inject +igneum-ca3-v4-uniform/773 c863fa27a50ff8fe 0 0:0:0 1:0:0 2:1:1 3:2:0 4:1:0 5:1:1 6:1:1 7:1:1 8:2:1 9:2:0 10:2:1 11:2:0 12:1:0 13:1:0 14:1:1 15:2:0 2 0 0 1 1 0:5:r6:xor@base_3:inject 1:8:r5:load@base_5:inject 2:9:r0:load@base_8:inject 3:10:r4:shfl@base_1:inject 4:12:r1:mul@base_0:lossy 5:13:r2:load@base_12:inject 6:21:r7:shfl@base_20:inject 7:38:r3:add@base_27:inject 8:44:r5:sub@base_37:inject 9:46:r0:xor@base_42:inject 10:48:r7:load@base_38:inject 11:49:r5:mulhi@base_47:lossy 12:51:r2:load@base_44:inject 13:54:r1:sub@base_30:inject 14:57:r4:sub@base_56:inject 15:58:r2:sub@base_55:inject +igneum-ca3-v4-uniform/774 70cb01b46a6fcee3 0 0:0:0 1:0:0 2:2:1 3:2:0 4:2:1 5:1:1 6:0:0 7:0:0 8:0:0 9:1:0 10:2:1 11:2:2 12:2:1 13:2:2 14:0:0 15:0:0 2 1 0 1 0 0:2:r0:add@base_0:inject 1:4:r6:load@base_2:inject 2:5:r4:mul@base_3:lossy 3:14:r6:or@base_13:lossy 4:21:r4:shfl@base_11:inject 5:24:r2:rotl@base_17:bijective 6:26:r5:mad@base_20:inject 7:28:r3:load@base_24:inject 8:30:r0:mad@base_27:inject 9:31:r2:load@base_28:inject 10:33:r3:load@base_30:inject 11:34:r4:add@base_32:inject 12:36:r5:load@base_31:inject 13:40:r4:rotr@base_39:bijective 14:47:r2:rotl@base_44:bijective 15:49:r4:load@base_47:inject +igneum-ca3-v4-uniform/775 05e152016fe920f5 0 0:0:0 1:2:0 2:0:0 3:0:0 4:0:0 5:0:0 6:1:0 7:2:2 8:2:0 9:0:0 10:1:1 11:2:1 12:0:0 13:1:1 14:1:1 15:1:0 3 2 2 0 1 0:6:r7:rotl@base_4:bijective 1:9:r6:add@base_8:inject 2:12:r1:shfl@base_7:inject 3:15:r3:mulhi@base_11:lossy 4:28:r2:rotr@base_25:bijective 5:29:r3:or@base_21:lossy-or-chain1 6:30:r7:add@base_20:inject 7:38:r6:add@base_33:inject 8:39:r2:add@base_36:inject 9:47:r2:mad@base_40:inject 10:52:r3:or@base_45:lossy-or-chain1 11:54:r7:load@base_47:inject 12:58:r2:xor@base_49:inject 13:59:r0:mad@base_50:inject 14:62:r2:rotl@base_61:bijective 15:63:r6:rotr@base_55:bijective +igneum-ca3-v4-uniform/776 b676749b5f0ce412 0 0:0:0 1:2:2 2:0:0 3:0:0 4:0:0 5:2:2 6:1:1 7:0:0 8:0:0 9:0:0 10:2:1 11:0:0 12:0:0 13:2:1 14:0:0 15:1:1 1 0 0 1 0 0:1:r3:rotl@base_0:bijective 1:2:r1:load@base_1:inject 2:5:r5:add@base_4:inject 3:6:r2:load@base_5:inject 4:7:r0:load@base_6:inject 5:13:r3:mul@base_8:lossy 6:15:r4:add@base_14:inject 7:16:r2:load@base_15:inject 8:29:r1:load@base_7:inject 9:52:r4:add@base_51:inject 10:55:r0:rotr@base_42:bijective 11:57:r3:shfl@base_50:inject 12:58:r6:xor@base_53:inject 13:61:r2:rotl@base_54:bijective 14:62:r6:rotl@base_60:bijective 15:63:r7:load@base_61:inject +igneum-ca3-v4-uniform/777 560745cc3543da68 0 0:2:0 1:2:1 2:0:0 3:1:0 4:1:1 5:0:0 6:0:0 7:0:0 8:2:1 9:2:1 10:2:0 11:0:0 12:1:1 13:2:0 14:0:0 15:2:3 4 1 0 3 0 0:2:r0:sub@base_0:inject 1:8:r3:mul@base_7:lossy 2:19:r5:load@base_2:inject 3:22:r0:shfl@base_16:inject 4:23:r7:sub@base_17:inject 5:25:r4:mul@base_12:lossy 6:37:r6:mul@base_21:lossy 7:39:r7:rotr@base_38:bijective 8:42:r7:or@base_40:lossy 9:44:r2:rotr@base_29:bijective 10:45:r5:load@base_42:inject 11:47:r0:shfl@base_34:inject 12:49:r1:sub@base_35:inject 13:53:r3:load@base_47:inject 14:54:r7:load@base_45:inject 15:59:r4:load@base_54:inject +igneum-ca3-v4-uniform/778 7c371159dfda0894 0 0:2:0 1:1:0 2:0:0 3:2:3 4:0:0 5:1:1 6:0:0 7:0:0 8:2:2 9:2:2 10:1:1 11:0:0 12:2:1 13:2:2 14:1:1 15:2:3 4 2 0 1 1 0:3:r2:mad@base_1:inject 1:7:r1:load@base_3:inject 2:9:r0:shfl@base_8:inject 3:11:r5:load@base_7:inject 4:12:r7:rotl@base_10:bijective 5:14:r6:or@base_2:lossy 6:16:r4:mulhi@base_15:lossy 7:17:r3:load@base_14:inject 8:18:r5:load@base_17:inject 9:19:r6:load@base_18:inject 10:28:r5:load@base_19:inject 11:29:r6:shfl@base_23:inject 12:35:r5:load@base_29:inject 13:48:r6:add@base_40:inject 14:49:r0:or@base_34:lossy 15:51:r7:mul@base_46:lossy +igneum-ca3-v4-uniform/779 f48f692fc1ce5e3d 0 0:1:0 1:2:2 2:1:1 3:2:0 4:0:0 5:1:1 6:1:0 7:1:0 8:2:1 9:0:0 10:1:1 11:0:0 12:0:0 13:2:0 14:1:0 15:2:1 4 1 0 2 1 0:7:r3:mul@base_3:lossy 1:12:r7:mad@base_9:inject 2:17:r6:shfl@base_14:inject 3:22:r4:add@base_20:inject 4:26:r0:add@base_23:inject 5:29:r1:load@base_26:inject 6:31:r4:rotl@base_30:bijective 7:40:r3:add@base_32:inject 8:43:r1:or@base_39:lossy 9:47:r2:add@base_45:inject 10:51:r6:mul@base_49:lossy 11:53:r0:mulhi@base_42:lossy 12:54:r2:load@base_51:inject 13:56:r3:mad@base_55:inject 14:59:r5:load@base_47:inject 15:63:r2:rotr@base_60:bijective +igneum-ca3-v4-uniform/780 ba6a7e2ea9e3baae 0 0:1:1 1:0:0 2:2:2 3:2:3 4:1:0 5:1:1 6:2:0 7:0:0 8:1:0 9:1:1 10:2:2 11:0:0 12:1:0 13:1:1 14:2:1 15:0:0 5 1 0 4 0 0:1:r6:or@base_0:lossy 1:19:r6:shfl@base_14:inject 2:21:r4:rotr@base_18:bijective 3:22:r5:load@base_21:inject 4:30:r0:mul@base_25:lossy 5:32:r6:load@base_30:inject 6:34:r4:rotr@base_33:bijective 7:37:r7:mul@base_31:lossy 8:43:r1:mad@base_42:inject 9:45:r5:mul@base_44:lossy 10:49:r0:sub@base_48:inject 11:50:r7:shfl@base_47:inject 12:55:r2:mul@base_53:lossy 13:56:r6:add@base_41:inject 14:57:r0:load@base_56:inject 15:61:r4:load@base_57:inject +igneum-ca3-v4-uniform/781 985cac65b0faf9a0 0 0:0:0 1:2:2 2:2:2 3:0:0 4:0:0 5:2:3 6:2:3 7:2:0 8:2:2 9:0:0 10:2:0 11:0:0 12:1:1 13:2:2 14:1:1 15:1:0 5 0 0 3 2 0:3:r4:mulhi@base_2:lossy 1:4:r3:load@base_3:inject 2:8:r6:mul@base_5:lossy 3:11:r5:load@base_4:inject 4:12:r3:load@base_11:inject 5:16:r1:load@base_12:inject 6:18:r4:rotr@base_15:bijective 7:22:r6:sub@base_19:inject 8:23:r7:add@base_9:inject 9:28:r4:mulhi@base_25:lossy 10:29:r3:load@base_22:inject 11:34:r6:mul@base_27:lossy 12:45:r6:rotl@base_43:bijective 13:47:r3:rotl@base_38:bijective 14:48:r4:mul@base_41:lossy 15:54:r2:xor@base_50:inject +igneum-ca3-v4-uniform/782 06711e61f7115d47 0 0:0:0 1:2:3 2:2:0 3:1:0 4:2:2 5:0:0 6:1:0 7:2:0 8:2:1 9:0:0 10:1:1 11:1:1 12:2:2 13:2:2 14:1:0 15:0:0 4 1 0 1 2 0:1:r5:rotr@base_0:bijective 1:6:r2:add@base_2:inject 2:9:r5:rotr@base_7:bijective 3:12:r7:sub@base_11:inject 4:15:r0:mulhi@base_13:lossy 5:24:r2:mul@base_23:lossy 6:31:r4:load@base_24:inject 7:34:r6:mulhi@base_32:lossy 8:35:r5:sub@base_30:inject 9:40:r3:xor@base_27:inject 10:45:r6:load@base_35:inject 11:51:r2:load@base_45:inject 12:56:r2:xor@base_55:inject 13:57:r5:load@base_56:inject 14:58:r3:rotr@base_43:bijective 15:60:r3:or@base_59:lossy +igneum-ca3-v4-uniform/783 116389bc0b14868c 0 0:1:0 1:2:0 2:1:0 3:0:0 4:2:1 5:1:0 6:1:1 7:1:1 8:2:1 9:0:0 10:0:0 11:1:1 12:1:1 13:2:3 14:0:0 15:1:0 4 1 0 3 0 0:1:r2:mul@base_0:lossy 1:5:r5:xor@base_2:inject 2:6:r7:load@base_5:inject 3:10:r2:mul@base_8:lossy 4:11:r0:sub@base_3:inject 5:13:r5:load@base_10:inject 6:16:r6:shfl@base_9:inject 7:22:r4:sub@base_21:inject 8:25:r3:rotl@base_23:bijective 9:29:r0:load@base_22:inject 10:36:r0:shfl@base_35:inject 11:43:r0:rotr@base_42:bijective 12:45:r3:or@base_33:lossy 13:52:r5:mul@base_40:lossy 14:56:r4:load@base_52:inject 15:58:r5:add@base_55:inject +igneum-ca3-v4-uniform/784 ec3aaed1bea9f097 0 0:0:0 1:1:0 2:0:0 3:0:0 4:0:0 5:0:0 6:0:0 7:1:1 8:1:1 9:1:0 10:2:2 11:1:0 12:2:3 13:1:1 14:2:1 15:2:3 4 0 0 2 2 0:4:r1:shfl@base_3:inject 1:5:r0:load@base_4:inject 2:8:r6:mul@base_7:lossy 3:9:r2:mad@base_1:inject 4:15:r2:sub@base_10:inject 5:24:r1:add@base_21:inject 6:27:r3:load@base_9:inject 7:33:r3:mad@base_31:inject 8:38:r4:load@base_33:inject 9:39:r7:add@base_28:inject 10:45:r7:mulhi@base_44:lossy 11:47:r3:add@base_36:inject 12:48:r7:mul@base_46:lossy 13:53:r6:mulhi@base_51:lossy 14:54:r3:load@base_48:inject 15:60:r7:load@base_54:inject +igneum-ca3-v4-uniform/785 79f63635286f8945 0 0:0:0 1:0:0 2:1:1 3:2:1 4:2:2 5:0:0 6:2:0 7:0:0 8:2:0 9:2:3 10:1:1 11:2:1 12:1:0 13:1:1 14:2:0 15:1:0 2 0 0 1 1 0:2:r6:add@base_0:inject 1:3:r3:load@base_2:inject 2:5:r0:load@base_3:inject 3:7:r2:add@base_1:inject 4:9:r3:mad@base_8:inject 5:14:r0:load@base_9:inject 6:18:r3:add@base_13:inject 7:22:r6:add@base_11:inject 8:28:r7:rotr@base_27:bijective 9:44:r5:mul@base_33:lossy 10:46:r4:mulhi@base_42:lossy 11:48:r1:rotl@base_41:bijective 12:51:r3:load@base_48:inject 13:53:r0:load@base_46:inject 14:58:r7:mad@base_47:inject 15:59:r2:load@base_53:inject +igneum-ca3-v4-uniform/786 018e0e8e35488885 0 0:0:0 1:0:0 2:0:0 3:2:1 4:0:0 5:0:0 6:0:0 7:0:0 8:1:0 9:2:2 10:1:1 11:0:0 12:0:0 13:0:0 14:1:1 15:2:1 3 0 0 1 2 0:1:r3:mul@base_0:lossy 1:4:r6:load@base_1:inject 2:6:r0:mulhi@base_5:lossy 3:8:r2:add@base_3:inject 4:10:r7:load@base_6:inject 5:11:r0:load@base_8:inject 6:17:r6:mulhi@base_12:lossy 7:24:r0:rotl@base_18:bijective 8:34:r2:mad@base_25:inject 9:36:r7:mad@base_31:inject 10:43:r4:add@base_26:inject 11:51:r2:add@base_46:inject 12:55:r6:shfl@base_48:inject 13:57:r7:load@base_55:inject 14:58:r5:load@base_51:inject 15:63:r0:load@base_57:inject +igneum-ca3-v4-uniform/787 1b905639bd24931d 0 0:1:0 1:0:0 2:1:1 3:0:0 4:2:3 5:2:0 6:1:0 7:0:0 8:2:0 9:2:3 10:0:0 11:0:0 12:1:0 13:2:1 14:1:1 15:2:0 3 0 0 1 2 0:1:r6:mulhi@base_0:lossy 1:6:r2:rotl@base_3:bijective 2:7:r0:load@base_1:inject 3:10:r6:mad@base_5:inject 4:16:r3:mulhi@base_14:lossy 5:18:r1:load@base_16:inject 6:24:r2:xor@base_13:inject 7:25:r0:mul@base_20:lossy 8:33:r1:shfl@base_30:inject 9:37:r6:rotr@base_34:bijective 10:39:r1:load@base_37:inject 11:44:r4:rotr@base_35:bijective 12:47:r7:xor@base_36:inject 13:48:r6:load@base_47:inject 14:49:r1:load@base_48:inject 15:60:r0:shfl@base_59:inject +igneum-ca3-v4-uniform/788 bb0320867d6df978 0 0:1:0 1:0:0 2:2:2 3:0:0 4:0:0 5:2:0 6:0:0 7:0:0 8:1:0 9:1:0 10:1:0 11:0:0 12:2:0 13:2:0 14:2:3 15:1:0 4 1 1 2 1 0:2:r4:mulhi@base_1:lossy 1:3:r1:load@base_2:inject 2:10:r4:rotl@base_4:bijective 3:12:r0:add@base_8:inject 4:17:r3:sub@base_15:inject 5:21:r6:rotr@base_20:bijective 6:26:r1:load@base_21:inject 7:43:r7:shfl@base_39:inject 8:44:r1:mad@base_35:inject 9:47:r6:rotl@base_29:bijective 10:49:r3:load@base_43:inject 11:51:r4:mad@base_48:inject 12:57:r5:load@base_47:inject 13:58:r0:or@base_56:lossy-or-chain1 14:59:r4:mul@base_54:lossy 15:60:r6:mul@base_52:lossy +igneum-ca3-v4-uniform/789 8b5de21cb1545b9a 0 0:0:0 1:2:1 2:0:0 3:1:0 4:2:3 5:2:1 6:2:1 7:1:1 8:1:1 9:1:1 10:2:2 11:0:0 12:1:1 13:0:0 14:1:1 15:2:2 0 0 0 0 0 0:4:r2:xor@base_2:inject 1:6:r1:xor@base_3:inject 2:7:r0:load@base_4:inject 3:13:r5:load@base_7:inject 4:14:r2:xor@base_12:inject 5:17:r7:xor@base_10:inject 6:20:r5:shfl@base_15:inject 7:26:r1:rotl@base_25:bijective 8:27:r4:load@base_13:inject 9:35:r3:shfl@base_31:inject 10:40:r7:load@base_26:inject 11:44:r3:mad@base_36:inject 12:56:r3:shfl@base_55:inject 13:59:r7:mad@base_57:inject 14:60:r0:shfl@base_52:inject 15:61:r4:load@base_60:inject +igneum-ca3-v4-uniform/790 bc62952da6e96122 0 0:1:1 1:0:0 2:0:0 3:0:0 4:2:3 5:0:0 6:0:0 7:0:0 8:0:0 9:0:0 10:2:2 11:2:3 12:2:0 13:1:1 14:0:0 15:1:0 3 1 0 0 2 0:2:r7:xor@base_0:inject 1:3:r0:load@base_2:inject 2:5:r0:add@base_4:inject 3:9:r4:mad@base_7:inject 4:11:r6:xor@base_10:inject 5:13:r5:mulhi@base_6:lossy 6:16:r4:add@base_14:inject 7:23:r6:load@base_13:inject 8:25:r7:rotl@base_21:bijective 9:26:r0:add@base_15:inject 10:36:r4:mulhi@base_33:lossy 11:49:r0:add@base_45:inject 12:51:r6:add@base_27:inject 13:52:r4:load@base_49:inject 14:60:r3:or@base_54:lossy 15:63:r2:add@base_48:inject +igneum-ca3-v4-uniform/791 e7ce66a8a2019d22 0 0:2:0 1:1:0 2:2:0 3:1:0 4:2:3 5:0:0 6:2:3 7:2:2 8:2:0 9:2:0 10:2:0 11:2:2 12:0:0 13:2:3 14:2:2 15:0:0 3 1 0 0 2 0:7:r1:mulhi@base_5:lossy 1:13:r3:mad@base_11:inject 2:16:r6:xor@base_4:inject 3:17:r2:load@base_16:inject 4:22:r0:or@base_21:lossy 5:25:r3:sub@base_24:inject 6:28:r5:load@base_13:inject 7:30:r3:load@base_28:inject 8:36:r0:shfl@base_26:inject 9:38:r7:xor@base_31:inject 10:41:r7:add@base_40:inject 11:43:r3:load@base_36:inject 12:48:r4:load@base_43:inject 13:58:r5:add@base_54:inject 14:59:r2:load@base_58:inject 15:63:r3:mulhi@base_61:lossy +igneum-ca3-v4-uniform/792 32219f247d7667b1 0 0:2:3 1:2:3 2:1:1 3:1:0 4:1:0 5:2:3 6:0:0 7:2:2 8:1:1 9:1:0 10:2:2 11:1:0 12:0:0 13:1:0 14:1:0 15:1:1 3 2 0 1 0 0:2:r7:shfl@base_1:inject 1:3:r0:load@base_2:inject 2:7:r0:rotr@base_4:bijective 3:15:r6:or@base_13:lossy 4:16:r1:load@base_15:inject 5:17:r6:load@base_16:inject 6:22:r4:load@base_17:inject 7:27:r6:xor@base_26:inject 8:28:r0:rotl@base_24:bijective 9:29:r2:load@base_27:inject 10:34:r7:or@base_32:lossy 11:40:r1:mul@base_33:lossy 12:41:r6:load@base_40:inject 13:51:r5:rotr@base_46:bijective 14:61:r4:xor@base_57:inject 15:63:r7:load@base_41:inject +igneum-ca3-v4-uniform/793 eb2a9d2fc9b7fea8 0 0:1:0 1:1:1 2:2:0 3:0:0 4:2:3 5:0:0 6:0:0 7:1:1 8:1:0 9:2:1 10:2:2 11:2:2 12:0:0 13:1:0 14:0:0 15:2:3 3 2 0 0 1 0:2:r0:sub@base_1:inject 1:4:r5:load@base_2:inject 2:7:r0:add@base_3:inject 3:10:r4:load@base_4:inject 4:14:r5:sub@base_11:inject 5:18:r0:mulhi@base_16:lossy 6:21:r1:mad@base_9:inject 7:24:r5:rotl@base_20:bijective 8:30:r6:xor@base_27:inject 9:42:r7:xor@base_39:inject 10:44:r0:or@base_43:lossy 11:46:r5:rotl@base_31:bijective 12:47:r0:load@base_46:inject 13:52:r7:or@base_48:lossy 14:57:r0:mad@base_53:inject 15:62:r1:sub@base_58:inject +igneum-ca3-v4-uniform/794 0ff06b988068f6a3 0 0:0:0 1:2:3 2:2:3 3:2:3 4:2:0 5:1:1 6:0:0 7:0:0 8:1:0 9:2:1 10:2:2 11:1:0 12:0:0 13:1:0 14:2:3 15:2:1 3 1 0 1 1 0:3:r2:or@base_2:lossy 1:4:r7:mul@base_1:lossy 2:5:r4:load@base_4:inject 3:10:r0:xor@base_6:inject 4:12:r1:load@base_10:inject 5:15:r5:shfl@base_9:inject 6:16:r2:load@base_15:inject 7:18:r0:load@base_12:inject 8:24:r5:xor@base_23:inject 9:26:r3:shfl@base_20:inject 10:30:r2:add@base_27:inject 11:31:r4:load@base_30:inject 12:34:r5:shfl@base_33:inject 13:49:r4:mulhi@base_40:lossy 14:55:r0:rotl@base_51:bijective 15:59:r6:rotl@base_57:bijective +igneum-ca3-v4-uniform/795 c4791b78c20e886f 0 0:0:0 1:1:0 2:2:0 3:1:1 4:0:0 5:0:0 6:2:1 7:2:3 8:1:1 9:1:0 10:2:2 11:2:3 12:1:1 13:1:0 14:1:0 15:0:0 3 1 0 0 2 0:4:r2:sub@base_3:inject 1:18:r6:add@base_6:inject 2:23:r3:rotl@base_21:bijective 3:32:r0:xor@base_27:inject 4:33:r5:mulhi@base_20:lossy 5:34:r1:or@base_30:lossy 6:35:r7:load@base_34:inject 7:40:r6:load@base_32:inject 8:42:r4:mulhi@base_39:lossy 9:44:r5:load@base_42:inject 10:45:r2:shfl@base_43:inject 11:47:r6:load@base_44:inject 12:49:r2:load@base_47:inject 13:52:r0:add@base_46:inject 14:53:r2:mad@base_50:inject 15:55:r5:load@base_53:inject +igneum-ca3-v4-uniform/796 edeb0a475962290f 0 0:1:0 1:0:0 2:0:0 3:1:0 4:2:2 5:0:0 6:0:0 7:0:0 8:1:1 9:1:0 10:0:0 11:0:0 12:2:2 13:1:1 14:1:1 15:0:0 1 1 0 0 0 0:3:r1:add@base_1:inject 1:4:r5:rotr@base_0:bijective 2:7:r6:mad@base_5:inject 3:15:r6:rotr@base_12:bijective 4:19:r0:mad@base_16:inject 5:25:r6:load@base_19:inject 6:29:r0:sub@base_23:inject 7:34:r2:load@base_25:inject 8:36:r4:add@base_24:inject 9:37:r1:add@base_35:inject 10:40:r5:mad@base_39:inject 11:51:r6:or@base_49:lossy 12:53:r4:mad@base_48:inject 13:54:r2:load@base_51:inject 14:55:r1:load@base_54:inject 15:59:r3:load@base_53:inject +igneum-ca3-v4-uniform/797 beedf4dcd07c0424 0 0:0:0 1:1:1 2:2:3 3:2:2 4:2:0 5:0:0 6:2:3 7:0:0 8:1:0 9:2:1 10:0:0 11:0:0 12:0:0 13:2:0 14:0:0 15:0:0 2 1 0 1 0 0:11:r4:xor@base_8:inject 1:12:r3:add@base_9:inject 2:17:r7:load@base_12:inject 3:22:r6:rotl@base_21:bijective 4:23:r1:shfl@base_18:inject 5:28:r3:sub@base_25:inject 6:30:r6:load@base_28:inject 7:36:r6:add@base_33:inject 8:38:r2:rotr@base_35:bijective 9:40:r6:load@base_38:inject 10:48:r6:shfl@base_42:inject 11:49:r3:add@base_37:inject 12:53:r7:mul@base_51:lossy 13:55:r3:or@base_54:lossy 14:59:r5:load@base_55:inject 15:62:r0:shfl@base_47:inject +igneum-ca3-v4-uniform/798 810d49e05dd07848 0 0:2:0 1:0:0 2:0:0 3:1:0 4:2:3 5:0:0 6:1:1 7:1:1 8:1:1 9:1:1 10:0:0 11:0:0 12:2:0 13:1:0 14:0:0 15:0:0 1 0 0 0 1 0:3:r6:rotr@base_1:bijective 1:5:r1:load@base_3:inject 2:20:r6:xor@base_13:inject 3:21:r5:shfl@base_15:inject 4:26:r6:xor@base_22:inject 5:27:r4:load@base_20:inject 6:29:r3:add@base_28:inject 7:30:r5:sub@base_23:inject 8:35:r2:load@base_30:inject 9:37:r4:load@base_35:inject 10:40:r3:mulhi@base_33:lossy 11:43:r0:rotl@base_24:bijective 12:48:r2:xor@base_44:inject 13:51:r4:xor@base_47:inject 14:54:r1:sub@base_53:inject 15:62:r7:mad@base_61:inject +igneum-ca3-v4-uniform/799 42589abc9ac84ae2 0 0:2:0 1:2:0 2:2:3 3:0:0 4:1:0 5:0:0 6:1:0 7:2:0 8:2:3 9:2:0 10:2:0 11:1:1 12:1:1 13:1:0 14:2:3 15:2:3 2 0 0 2 0 0:2:r1:add@base_0:inject 1:4:r2:shfl@base_3:inject 2:5:r0:load@base_4:inject 3:11:r5:shfl@base_10:inject 4:16:r3:add@base_15:inject 5:18:r5:load@base_16:inject 6:20:r1:sub@base_19:inject 7:23:r2:rotl@base_17:bijective 8:26:r7:xor@base_22:inject 9:34:r7:mul@base_32:lossy 10:41:r0:sub@base_33:inject 11:42:r3:mul@base_40:lossy 12:47:r1:rotl@base_29:bijective 13:49:r2:add@base_43:inject 14:62:r2:rotl@base_54:bijective 15:63:r4:shfl@base_61:inject +igneum-ca3-v4-uniform/800 63e7d3edeff3ec34 0 0:1:1 1:0:0 2:0:0 3:2:0 4:2:2 5:1:0 6:1:1 7:2:1 8:0:0 9:1:1 10:1:0 11:1:0 12:1:1 13:1:1 14:1:0 15:2:1 2 0 0 2 0 0:1:r7:add@base_0:inject 1:4:r1:add@base_2:inject 2:5:r2:add@base_3:inject 3:12:r5:rotr@base_11:bijective 4:17:r1:shfl@base_13:inject 5:18:r4:load@base_12:inject 6:25:r3:xor@base_20:inject 7:28:r6:xor@base_27:inject 8:35:r0:rotr@base_33:bijective 9:38:r1:mul@base_30:lossy 10:42:r5:mul@base_36:lossy 11:43:r1:rotr@base_39:bijective 12:49:r3:load@base_42:inject 13:51:r2:rotr@base_46:bijective 14:55:r7:add@base_53:inject 15:57:r1:shfl@base_52:inject +igneum-ca3-v4-uniform/801 ffac92346a894a0c 0 0:2:0 1:1:0 2:2:3 3:2:2 4:1:0 5:0:0 6:2:2 7:2:2 8:0:0 9:0:0 10:2:3 11:1:1 12:2:2 13:1:0 14:2:1 15:0:0 4 0 0 1 3 0:4:r5:rotr@base_0:bijective 1:6:r4:load@base_4:inject 2:8:r6:load@base_6:inject 3:14:r7:load@base_8:inject 4:15:r0:mul@base_7:lossy 5:25:r3:shfl@base_24:inject 6:28:r5:xor@base_18:inject 7:31:r4:shfl@base_19:inject 8:38:r0:mulhi@base_37:lossy 9:41:r0:mulhi@base_39:lossy 10:44:r5:add@base_40:inject 11:46:r7:mad@base_32:inject 12:49:r3:rotl@base_48:bijective 13:51:r4:mulhi@base_35:lossy 14:56:r7:rotr@base_52:bijective 15:63:r0:load@base_56:inject +igneum-ca3-v4-uniform/802 cb3729bcf40ad2e3 0 0:1:0 1:0:0 2:1:1 3:0:0 4:0:0 5:0:0 6:2:3 7:1:1 8:0:0 9:1:0 10:0:0 11:2:3 12:2:2 13:0:0 14:0:0 15:2:0 4 2 1 1 1 0:2:r6:or@base_1:lossy-or-chain1 1:11:r4:mad@base_10:inject 2:14:r1:mad@base_12:inject 3:18:r2:load@base_14:inject 4:20:r5:rotr@base_19:bijective 5:25:r6:sub@base_22:inject 6:28:r1:add@base_24:inject 7:29:r0:add@base_15:inject 8:35:r3:or@base_17:lossy 9:36:r0:load@base_35:inject 10:37:r7:rotl@base_31:bijective 11:51:r0:shfl@base_42:inject 12:55:r4:add@base_44:inject 13:56:r6:load@base_55:inject 14:61:r1:mulhi@base_41:lossy 15:62:r4:mul@base_60:lossy +igneum-ca3-v4-uniform/803 3c6e9a1912d76262 0 0:2:0 1:1:0 2:1:1 3:0:0 4:1:1 5:1:1 6:0:0 7:1:1 8:0:0 9:2:0 10:1:1 11:2:1 12:0:0 13:0:0 14:2:0 15:1:1 1 0 0 1 0 0:2:r2:shfl@base_0:inject 1:3:r3:mad@base_1:inject 2:6:r0:load@base_2:inject 3:7:r2:load@base_3:inject 4:19:r3:mad@base_13:inject 5:26:r7:sub@base_25:inject 6:28:r5:mad@base_15:inject 7:34:r3:load@base_26:inject 8:35:r0:load@base_34:inject 9:39:r4:mul@base_33:lossy 10:40:r3:xor@base_37:inject 11:51:r1:add@base_50:inject 12:58:r4:rotl@base_46:bijective 13:61:r2:sub@base_59:inject 14:62:r3:sub@base_55:inject 15:63:r6:shfl@base_60:inject +igneum-ca3-v4-uniform/804 412dd7f46cdbd46b 0 0:1:0 1:1:0 2:1:1 3:0:0 4:2:0 5:0:0 6:1:1 7:1:1 8:2:2 9:0:0 10:1:1 11:2:3 12:0:0 13:0:0 14:1:1 15:1:0 3 0 0 2 1 0:1:r5:rotl@base_0:bijective 1:9:r3:add@base_3:inject 2:14:r7:mul@base_11:lossy 3:17:r4:mul@base_6:lossy 4:18:r0:load@base_14:inject 5:19:r6:load@base_17:inject 6:21:r6:add@base_20:inject 7:24:r5:mulhi@base_15:lossy 8:28:r2:load@base_24:inject 9:29:r7:add@base_25:inject 10:31:r5:mad@base_27:inject 11:37:r3:xor@base_32:inject 12:39:r2:mad@base_36:inject 13:43:r0:load@base_39:inject 14:58:r0:sub@base_50:inject 15:60:r3:xor@base_55:inject +igneum-ca3-v4-uniform/805 b1008332b54cfe24 0 0:0:0 1:0:0 2:0:0 3:2:0 4:2:0 5:1:1 6:2:1 7:1:1 8:1:1 9:1:1 10:1:0 11:2:3 12:0:0 13:0:0 14:1:1 15:0:0 2 1 0 0 1 0:4:r3:xor@base_0:inject 1:8:r6:load@base_4:inject 2:16:r4:or@base_15:lossy 3:19:r3:rotr@base_14:bijective 4:21:r1:add@base_3:inject 5:22:r4:load@base_19:inject 6:23:r6:load@base_21:inject 7:24:r0:rotl@base_13:bijective 8:26:r2:rotr@base_17:bijective 9:29:r0:rotr@base_25:bijective 10:33:r7:add@base_32:inject 11:34:r2:mulhi@base_31:lossy 12:38:r6:load@base_26:inject 13:49:r0:shfl@base_42:inject 14:54:r5:load@base_49:inject 15:56:r3:sub@base_55:inject +igneum-ca3-v4-uniform/806 99aec11fa29fbaf6 0 0:0:0 1:2:2 2:0:0 3:1:0 4:0:0 5:0:0 6:0:0 7:1:0 8:2:1 9:2:0 10:1:1 11:1:1 12:2:0 13:0:0 14:1:1 15:1:0 1 1 0 0 0 0:4:r0:or@base_3:lossy 1:5:r5:load@base_4:inject 2:8:r1:load@base_5:inject 3:13:r2:add@base_10:inject 4:18:r1:load@base_13:inject 5:21:r2:xor@base_14:inject 6:24:r0:add@base_22:inject 7:30:r3:add@base_25:inject 8:39:r4:xor@base_37:inject 9:44:r2:sub@base_40:inject 10:45:r3:mad@base_36:inject 11:48:r4:shfl@base_46:inject 12:50:r3:load@base_48:inject 13:53:r1:load@base_50:inject 14:60:r7:xor@base_57:inject 15:61:r0:add@base_58:inject +igneum-ca3-v4-uniform/807 fc487a920f075a6e 0 0:0:0 1:0:0 2:2:3 3:0:0 4:0:0 5:2:1 6:1:1 7:2:3 8:2:0 9:0:0 10:2:1 11:2:2 12:2:1 13:0:0 14:0:0 15:2:0 3 1 0 1 1 0:3:r3:or@base_0:lossy 1:13:r6:rotl@base_9:bijective 2:16:r5:add@base_11:inject 3:20:r1:rotl@base_17:bijective 4:23:r2:mulhi@base_15:lossy 5:26:r7:shfl@base_18:inject 6:38:r6:rotr@base_29:bijective 7:41:r3:load@base_26:inject 8:44:r5:add@base_32:inject 9:45:r7:mul@base_43:lossy 10:46:r0:mad@base_36:inject 11:50:r2:load@base_45:inject 12:53:r5:mad@base_52:inject 13:57:r1:load@base_53:inject 14:60:r3:sub@base_47:inject 15:63:r2:load@base_57:inject +igneum-ca3-v4-uniform/808 8d5c5e01c647bfea 0 0:2:2 1:1:1 2:1:0 3:1:1 4:0:0 5:2:1 6:2:3 7:1:1 8:0:0 9:1:0 10:1:0 11:1:0 12:0:0 13:0:0 14:0:0 15:0:0 5 2 1 2 1 0:3:r6:mul@base_0:lossy 1:4:r3:sub@base_2:inject 2:10:r7:sub@base_5:inject 3:13:r1:load@base_10:inject 4:15:r6:mulhi@base_11:lossy 5:16:r4:or@base_14:lossy 6:18:r7:load@base_15:inject 7:36:r5:rotr@base_33:bijective 8:41:r6:rotl@base_35:bijective 9:48:r1:rotr@base_45:bijective 10:49:r7:mul@base_47:lossy 11:54:r6:mad@base_52:inject 12:57:r3:add@base_53:inject 13:59:r0:shfl@base_50:inject 14:61:r2:or@base_56:lossy-or-chain1 15:63:r1:load@base_54:inject +igneum-ca3-v4-uniform/809 edb524fb6afd4e37 0 0:1:1 1:0:0 2:2:0 3:2:1 4:0:0 5:2:1 6:2:1 7:1:1 8:2:3 9:2:0 10:1:1 11:1:1 12:2:0 13:1:1 14:1:1 15:0:0 3 0 0 2 1 0:1:r3:mulhi@base_0:lossy 1:3:r1:sub@shadow_251:inject 2:8:r7:mad@base_6:inject 3:14:r6:rotr@base_13:bijective 4:15:r5:load@base_14:inject 5:17:r3:load@base_15:inject 6:18:r1:load@base_17:inject 7:22:r2:sub@base_10:inject 8:25:r7:xor@base_23:inject 9:26:r0:add@base_21:inject 10:28:r2:mul@base_27:lossy 11:33:r4:xor@base_31:inject 12:37:r1:load@base_28:inject 13:46:r1:shfl@base_42:inject 14:48:r2:mul@base_38:lossy 15:51:r5:rotl@base_44:bijective +igneum-ca3-v4-uniform/810 04a166f00b994315 0 0:0:0 1:1:1 2:0:0 3:2:0 4:2:0 5:0:0 6:0:0 7:0:0 8:0:0 9:2:2 10:2:2 11:0:0 12:1:1 13:0:0 14:1:0 15:1:0 2 1 0 1 0 0:1:r1:or@base_0:lossy 1:4:r5:rotl@base_2:bijective 2:9:r3:xor@base_6:inject 3:16:r0:mad@base_14:inject 4:17:r6:load@base_16:inject 5:21:r3:add@base_13:inject 6:26:r1:load@base_21:inject 7:27:r0:load@base_26:inject 8:32:r4:mad@base_20:inject 9:34:r5:load@base_17:inject 10:36:r3:sub@base_30:inject 11:37:r2:load@base_36:inject 12:46:r1:mul@base_40:lossy 13:52:r6:load@base_37:inject 14:55:r4:xor@base_53:inject 15:61:r3:rotl@base_56:bijective +igneum-ca3-v4-uniform/811 19d9b30d0c1d84e6 0 0:2:1 1:2:0 2:2:3 3:2:0 4:0:0 5:1:1 6:0:0 7:1:1 8:0:0 9:0:0 10:2:0 11:0:0 12:2:0 13:2:1 14:1:0 15:1:1 2 0 0 2 0 0:1:r0:mul@base_0:lossy 1:5:r1:load@base_1:inject 2:15:r4:mul@base_10:lossy 3:19:r0:load@base_15:inject 4:21:r5:mad@base_11:inject 5:28:r2:rotl@base_23:bijective 6:33:r1:rotr@base_18:bijective 7:40:r1:add@base_35:inject 8:43:r6:load@base_40:inject 9:44:r3:add@base_41:inject 10:45:r4:load@base_43:inject 11:48:r5:load@base_33:inject 12:55:r0:xor@base_42:inject 13:59:r7:shfl@base_52:inject 14:60:r6:add@base_56:inject 15:61:r7:load@base_60:inject +igneum-ca3-v4-uniform/812 278430af56366a49 0 0:2:2 1:2:2 2:2:2 3:2:2 4:0:0 5:2:0 6:0:0 7:0:0 8:1:1 9:2:0 10:1:0 11:0:0 12:2:2 13:2:2 14:1:0 15:1:0 4 0 0 3 1 0:2:r7:add@base_1:inject 1:7:r1:add@base_3:inject 2:18:r3:mad@base_14:inject 3:22:r6:shfl@base_16:inject 4:29:r2:mulhi@base_28:lossy 5:31:r3:xor@base_24:inject 6:32:r0:load@base_31:inject 7:38:r2:mul@base_36:lossy 8:39:r5:load@base_38:inject 9:40:r4:mul@base_27:lossy 10:43:r3:mul@base_37:lossy 11:44:r1:load@base_43:inject 12:47:r0:add@base_46:inject 13:50:r6:load@base_47:inject 14:54:r6:mad@base_52:inject 15:61:r0:shfl@base_59:inject +igneum-ca3-v4-uniform/813 d84cc1235e86d335 0 0:1:0 1:1:1 2:0:0 3:2:2 4:1:1 5:0:0 6:2:1 7:1:1 8:0:0 9:2:3 10:2:0 11:2:1 12:2:0 13:1:1 14:0:0 15:0:0 2 1 0 1 0 0:5:r2:add@base_2:inject 1:9:r2:rotr@base_8:bijective 2:11:r3:sub@base_10:inject 3:12:r5:or@base_1:lossy 4:16:r7:add@base_15:inject 5:17:r0:load@base_16:inject 6:21:r0:mad@base_18:inject 7:26:r3:rotl@base_23:bijective 8:28:r0:mul@base_27:lossy 9:42:r3:mad@base_38:inject 10:47:r2:mad@base_40:inject 11:48:r3:load@base_47:inject 12:52:r0:xor@base_33:inject 13:54:r7:add@base_39:inject 14:60:r3:xor@base_53:inject 15:62:r5:xor@base_57:inject +igneum-ca3-v4-uniform/814 676a13406f67eb19 0 0:2:3 1:1:0 2:2:2 3:0:0 4:1:1 5:2:3 6:0:0 7:2:2 8:1:0 9:1:0 10:1:0 11:2:2 12:1:1 13:2:2 14:2:2 15:2:2 4 3 0 1 0 0:2:r0:or@base_1:lossy 1:7:r5:add@base_6:inject 2:15:r0:mul@base_8:lossy 3:19:r7:add@base_17:inject 4:23:r1:rotr@base_16:bijective 5:29:r6:xor@base_27:inject 6:32:r5:load@base_23:inject 7:40:r0:add@base_39:inject 8:43:r5:or@base_35:lossy 9:45:r6:load@base_43:inject 10:46:r7:shfl@base_38:inject 11:49:r0:load@base_46:inject 12:52:r5:load@base_49:inject 13:59:r3:or@base_54:lossy 14:60:r7:xor@base_58:inject 15:63:r4:load@base_59:inject +igneum-ca3-v4-uniform/815 7d249f1a9fcca776 0 0:1:0 1:0:0 2:0:0 3:1:1 4:1:1 5:1:1 6:2:2 7:2:3 8:0:0 9:1:1 10:2:3 11:1:0 12:2:0 13:2:1 14:1:1 15:1:1 1 0 0 0 1 0:3:r6:mad@base_0:inject 1:5:r4:rotl@base_2:bijective 2:8:r5:add@base_4:inject 3:16:r0:shfl@base_15:inject 4:17:r7:load@base_16:inject 5:24:r4:sub@base_14:inject 6:25:r2:mad@base_9:inject 7:29:r1:mad@base_22:inject 8:34:r1:add@base_33:inject 9:35:r6:load@base_34:inject 10:39:r7:add@base_36:inject 11:43:r3:add@base_31:inject 12:51:r5:mulhi@base_47:lossy 13:52:r3:rotl@base_45:bijective 14:60:r2:rotl@base_55:bijective 15:62:r4:xor@base_58:inject +igneum-ca3-v4-uniform/816 d4175693d8da367a 0 0:0:0 1:0:0 2:0:0 3:1:0 4:0:0 5:2:2 6:1:1 7:2:1 8:2:1 9:1:0 10:0:0 11:1:0 12:0:0 13:0:0 14:0:0 15:0:0 2 1 0 0 1 0:1:r7:rotl@base_0:bijective 1:6:r2:mulhi@base_2:lossy 2:17:r6:sub@base_9:inject 3:18:r1:load@base_17:inject 4:19:r7:shfl@base_15:inject 5:25:r3:shfl@base_23:inject 6:28:r2:rotl@base_27:bijective 7:35:r1:rotr@base_24:bijective 8:36:r5:or@base_5:lossy 9:37:r7:mad@base_33:inject 10:43:r6:add@base_39:inject 11:45:r0:load@base_18:inject 12:52:r6:mad@base_50:inject 13:53:r2:shfl@base_51:inject 14:54:r7:mad@base_48:inject 15:61:r7:rotr@base_59:bijective +igneum-ca3-v4-uniform/817 12b65965bc7c2caa 0 0:0:0 1:2:3 2:2:3 3:1:0 4:1:0 5:1:1 6:2:3 7:2:2 8:0:0 9:2:3 10:1:0 11:1:1 12:2:1 13:1:0 14:1:1 15:0:0 6 1 0 1 4 0:4:r0:mulhi@base_2:lossy 1:5:r6:load@base_4:inject 2:7:r5:shfl@base_3:inject 3:9:r4:add@base_8:inject 4:21:r3:xor@base_11:inject 5:23:r0:load@base_21:inject 6:26:r5:mulhi@base_25:lossy 7:27:r2:or@base_18:lossy 8:30:r1:mad@base_22:inject 9:36:r7:mulhi@base_34:lossy 10:42:r4:mulhi@base_37:lossy 11:47:r5:mul@base_44:lossy 12:48:r3:add@base_46:inject 13:53:r5:load@base_48:inject 14:55:r0:load@base_53:inject 15:59:r7:xor@base_58:inject +igneum-ca3-v4-uniform/818 ab75c11660a52c07 0 0:0:0 1:1:1 2:0:0 3:2:0 4:2:1 5:2:0 6:1:1 7:0:0 8:0:0 9:2:1 10:0:0 11:1:0 12:1:0 13:1:1 14:0:0 15:1:0 2 1 0 1 0 0:1:r3:or@base_0:lossy 1:3:r3:shfl@base_2:inject 2:8:r6:shfl@base_6:inject 3:10:r7:load@base_3:inject 4:14:r2:load@base_8:inject 5:20:r1:rotr@base_9:bijective 6:27:r5:sub@base_25:inject 7:34:r3:mul@base_33:lossy 8:38:r6:xor@base_32:inject 9:40:r0:shfl@base_39:inject 10:44:r2:shfl@base_22:inject 11:47:r0:xor@base_41:inject 12:48:r6:add@base_43:inject 13:51:r1:sub@base_46:inject 14:61:r7:shfl@base_59:inject 15:62:r1:rotr@base_57:bijective +igneum-ca3-v4-uniform/819 2d5dd1b3fb18844b 0 0:1:0 1:1:0 2:0:0 3:0:0 4:2:0 5:2:3 6:0:0 7:2:0 8:0:0 9:0:0 10:0:0 11:2:1 12:0:0 13:2:1 14:0:0 15:0:0 2 0 0 1 1 0:1:r4:add@base_0:inject 1:10:r1:xor@base_8:inject 2:11:r5:mulhi@base_5:lossy 3:18:r2:rotr@base_13:bijective 4:19:r1:xor@base_17:inject 5:25:r7:add@base_20:inject 6:31:r1:add@base_27:inject 7:41:r0:mad@base_39:inject 8:44:r7:rotl@base_30:bijective 9:45:r3:load@base_44:inject 10:46:r4:add@base_26:inject 11:49:r1:sub@base_34:inject 12:50:r0:mul@base_48:lossy 13:53:r7:load@base_50:inject 14:54:r1:load@base_53:inject 15:57:r4:xor@base_55:inject +igneum-ca3-v4-uniform/820 9dc3fdd8024bc43c 1 0:1:0 1:0:0 2:1:0 3:1:1 4:0:0 5:1:1 6:2:2 7:1:0 8:2:1 9:0:0 10:1:0 11:2:1 12:1:0 13:2:2 14:2:3 15:2:2 3 0 0 1 2 0:5:r1:sub@base_1:inject 1:11:r6:mulhi@base_4:lossy 2:13:r1:add@base_10:inject 3:21:r3:mulhi@base_17:lossy 4:22:r1:load@base_21:inject 5:25:r0:add@base_19:inject 6:28:r6:mul@base_26:lossy 7:44:r3:sub@base_43:inject 8:46:r4:load@base_22:inject 9:49:r0:add@base_47:inject 10:50:r4:load@base_49:inject 11:52:r2:load@base_46:inject 12:56:r5:load@base_44:inject 13:58:r3:add@base_55:inject 14:62:r2:mad@base_59:inject 15:63:r7:load@base_62:inject +igneum-ca3-v4-uniform/821 35a44cd7f81ecaa0 0 0:2:2 1:0:0 2:2:2 3:2:0 4:1:1 5:2:0 6:1:1 7:1:0 8:0:0 9:1:1 10:1:1 11:1:0 12:1:0 13:1:1 14:0:0 15:1:0 5 0 0 3 2 0:10:r0:rotl@base_9:bijective 1:16:r2:mul@base_14:lossy 2:22:r2:mul@base_17:lossy 3:23:r1:shfl@base_21:inject 4:25:r0:rotr@base_19:bijective 5:29:r1:mulhi@base_28:lossy 6:32:r7:load@base_29:inject 7:33:r4:xor@base_31:inject 8:34:r0:shfl@base_30:inject 9:35:r6:load@base_33:inject 10:41:r6:rotr@base_37:bijective 11:48:r1:mulhi@base_38:lossy 12:52:r7:shfl@base_50:inject 13:55:r0:add@base_49:inject 14:56:r3:mul@base_44:lossy 15:61:r4:load@base_56:inject +igneum-ca3-v4-uniform/822 bcc1a53503927398 0 0:1:1 1:0:0 2:1:1 3:2:3 4:2:3 5:1:1 6:2:1 7:0:0 8:1:0 9:0:0 10:2:2 11:0:0 12:1:0 13:0:0 14:2:1 15:0:0 2 0 0 2 0 0:3:r3:add@base_1:inject 1:6:r5:load@base_3:inject 2:9:r7:sub@base_2:inject 3:14:r2:rotr@base_8:bijective 4:15:r4:xor@base_12:inject 5:16:r5:mad@base_11:inject 6:17:r3:load@base_14:inject 7:30:r3:rotr@base_27:bijective 8:43:r7:mul@base_40:lossy 9:52:r3:xor@base_51:inject 10:54:r4:mul@base_26:lossy 11:55:r5:load@base_52:inject 12:56:r1:load@base_30:inject 13:59:r5:shfl@base_58:inject 14:62:r7:load@base_55:inject 15:63:r0:load@base_62:inject +igneum-ca3-v4-uniform/823 dac208e704a84f73 0 0:1:0 1:2:1 2:1:0 3:0:0 4:2:2 5:0:0 6:2:3 7:2:3 8:2:0 9:0:0 10:0:0 11:1:1 12:1:1 13:0:0 14:1:0 15:1:0 0 0 0 0 0 0:5:r6:sub@base_1:inject 1:6:r4:add@base_4:inject 2:9:r6:load@base_6:inject 3:10:r4:load@base_9:inject 4:11:r2:mad@base_3:inject 5:22:r4:xor@base_20:inject 6:24:r6:rotl@base_14:bijective 7:25:r5:load@base_24:inject 8:28:r4:load@base_25:inject 9:36:r5:rotr@base_32:bijective 10:37:r2:shfl@base_34:inject 11:41:r7:rotl@base_39:bijective 12:42:r0:load@base_37:inject 13:49:r1:sub@base_48:inject 14:51:r3:add@base_45:inject 15:54:r5:rotl@base_52:bijective +igneum-ca3-v4-uniform/824 f3f10476f01dd644 0 0:1:1 1:1:1 2:2:0 3:1:1 4:1:1 5:1:0 6:2:0 7:1:0 8:1:0 9:1:1 10:2:1 11:2:1 12:2:0 13:0:0 14:0:0 15:2:2 4 2 0 0 2 0:3:r6:sub@base_2:inject 1:5:r5:load@base_3:inject 2:8:r6:load@base_5:inject 3:13:r7:mulhi@base_9:lossy 4:16:r4:rotr@base_14:bijective 5:18:r1:shfl@base_15:inject 6:20:r5:load@base_13:inject 7:27:r2:xor@base_25:inject 8:30:r3:shfl@base_11:inject 9:32:r4:mulhi@base_21:lossy 10:37:r5:or@base_36:lossy 11:48:r3:add@base_31:inject 12:52:r0:sub@base_38:inject 13:54:r2:or@base_41:lossy 14:55:r4:shfl@base_47:inject 15:61:r7:sub@base_59:inject +igneum-ca3-v4-uniform/825 7542e89a13cdb63f 0 0:2:1 1:1:0 2:2:0 3:0:0 4:1:0 5:0:0 6:2:2 7:2:1 8:2:2 9:1:1 10:1:1 11:0:0 12:2:0 13:1:1 14:0:0 15:0:0 2 0 0 1 1 0:4:r4:rotl@base_2:bijective 1:5:r7:add@base_1:inject 2:8:r2:shfl@base_7:inject 3:10:r6:load@base_4:inject 4:14:r0:mulhi@base_13:lossy 5:16:r1:add@base_12:inject 6:17:r2:load@base_14:inject 7:19:r7:load@base_17:inject 8:24:r5:load@base_8:inject 9:31:r3:rotl@base_23:bijective 10:36:r2:xor@base_33:inject 11:43:r1:load@base_31:inject 12:47:r6:mul@base_40:lossy 13:53:r3:add@base_41:inject 14:56:r1:sub@base_50:inject 15:58:r0:load@base_56:inject +igneum-ca3-v4-uniform/826 dc1546f933be9cae 0 0:1:0 1:2:1 2:1:1 3:1:0 4:1:1 5:0:0 6:1:1 7:2:0 8:1:0 9:1:1 10:0:0 11:2:3 12:0:0 13:2:2 14:0:0 15:2:0 1 0 0 0 1 0:7:r0:rotr@base_2:bijective 1:8:r2:rotl@base_6:bijective 2:9:r1:add@base_0:inject 3:21:r3:shfl@base_4:inject 4:23:r2:add@base_19:inject 5:24:r5:load@base_23:inject 6:29:r5:sub@base_28:inject 7:35:r0:add@base_33:inject 8:37:r7:xor@base_36:inject 9:41:r7:mulhi@base_40:lossy 10:44:r6:add@base_42:inject 11:46:r4:mad@base_38:inject 12:56:r4:rotr@base_54:bijective 13:61:r2:xor@base_59:inject 14:62:r3:rotl@base_49:bijective 15:63:r6:shfl@base_57:inject +igneum-ca3-v4-uniform/827 9e91a62a29e32b37 0 0:1:0 1:0:0 2:0:0 3:2:3 4:2:0 5:2:0 6:0:0 7:2:2 8:0:0 9:1:0 10:2:2 11:1:0 12:1:1 13:0:0 14:0:0 15:2:0 2 0 0 2 0 0:2:r4:xor@base_0:inject 1:4:r6:load@base_2:inject 2:14:r1:mul@base_13:lossy 3:18:r3:load@base_14:inject 4:24:r2:mul@base_17:lossy 5:36:r2:mad@base_30:inject 6:38:r3:xor@base_28:inject 7:46:r5:xor@base_45:inject 8:48:r5:add@base_47:inject 9:49:r0:load@base_48:inject 10:53:r6:sub@base_44:inject 11:54:r3:load@base_46:inject 12:56:r0:load@base_54:inject 13:58:r1:load@base_56:inject 14:60:r5:shfl@base_55:inject 15:61:r2:rotl@base_43:bijective +igneum-ca3-v4-uniform/828 1687e129461fe6e5 0 0:1:1 1:2:2 2:1:0 3:2:0 4:1:1 5:2:1 6:0:0 7:1:0 8:1:1 9:1:0 10:0:0 11:1:1 12:2:1 13:2:2 14:1:1 15:1:1 2 0 0 0 2 0:5:r5:add@base_4:inject 1:9:r3:rotl@base_6:bijective 2:16:r6:shfl@base_7:inject 3:17:r1:load@base_16:inject 4:19:r4:shfl@base_13:inject 5:29:r1:sub@base_25:inject 6:35:r3:mulhi@base_27:lossy 7:38:r1:load@base_35:inject 8:42:r4:mulhi@base_21:lossy 9:46:r3:load@base_42:inject 10:50:r1:mad@base_48:inject 11:51:r2:mad@base_49:inject 12:54:r5:shfl@base_52:inject 13:59:r5:add@base_56:inject 14:61:r4:rotl@base_60:bijective 15:63:r7:rotr@base_58:bijective +igneum-ca3-v4-uniform/829 3df6e2fce188d068 0 0:2:1 1:0:0 2:1:1 3:2:3 4:0:0 5:1:0 6:2:0 7:0:0 8:1:1 9:1:1 10:0:0 11:2:3 12:2:2 13:0:0 14:0:0 15:0:0 3 0 0 2 1 0:1:r5:rotl@base_0:bijective 1:5:r0:mulhi@base_3:lossy 2:6:r3:xor@base_4:inject 3:7:r4:load@base_6:inject 4:16:r2:rotr@base_15:bijective 5:18:r1:load@base_5:inject 6:34:r2:rotl@base_31:bijective 7:36:r0:shfl@base_29:inject 8:38:r7:mul@base_35:lossy 9:41:r4:add@base_37:inject 10:45:r7:mul@base_39:lossy 11:49:r2:xor@base_44:inject 12:50:r0:load@base_45:inject 13:54:r7:load@base_50:inject 14:56:r1:sub@base_43:inject 15:58:r3:load@base_49:inject +igneum-ca3-v4-uniform/830 6d703e98a7d2f763 0 0:2:2 1:1:1 2:0:0 3:2:0 4:2:2 5:1:0 6:0:0 7:0:0 8:2:0 9:2:2 10:1:0 11:0:0 12:1:1 13:1:1 14:2:3 15:0:0 4 0 0 3 1 0:1:r0:xor@base_0:inject 1:7:r6:load@base_1:inject 2:22:r1:shfl@base_20:inject 3:23:r6:xor@base_18:inject 4:29:r5:add@base_27:inject 5:30:r3:load@base_29:inject 6:36:r0:sub@base_35:inject 7:42:r5:shfl@base_41:inject 8:44:r7:load@base_42:inject 9:45:r2:mul@base_28:lossy 10:47:r1:mulhi@base_43:lossy 11:52:r5:load@base_45:inject 12:54:r4:load@base_52:inject 13:57:r1:mad@base_51:inject 14:60:r4:mul@base_59:lossy 15:61:r0:mul@base_58:lossy +igneum-ca3-v4-uniform/831 04b6e6958b8daa30 0 0:2:1 1:2:2 2:2:1 3:1:0 4:0:0 5:2:3 6:0:0 7:2:1 8:2:1 9:0:0 10:0:0 11:0:0 12:1:0 13:1:1 14:1:1 15:1:1 5 2 1 1 2 0:1:r4:mad@base_0:inject 1:5:r3:or@base_3:lossy 2:6:r2:load@base_5:inject 3:13:r1:mad@base_10:inject 4:16:r6:mul@base_15:lossy 5:19:r5:rotr@base_18:bijective 6:20:r7:sub@base_9:inject 7:38:r4:or@base_32:lossy-or-chain1 8:40:r1:mulhi@base_25:lossy 9:42:r0:sub@base_29:inject 10:43:r7:sub@base_33:inject 11:48:r7:add@base_46:inject 12:50:r6:load@base_42:inject 13:54:r7:add@base_52:inject 14:60:r2:add@base_56:inject 15:63:r3:mulhi@base_49:lossy +igneum-ca3-v4-uniform/832 270e65df06de9150 0 0:2:2 1:2:2 2:0:0 3:2:1 4:0:0 5:0:0 6:2:1 7:0:0 8:1:1 9:2:3 10:0:0 11:2:2 12:2:2 13:2:1 14:2:2 15:2:2 4 3 1 1 0 0:1:r1:mul@shadow_237:lossy 1:9:r1:xor@base_2:inject 2:11:r4:or@base_4:lossy 3:12:r5:load@base_9:inject 4:14:r5:add@base_13:inject 5:15:r3:load@base_11:inject 6:21:r5:sub@base_17:inject 7:34:r6:add@base_29:inject 8:36:r5:sub@base_33:inject 9:39:r7:load@base_36:inject 10:40:r2:xor@base_26:inject 11:51:r6:mad@base_44:inject 12:54:r4:or@base_50:lossy-or-chain1 13:58:r0:add@base_48:inject 14:59:r3:sub@base_57:inject 15:61:r2:or@base_60:lossy +igneum-ca3-v4-uniform/833 c68afca3b4fde655 0 0:2:0 1:2:3 2:0:0 3:1:1 4:2:0 5:0:0 6:2:2 7:2:2 8:1:0 9:2:2 10:1:0 11:2:3 12:2:2 13:2:1 14:1:1 15:0:0 2 0 0 1 1 0:3:r6:mul@base_0:lossy 1:5:r5:shfl@base_2:inject 2:10:r6:rotl@base_8:bijective 3:15:r5:sub@base_14:inject 4:16:r1:load@base_3:inject 5:17:r2:load@base_10:inject 6:24:r3:load@base_16:inject 7:28:r4:load@base_15:inject 8:32:r7:rotr@base_27:bijective 9:35:r5:load@base_32:inject 10:37:r1:mulhi@base_25:lossy 11:39:r0:add@base_31:inject 12:40:r4:load@base_39:inject 13:43:r2:add@base_36:inject 14:47:r3:rotl@base_44:bijective 15:60:r5:xor@base_55:inject +igneum-ca3-v4-uniform/834 c1b5187a9adeced2 0 0:0:0 1:0:0 2:1:1 3:1:1 4:2:1 5:1:0 6:0:0 7:1:0 8:1:0 9:1:1 10:2:3 11:1:1 12:2:2 13:1:0 14:1:0 15:2:0 2 0 0 1 1 0:1:r6:shfl@base_0:inject 1:10:r0:load@base_1:inject 2:15:r4:mulhi@base_13:lossy 3:16:r2:add@base_14:inject 4:20:r0:load@base_16:inject 5:21:r6:add@base_18:inject 6:23:r3:rotr@base_11:bijective 7:24:r1:load@base_23:inject 8:27:r5:load@base_20:inject 9:32:r7:load@base_24:inject 10:36:r1:mul@base_35:lossy 11:39:r0:add@base_26:inject 12:46:r3:load@base_36:inject 13:51:r4:sub@base_42:inject 14:55:r2:add@base_49:inject 15:62:r7:shfl@base_56:inject +igneum-ca3-v4-uniform/835 d894fe9875786391 0 0:1:1 1:2:0 2:2:1 3:0:0 4:0:0 5:1:1 6:2:0 7:1:1 8:2:3 9:2:3 10:0:0 11:2:2 12:2:2 13:1:1 14:0:0 15:2:0 2 1 0 0 1 0:2:r2:or@base_0:lossy 1:3:r4:load@base_2:inject 2:6:r2:mad@base_5:inject 3:8:r5:add@base_7:inject 4:12:r2:shfl@base_9:inject 5:18:r4:load@base_12:inject 6:20:r6:sub@base_17:inject 7:21:r3:load@base_6:inject 8:26:r4:load@base_20:inject 9:29:r5:mulhi@base_13:lossy 10:35:r7:rotl@base_32:bijective 11:38:r5:mad@base_36:inject 12:46:r3:rotl@base_33:bijective 13:48:r2:shfl@base_31:inject 14:49:r3:load@base_48:inject 15:50:r1:load@base_38:inject +igneum-ca3-v4-uniform/836 06d0558fc9cf9b78 0 0:1:0 1:2:2 2:2:1 3:0:0 4:1:1 5:1:0 6:2:3 7:0:0 8:0:0 9:2:2 10:2:2 11:1:0 12:0:0 13:2:3 14:2:3 15:0:0 3 1 0 1 1 0:2:r0:mad@base_0:inject 1:12:r2:rotr@base_10:bijective 2:15:r5:rotl@base_11:bijective 3:17:r3:rotl@base_3:bijective 4:19:r3:mad@base_18:inject 5:24:r1:or@base_22:lossy 6:28:r7:load@base_24:inject 7:33:r3:sub@base_29:inject 8:36:r2:load@base_33:inject 9:37:r0:shfl@base_31:inject 10:43:r5:xor@base_32:inject 11:46:r3:mul@base_40:lossy 12:50:r1:rotr@base_44:bijective 13:52:r4:shfl@base_47:inject 14:53:r6:mulhi@base_30:lossy 15:60:r2:load@base_50:inject +igneum-ca3-v4-uniform/837 9bf5183b2c5b4ab9 0 0:0:0 1:1:0 2:1:0 3:2:1 4:1:1 5:2:0 6:2:2 7:2:0 8:1:1 9:2:2 10:2:3 11:0:0 12:2:0 13:1:0 14:1:0 15:1:1 1 1 0 0 0 0:3:r6:or@base_0:lossy 1:6:r3:sub@base_5:inject 2:7:r0:load@base_3:inject 3:14:r4:sub@base_12:inject 4:21:r4:rotl@base_20:bijective 5:22:r5:load@base_21:inject 6:30:r0:shfl@base_28:inject 7:33:r3:load@base_30:inject 8:34:r2:add@base_25:inject 9:35:r6:sub@base_26:inject 10:38:r5:rotr@base_37:bijective 11:44:r2:xor@base_43:inject 12:47:r4:load@base_38:inject 13:49:r1:load@base_47:inject 14:50:r3:load@base_34:inject 15:51:r0:shfl@base_48:inject +igneum-ca3-v4-uniform/838 335c090d9ae78097 0 0:1:0 1:2:1 2:2:1 3:2:1 4:1:1 5:1:0 6:2:2 7:2:3 8:1:1 9:1:1 10:0:0 11:0:0 12:0:0 13:2:3 14:0:0 15:2:2 5 0 0 2 3 0:2:r2:add@base_1:inject 1:4:r2:mul@base_3:lossy 2:19:r7:load@base_4:inject 3:21:r0:mulhi@base_12:lossy 4:23:r1:mulhi@base_7:lossy 5:26:r3:add@base_18:inject 6:30:r5:shfl@base_28:inject 7:32:r0:mul@base_27:lossy 8:33:r7:mulhi@base_31:lossy 9:39:r2:load@base_26:inject 10:42:r0:rotr@base_38:bijective 11:48:r3:mad@base_43:inject 12:50:r6:load@base_39:inject 13:53:r4:add@base_51:inject 14:60:r4:xor@base_59:inject 15:63:r4:add@base_62:inject +igneum-ca3-v4-uniform/839 5184eaed7be78d17 0 0:2:2 1:1:0 2:2:0 3:1:0 4:0:0 5:1:0 6:2:2 7:1:0 8:1:1 9:2:3 10:1:1 11:2:0 12:0:0 13:1:0 14:0:0 15:1:1 5 1 0 3 1 0:1:r0:or@base_0:lossy 1:2:r5:load@base_1:inject 2:5:r0:load@base_2:inject 3:14:r3:add@base_12:inject 4:16:r1:xor@base_10:inject 5:26:r4:add@base_23:inject 6:27:r5:load@base_26:inject 7:31:r5:add@base_30:inject 8:34:r1:load@base_27:inject 9:37:r0:mul@base_29:lossy 10:40:r6:mul@base_39:lossy 11:42:r2:mul@base_36:lossy 12:44:r3:load@base_42:inject 13:46:r7:load@base_40:inject 14:58:r3:mulhi@base_57:lossy 15:61:r5:shfl@base_48:inject +igneum-ca3-v4-uniform/840 d73641ea9a2c7aae 0 0:2:0 1:1:1 2:2:1 3:2:2 4:2:3 5:0:0 6:0:0 7:0:0 8:2:3 9:1:0 10:1:0 11:2:2 12:2:0 13:2:1 14:0:0 15:1:1 4 2 0 1 1 0:12:r2:add@base_5:inject 1:19:r0:add@base_6:inject 2:20:r1:load@base_12:inject 3:21:r2:rotl@base_15:bijective 4:30:r2:sub@base_22:inject 5:36:r6:mulhi@base_26:lossy 6:39:r7:rotr@base_35:bijective 7:40:r0:shfl@base_29:inject 8:42:r5:mad@base_31:inject 9:44:r0:xor@base_41:inject 10:48:r3:load@base_39:inject 11:50:r1:load@base_44:inject 12:55:r3:or@base_52:lossy 13:58:r5:mul@base_51:lossy 14:61:r6:sub@base_54:inject 15:63:r0:or@base_49:lossy +igneum-ca3-v4-uniform/841 5cbc3c97e4484095 0 0:0:0 1:0:0 2:2:3 3:0:0 4:2:1 5:2:3 6:1:1 7:2:0 8:2:3 9:2:0 10:0:0 11:2:2 12:0:0 13:2:0 14:1:0 15:2:0 3 0 0 3 0 0:12:r5:rotl@base_8:bijective 1:15:r1:mul@base_11:lossy 2:21:r1:rotl@base_19:bijective 3:24:r7:mad@base_22:inject 4:28:r0:shfl@base_16:inject 5:34:r4:load@base_28:inject 6:36:r1:sub@base_35:inject 7:38:r2:load@base_34:inject 8:39:r3:load@base_38:inject 9:41:r5:load@base_39:inject 10:50:r0:mad@base_43:inject 11:52:r3:add@base_42:inject 12:55:r6:shfl@base_49:inject 13:60:r5:mul@base_53:lossy 14:61:r6:load@base_60:inject 15:63:r4:mul@base_62:lossy +igneum-ca3-v4-uniform/842 f0bcdccef743ed45 0 0:1:1 1:2:0 2:0:0 3:0:0 4:2:2 5:0:0 6:0:0 7:1:0 8:1:1 9:0:0 10:1:0 11:1:0 12:1:1 13:1:1 14:1:1 15:2:1 4 2 0 1 1 0:2:r5:mul@base_1:lossy 1:9:r4:add@base_7:inject 2:10:r0:rotl@base_6:bijective 3:15:r2:sub@base_13:inject 4:16:r5:load@base_15:inject 5:17:r4:sub@base_12:inject 6:30:r7:shfl@base_28:inject 7:36:r3:shfl@base_35:inject 8:38:r2:add@base_34:inject 9:39:r5:load@base_38:inject 10:43:r6:or@base_41:lossy 11:48:r6:mulhi@base_46:lossy 12:55:r4:shfl@base_53:inject 13:56:r2:or@base_51:lossy 14:57:r1:sub@base_54:inject 15:58:r4:load@base_56:inject +igneum-ca3-v4-uniform/843 4f8bed97d4875810 1 0:1:0 1:1:1 2:0:0 3:2:3 4:1:1 5:2:3 6:1:1 7:0:0 8:1:1 9:1:0 10:1:1 11:1:0 12:1:0 13:0:0 14:2:3 15:1:1 3 0 0 2 1 0:3:r5:xor@base_2:inject 1:4:r6:load@base_3:inject 2:13:r4:mad@base_11:inject 3:18:r2:xor@base_17:inject 4:21:r4:mad@base_19:inject 5:24:r4:add@base_22:inject 6:29:r7:mul@base_23:lossy 7:32:r2:load@base_29:inject 8:36:r3:mul@base_35:lossy 9:37:r4:add@base_31:inject 10:39:r1:rotl@base_30:bijective 11:43:r0:load@base_36:inject 12:45:r5:load@base_43:inject 13:49:r6:add@base_41:inject 14:57:r5:shfl@base_53:inject 15:63:r6:mulhi@base_60:lossy +igneum-ca3-v4-uniform/844 a8a0333052e48951 0 0:1:1 1:1:1 2:0:0 3:0:0 4:1:0 5:1:0 6:2:2 7:1:1 8:0:0 9:2:2 10:0:0 11:2:0 12:0:0 13:1:0 14:1:0 15:2:2 2 0 0 1 1 0:1:r0:shfl@base_0:inject 1:3:r5:add@base_2:inject 2:4:r1:load@base_1:inject 3:6:r3:load@base_3:inject 4:14:r0:load@base_4:inject 5:17:r4:mul@base_11:lossy 6:19:r3:add@base_7:inject 7:23:r1:load@base_6:inject 8:33:r6:shfl@base_22:inject 9:35:r3:add@base_32:inject 10:42:r1:mulhi@base_37:lossy 11:43:r7:load@base_33:inject 12:44:r6:load@base_43:inject 13:48:r5:load@base_44:inject 14:49:r6:load@base_48:inject 15:61:r4:load@base_49:inject +igneum-ca3-v4-uniform/845 1b35278ad119bd38 0 0:1:1 1:2:1 2:2:3 3:1:1 4:2:1 5:0:0 6:0:0 7:2:3 8:1:0 9:1:1 10:2:3 11:2:0 12:1:0 13:1:1 14:2:1 15:1:1 3 1 0 0 2 0:1:r6:xor@base_0:inject 1:2:r3:load@base_1:inject 2:5:r4:load@base_2:inject 3:14:r0:xor@base_3:inject 4:17:r7:load@base_14:inject 5:20:r6:rotl@base_16:bijective 6:21:r1:add@base_18:inject 7:24:r3:shfl@base_9:inject 8:28:r2:mulhi@base_15:lossy 9:34:r0:shfl@base_30:inject 10:44:r3:or@base_40:lossy 11:51:r6:add@base_45:inject 12:54:r5:add@base_48:inject 13:56:r2:rotl@base_55:bijective 14:60:r4:mulhi@base_59:lossy 15:62:r0:add@base_52:inject +igneum-ca3-v4-uniform/846 e501587812a99546 1 0:2:3 1:0:0 2:1:0 3:2:1 4:0:0 5:2:3 6:0:0 7:0:0 8:2:2 9:2:0 10:0:0 11:0:0 12:1:1 13:1:1 14:2:1 15:0:0 2 1 0 0 1 0:2:r1:rotl@base_0:bijective 1:9:r7:sub@base_7:inject 2:13:r0:load@base_9:inject 3:16:r3:add@base_15:inject 4:25:r6:rotr@base_24:bijective 5:26:r5:load@base_25:inject 6:28:r6:mulhi@base_27:lossy 7:32:r2:xor@base_31:inject 8:34:r3:rotl@base_29:bijective 9:40:r0:xor@base_19:inject 10:41:r2:or@base_35:lossy 11:50:r1:xor@base_38:inject 12:55:r5:add@base_51:inject 13:57:r4:xor@base_53:inject 14:59:r7:load@base_55:inject 15:61:r0:xor@base_43:inject +igneum-ca3-v4-uniform/847 6814d20a22ada879 0 0:1:1 1:0:0 2:2:1 3:1:1 4:0:0 5:0:0 6:2:3 7:0:0 8:1:0 9:0:0 10:0:0 11:1:1 12:0:0 13:0:0 14:2:3 15:1:1 2 1 0 0 1 0:1:r2:mulhi@base_0:lossy 1:2:r0:load@base_1:inject 2:10:r5:xor@base_8:inject 3:12:r2:load@base_10:inject 4:28:r1:rotr@base_22:bijective 5:29:r0:load@base_28:inject 6:31:r4:sub@base_24:inject 7:33:r0:rotl@base_30:bijective 8:34:r7:load@base_33:inject 9:46:r3:sub@base_38:inject 10:47:r5:or@base_44:lossy 11:48:r2:load@base_47:inject 12:52:r3:add@base_49:inject 13:54:r5:rotl@base_50:bijective 14:58:r2:add@base_56:inject 15:61:r6:load@base_48:inject +igneum-ca3-v4-uniform/848 083bd506e7c42ae1 0 0:1:0 1:0:0 2:1:1 3:2:3 4:2:3 5:1:0 6:0:0 7:1:1 8:1:0 9:1:0 10:0:0 11:2:3 12:2:0 13:0:0 14:2:3 15:0:0 1 0 0 1 0 0:5:r3:xor@base_2:inject 1:7:r0:xor@base_6:inject 2:10:r1:load@base_7:inject 3:11:r2:load@base_10:inject 4:17:r3:add@base_13:inject 5:18:r7:mul@base_8:lossy 6:36:r2:shfl@base_21:inject 7:39:r6:shfl@base_25:inject 8:45:r3:shfl@base_43:inject 9:49:r0:xor@base_44:inject 10:56:r5:mad@base_42:inject 11:58:r6:sub@base_54:inject 12:60:r3:shfl@base_48:inject 13:61:r4:mad@base_47:inject 14:62:r0:load@base_60:inject 15:63:r1:shfl@base_59:inject +igneum-ca3-v4-uniform/849 2c18e9fbf34abd19 0 0:2:3 1:2:2 2:0:0 3:1:1 4:0:0 5:2:1 6:1:1 7:1:1 8:1:0 9:1:0 10:0:0 11:1:0 12:0:0 13:1:1 14:1:1 15:0:0 5 1 0 3 1 0:2:r3:xor@base_1:inject 1:4:r2:mad@base_0:inject 2:9:r3:or@base_6:lossy 3:12:r2:mul@base_5:lossy 4:16:r6:mulhi@base_11:lossy 5:17:r5:load@base_4:inject 6:23:r0:xor@base_15:inject 7:29:r2:sub@base_21:inject 8:30:r4:mul@base_25:lossy 9:32:r3:mul@base_27:lossy 10:36:r2:xor@base_34:inject 11:39:r6:rotl@base_38:bijective 12:41:r5:rotl@base_28:bijective 13:43:r7:sub@base_40:inject 14:44:r0:add@base_42:inject 15:60:r0:add@base_57:inject +igneum-ca3-v4-uniform/850 2fd33005374cfc79 0 0:0:0 1:1:1 2:0:0 3:2:1 4:0:0 5:2:1 6:0:0 7:0:0 8:1:1 9:2:1 10:1:0 11:1:1 12:2:1 13:1:1 14:1:0 15:1:1 0 0 0 0 0 0:6:r5:sub@base_5:inject 1:13:r5:mad@base_9:inject 2:14:r7:add@base_4:inject 3:16:r2:rotl@base_15:bijective 4:28:r7:rotr@base_27:bijective 5:31:r1:mad@base_10:inject 6:32:r0:load@base_28:inject 7:46:r2:rotr@base_40:bijective 8:50:r5:rotl@base_25:bijective 9:53:r1:rotr@base_48:bijective 10:54:r7:rotl@base_52:bijective 11:55:r4:load@base_46:inject 12:58:r1:load@base_54:inject 13:60:r2:shfl@base_51:inject 14:61:r1:add@base_59:inject 15:62:r0:load@base_61:inject +igneum-ca3-v4-uniform/851 037d5f2aa76a5a94 0 0:1:1 1:2:2 2:2:3 3:2:0 4:1:1 5:0:0 6:0:0 7:0:0 8:2:0 9:2:0 10:0:0 11:1:0 12:0:0 13:2:3 14:1:1 15:0:0 1 0 0 1 0 0:3:r4:mad@base_1:inject 1:14:r1:sub@base_12:inject 2:17:r2:shfl@base_16:inject 3:18:r0:load@base_14:inject 4:21:r4:load@base_18:inject 5:23:r1:xor@base_22:inject 6:24:r5:rotl@base_10:bijective 7:29:r6:mad@base_26:inject 8:34:r3:load@base_24:inject 9:35:r2:add@base_31:inject 10:38:r6:load@base_34:inject 11:40:r5:shfl@base_39:inject 12:43:r0:mad@base_42:inject 13:46:r7:load@base_43:inject 14:50:r6:mul@base_48:lossy 15:56:r0:xor@base_53:inject +igneum-ca3-v4-uniform/852 23895da3a3ff45c7 0 0:0:0 1:1:0 2:1:0 3:1:0 4:0:0 5:0:0 6:0:0 7:0:0 8:1:1 9:2:3 10:2:2 11:0:0 12:0:0 13:1:1 14:1:1 15:0:0 1 0 0 0 1 0:1:r5:rotr@base_0:bijective 1:2:r1:load@base_1:inject 2:4:r6:load@base_2:inject 3:6:r5:load@base_4:inject 4:10:r7:load@base_6:inject 5:14:r5:rotl@base_13:bijective 6:19:r6:load@base_14:inject 7:20:r3:rotl@base_16:bijective 8:28:r5:add@base_17:inject 9:31:r0:shfl@base_30:inject 10:37:r4:rotr@base_21:bijective 11:38:r1:xor@base_26:inject 12:42:r3:rotr@base_36:bijective 13:45:r1:mulhi@base_40:lossy 14:47:r7:load@base_45:inject 15:56:r0:rotr@base_55:bijective +igneum-ca3-v4-uniform/853 7cd3a4abb311c740 0 0:0:0 1:1:1 2:1:0 3:0:0 4:1:1 5:0:0 6:0:0 7:0:0 8:1:0 9:0:0 10:1:0 11:2:3 12:2:2 13:0:0 14:0:0 15:2:0 2 1 0 0 1 0:6:r1:xor@base_3:inject 1:8:r5:load@base_6:inject 2:11:r4:or@base_9:lossy 3:16:r3:sub@base_2:inject 4:21:r6:sub@base_12:inject 5:24:r0:mad@base_23:inject 6:29:r3:shfl@base_27:inject 7:31:r5:mulhi@base_15:lossy 8:41:r5:shfl@base_32:inject 9:43:r0:xor@base_30:inject 10:44:r6:xor@base_42:inject 11:45:r3:mad@base_34:inject 12:50:r2:xor@base_39:inject 13:53:r1:shfl@base_40:inject 14:55:r3:add@base_48:inject 15:56:r6:load@base_55:inject +igneum-ca3-v4-uniform/854 613c4316218a38b9 0 0:2:3 1:2:1 2:0:0 3:0:0 4:1:0 5:0:0 6:2:3 7:0:0 8:0:0 9:0:0 10:0:0 11:2:2 12:2:2 13:2:3 14:1:1 15:0:0 1 0 0 0 1 0:6:r3:shfl@base_2:inject 1:9:r5:load@base_6:inject 2:13:r6:load@base_9:inject 3:20:r1:add@base_8:inject 4:23:r2:load@base_20:inject 5:24:r3:xor@base_15:inject 6:29:r4:load@base_24:inject 7:32:r4:sub@base_30:inject 8:34:r3:add@base_28:inject 9:35:r0:load@base_34:inject 10:37:r3:mad@base_36:inject 11:42:r7:sub@base_41:inject 12:46:r1:mulhi@base_45:lossy 13:50:r1:xor@base_48:inject 14:59:r3:sub@base_58:inject 15:63:r2:xor@base_51:inject +igneum-ca3-v4-uniform/855 ccab122478189831 0 0:2:0 1:2:1 2:0:0 3:0:0 4:2:2 5:2:1 6:1:0 7:0:0 8:0:0 9:0:0 10:0:0 11:1:1 12:0:0 13:1:0 14:1:0 15:0:0 5 1 0 3 1 0:4:r0:mad@base_2:inject 1:7:r7:mad@base_0:inject 2:12:r4:load@base_4:inject 3:16:r1:or@base_11:lossy 4:17:r0:mul@base_15:lossy 5:20:r7:load@base_16:inject 6:21:r2:mulhi@base_19:lossy 7:31:r6:mul@base_30:lossy 8:35:r1:mul@base_22:lossy 9:40:r4:xor@base_25:inject 10:44:r3:shfl@base_43:inject 11:46:r1:sub@base_39:inject 12:55:r4:rotr@base_54:bijective 13:56:r5:add@base_48:inject 14:57:r3:add@base_53:inject 15:58:r7:load@base_57:inject +igneum-ca3-v4-uniform/856 2bfa321c355534fb 0 0:0:0 1:0:0 2:0:0 3:1:0 4:0:0 5:2:1 6:1:1 7:1:1 8:2:3 9:0:0 10:0:0 11:0:0 12:2:1 13:0:0 14:1:0 15:0:0 7 0 0 5 2 0:4:r6:mul@base_2:lossy 1:7:r2:mulhi@base_5:lossy 2:17:r4:mad@base_14:inject 3:19:r1:mul@base_18:lossy 4:20:r5:add@base_12:inject 5:21:r3:mul@base_9:lossy 6:25:r5:mul@base_22:lossy 7:27:r4:mad@base_24:inject 8:34:r1:mad@base_32:inject 9:35:r2:rotl@base_29:bijective 10:36:r5:load@base_34:inject 11:41:r5:mulhi@base_39:lossy 12:50:r6:mul@base_43:lossy 13:54:r7:add@base_53:inject 14:55:r5:rotr@base_49:bijective 15:60:r4:load@base_54:inject +igneum-ca3-v4-uniform/857 b1ebb085ebeeb65a 0 0:2:1 1:1:0 2:2:2 3:0:0 4:2:3 5:0:0 6:0:0 7:2:0 8:1:1 9:0:0 10:1:1 11:0:0 12:0:0 13:2:0 14:2:3 15:1:1 1 0 0 1 0 0:2:r3:rotl@base_0:bijective 1:3:r0:load@base_2:inject 2:6:r2:xor@base_5:inject 3:10:r7:add@base_9:inject 4:11:r6:load@base_6:inject 5:14:r5:load@base_10:inject 6:17:r3:xor@base_12:inject 7:23:r2:shfl@base_15:inject 8:25:r2:add@base_24:inject 9:28:r4:add@base_27:inject 10:32:r3:load@base_28:inject 11:53:r1:shfl@base_40:inject 12:54:r6:add@base_52:inject 13:59:r1:mul@base_56:lossy 14:61:r6:mad@base_60:inject 15:62:r7:load@base_61:inject +igneum-ca3-v4-uniform/858 01c668967681f667 0 0:1:1 1:1:0 2:1:0 3:0:0 4:0:0 5:0:0 6:0:0 7:0:0 8:2:0 9:0:0 10:0:0 11:0:0 12:0:0 13:2:0 14:1:1 15:1:1 1 0 0 0 1 0:9:r1:add@base_4:inject 1:11:r4:rotl@base_3:bijective 2:14:r3:shfl@base_6:inject 3:17:r1:rotr@base_10:bijective 4:20:r2:mulhi@base_19:lossy 5:25:r0:rotr@base_22:bijective 6:26:r3:load@base_17:inject 7:30:r2:load@base_26:inject 8:31:r4:mad@base_29:inject 9:32:r6:load@base_31:inject 10:33:r1:xor@base_27:inject 11:40:r4:mad@base_39:inject 12:48:r7:mad@base_42:inject 13:55:r5:add@base_35:inject 14:58:r7:xor@base_50:inject 15:63:r3:mad@base_56:inject +igneum-ca3-v4-uniform/859 88ceb03300a6c268 0 0:1:0 1:0:0 2:1:1 3:1:1 4:2:1 5:1:0 6:2:2 7:2:1 8:0:0 9:0:0 10:2:3 11:2:1 12:1:1 13:0:0 14:1:0 15:0:0 6 1 0 3 2 0:3:r7:mad@base_1:inject 1:8:r5:mulhi@base_6:lossy 2:13:r6:mad@base_11:inject 3:17:r7:load@base_13:inject 4:19:r5:load@base_17:inject 5:20:r4:xor@base_18:inject 6:21:r6:rotr@base_16:bijective 7:24:r3:mulhi@base_23:lossy 8:25:r2:mad@base_22:inject 9:27:r1:load@base_8:inject 10:42:r4:or@base_35:lossy 11:44:r6:add@base_40:inject 12:45:r1:mul@base_38:lossy 13:51:r5:mul@base_41:lossy 14:52:r0:load@base_45:inject 15:62:r4:mul@base_47:lossy +igneum-ca3-v4-uniform/860 b04664403ccd062f 0 0:2:1 1:1:0 2:2:2 3:1:1 4:0:0 5:0:0 6:0:0 7:1:1 8:2:3 9:2:3 10:0:0 11:0:0 12:1:1 13:2:2 14:2:1 15:0:0 3 0 0 1 2 0:8:r2:rotr@base_7:bijective 1:9:r4:load@base_8:inject 2:15:r5:add@base_12:inject 3:16:r7:load@base_15:inject 4:18:r0:mul@base_17:lossy 5:19:r1:rotl@base_3:bijective 6:21:r2:mulhi@base_20:lossy 7:23:r3:mad@base_22:inject 8:30:r5:mulhi@base_24:lossy 9:36:r2:add@base_33:inject 10:40:r3:mad@base_35:inject 11:45:r1:mad@base_42:inject 12:46:r6:shfl@base_31:inject 13:49:r1:load@base_46:inject 14:58:r6:shfl@base_54:inject 15:60:r1:mad@base_59:inject +igneum-ca3-v4-uniform/861 3d540c0a524f81d9 0 0:1:0 1:1:0 2:1:0 3:0:0 4:1:1 5:2:3 6:0:0 7:1:1 8:1:1 9:2:1 10:0:0 11:0:0 12:0:0 13:1:1 14:1:0 15:0:0 4 1 0 3 0 0:1:r2:rotl@base_0:bijective 1:5:r1:mul@base_2:lossy 2:14:r0:load@base_5:inject 3:15:r4:sub@base_9:inject 4:19:r5:load@base_14:inject 5:29:r1:mul@base_28:lossy 6:30:r3:xor@base_26:inject 7:34:r2:mul@base_16:lossy 8:45:r4:xor@base_40:inject 9:46:r3:add@base_43:inject 10:50:r5:or@base_31:lossy 11:53:r1:xor@base_52:inject 12:59:r6:shfl@base_51:inject 13:60:r7:shfl@base_55:inject 14:61:r2:add@base_58:inject 15:62:r3:shfl@base_48:inject +igneum-ca3-v4-uniform/862 041e2d59dc443819 0 0:0:0 1:1:1 2:2:3 3:2:2 4:0:0 5:1:1 6:1:0 7:0:0 8:0:0 9:1:1 10:1:1 11:1:0 12:0:0 13:2:3 14:1:0 15:2:0 2 0 0 1 1 0:4:r3:xor@base_3:inject 1:7:r2:load@base_4:inject 2:10:r3:load@base_7:inject 3:16:r6:xor@base_13:inject 4:20:r1:load@base_16:inject 5:25:r5:shfl@base_23:inject 6:28:r4:mul@base_19:lossy 7:29:r1:load@base_28:inject 8:31:r0:xor@base_30:inject 9:35:r4:xor@base_34:inject 10:36:r6:load@base_35:inject 11:39:r2:add@base_38:inject 12:47:r6:add@base_46:inject 13:51:r0:mad@base_41:inject 14:54:r2:mulhi@base_52:lossy 15:62:r0:xor@base_59:inject +igneum-ca3-v4-uniform/863 ca14fe83d664f142 0 0:0:0 1:1:1 2:0:0 3:0:0 4:1:1 5:2:2 6:1:0 7:2:3 8:1:0 9:2:0 10:0:0 11:2:1 12:1:0 13:2:3 14:2:3 15:0:0 3 0 0 1 2 0:2:r4:xor@base_0:inject 1:7:r3:add@base_3:inject 2:8:r4:load@base_7:inject 3:19:r0:mad@base_18:inject 4:20:r5:mulhi@base_15:lossy 5:35:r6:xor@base_28:inject 6:38:r5:mulhi@base_30:lossy 7:45:r7:sub@base_44:inject 8:47:r2:xor@base_34:inject 9:51:r3:mul@base_32:lossy 10:52:r2:shfl@base_50:inject 11:55:r2:mad@base_54:inject 12:58:r7:load@base_55:inject 13:59:r0:add@base_57:inject 14:62:r2:xor@base_56:inject 15:63:r7:xor@base_61:inject +igneum-ca3-v4-uniform/864 8f85a59b12a71e36 0 0:2:2 1:0:0 2:1:0 3:2:0 4:2:3 5:2:0 6:0:0 7:1:0 8:1:0 9:0:0 10:0:0 11:0:0 12:0:0 13:2:2 14:0:0 15:1:0 6 2 0 2 2 0:4:r5:or@base_3:lossy 1:6:r6:xor@base_2:inject 2:7:r4:mad@base_0:inject 3:11:r0:mulhi@base_8:lossy 4:12:r3:load@base_11:inject 5:13:r6:mul@base_10:lossy 6:25:r7:mulhi@base_20:lossy 7:35:r1:rotl@base_24:bijective 8:40:r0:mul@base_37:lossy 9:43:r2:or@base_19:lossy 10:47:r0:xor@base_45:inject 11:49:r1:load@base_47:inject 12:52:r5:xor@base_50:inject 13:56:r4:sub@base_51:inject 14:59:r2:sub@base_53:inject 15:61:r7:mad@base_60:inject +igneum-ca3-v4-uniform/865 0d251c0d5c0d6b46 0 0:0:0 1:2:0 2:1:0 3:2:2 4:0:0 5:2:1 6:1:1 7:1:1 8:1:0 9:1:1 10:0:0 11:2:1 12:2:2 13:0:0 14:1:0 15:0:0 2 1 0 0 1 0:8:r5:mad@base_4:inject 1:11:r1:xor@base_10:inject 2:17:r4:xor@base_12:inject 3:20:r6:rotr@base_15:bijective 4:23:r0:shfl@base_19:inject 5:24:r1:sub@base_14:inject 6:26:r3:load@base_23:inject 7:34:r7:mulhi@base_30:lossy 8:35:r3:load@base_34:inject 9:36:r0:sub@base_32:inject 10:37:r5:load@base_35:inject 11:40:r3:add@base_39:inject 12:43:r1:load@base_37:inject 13:54:r2:xor@base_45:inject 14:56:r5:or@base_49:lossy 15:59:r7:sub@base_51:inject +igneum-ca3-v4-uniform/866 a54b0da20a15b14c 0 0:2:1 1:0:0 2:1:1 3:0:0 4:2:0 5:2:3 6:0:0 7:2:3 8:2:3 9:1:1 10:1:0 11:1:1 12:2:3 13:2:2 14:2:3 15:2:2 2 0 0 2 0 0:1:r5:shfl@base_0:inject 1:7:r2:add@base_6:inject 2:21:r0:load@base_7:inject 3:22:r5:xor@base_19:inject 4:26:r1:rotl@base_17:bijective 5:33:r1:rotr@base_29:bijective 6:35:r4:shfl@base_9:inject 7:39:r6:mul@base_32:lossy 8:41:r5:mul@base_38:lossy 9:43:r2:add@base_42:inject 10:47:r7:load@base_43:inject 11:52:r4:rotr@base_36:bijective 12:55:r2:shfl@base_51:inject 13:57:r4:load@base_55:inject 14:61:r0:mad@base_58:inject 15:63:r1:xor@base_62:inject +igneum-ca3-v4-uniform/867 f091f228c64af164 0 0:2:2 1:0:0 2:2:1 3:0:0 4:0:0 5:0:0 6:1:1 7:2:2 8:1:0 9:1:0 10:1:0 11:1:0 12:1:1 13:1:1 14:2:3 15:1:1 5 1 0 2 2 0:4:r6:mad@base_3:inject 1:6:r0:xor@base_2:inject 2:8:r1:load@base_6:inject 3:10:r5:load@base_4:inject 4:20:r2:mul@base_19:lossy 5:26:r7:mulhi@base_22:lossy 6:28:r4:mulhi@base_21:lossy 7:32:r5:add@base_31:inject 8:41:r1:mad@base_37:inject 9:44:r3:sub@base_40:inject 10:48:r6:or@base_46:lossy 11:49:r5:load@base_44:inject 12:52:r2:mul@base_39:lossy 13:55:r7:add@base_51:inject 14:59:r7:mad@base_58:inject 15:60:r3:xor@base_54:inject +igneum-ca3-v4-uniform/868 9cebab608a44a8c2 0 0:2:3 1:0:0 2:0:0 3:2:2 4:2:2 5:0:0 6:2:3 7:2:1 8:2:2 9:2:1 10:0:0 11:1:1 12:1:0 13:2:3 14:2:1 15:1:0 1 0 0 1 0 0:4:r7:xor@base_3:inject 1:5:r3:add@base_1:inject 2:8:r0:mad@base_7:inject 3:9:r1:load@base_4:inject 4:25:r5:shfl@base_18:inject 5:27:r5:sub@base_26:inject 6:41:r0:shfl@base_12:inject 7:45:r7:xor@base_40:inject 8:48:r6:shfl@base_39:inject 9:50:r6:xor@base_49:inject 10:54:r0:add@base_46:inject 11:55:r4:mul@base_42:lossy 12:56:r5:add@base_51:inject 13:57:r3:load@base_55:inject 14:58:r4:load@base_56:inject 15:63:r2:load@base_57:inject +igneum-ca3-v4-uniform/869 d6e2fed126ab3812 0 0:0:0 1:0:0 2:1:0 3:0:0 4:1:1 5:2:1 6:0:0 7:1:0 8:2:3 9:2:2 10:0:0 11:1:0 12:2:2 13:1:1 14:2:3 15:2:1 3 0 0 1 2 0:3:r3:shfl@base_1:inject 1:4:r5:load@base_3:inject 2:5:r4:load@base_4:inject 3:8:r6:load@base_5:inject 4:11:r7:mulhi@base_6:lossy 5:12:r2:rotr@base_9:bijective 6:13:r4:load@base_11:inject 7:26:r4:xor@base_25:inject 8:42:r0:add@base_39:inject 9:48:r3:shfl@base_33:inject 10:49:r6:load@base_26:inject 11:54:r7:mulhi@base_35:lossy 12:55:r4:mad@base_52:inject 13:58:r3:mul@base_53:lossy 14:60:r4:shfl@base_57:inject 15:62:r5:load@base_54:inject +igneum-ca3-v4-uniform/870 974606a0f503d3e8 0 0:0:0 1:0:0 2:0:0 3:2:2 4:2:2 5:1:0 6:1:1 7:0:0 8:0:0 9:0:0 10:1:1 11:0:0 12:0:0 13:2:0 14:2:3 15:0:0 5 0 0 1 4 0:1:r0:mulhi@base_0:lossy 1:6:r4:mul@base_5:lossy 2:7:r5:xor@base_4:inject 3:8:r1:load@base_7:inject 4:10:r3:mulhi@base_9:lossy 5:15:r6:rotr@base_13:bijective 6:22:r0:load@base_15:inject 7:27:r1:mulhi@base_16:lossy 8:31:r3:load@base_27:inject 9:33:r4:xor@base_29:inject 10:37:r6:add@base_35:inject 11:40:r3:rotl@base_38:bijective 12:46:r3:mulhi@base_45:lossy 13:48:r5:load@base_46:inject 14:51:r7:rotr@base_41:bijective 15:59:r7:xor@base_58:inject +igneum-ca3-v4-uniform/871 e83a78dedea7b6ff 0 0:1:1 1:1:0 2:0:0 3:2:1 4:2:1 5:1:1 6:0:0 7:2:3 8:0:0 9:1:0 10:1:1 11:1:1 12:1:1 13:0:0 14:0:0 15:1:1 2 0 0 1 1 0:1:r6:mad@base_0:inject 1:5:r2:rotr@base_3:bijective 2:7:r3:mulhi@base_6:lossy 3:8:r7:load@base_5:inject 4:12:r4:rotr@base_9:bijective 5:14:r1:load@base_12:inject 6:18:r4:load@base_14:inject 7:27:r0:shfl@base_21:inject 8:30:r1:mul@base_19:lossy 9:36:r6:xor@base_34:inject 10:37:r7:shfl@base_35:inject 11:38:r5:xor@base_33:inject 12:41:r2:load@base_36:inject 13:44:r3:load@base_38:inject 14:53:r3:sub@base_52:inject 15:61:r4:rotl@base_55:bijective +igneum-ca3-v4-uniform/872 dc5dce3427d40d61 0 0:2:2 1:2:0 2:0:0 3:1:1 4:2:0 5:0:0 6:1:1 7:0:0 8:2:2 9:0:0 10:1:1 11:1:0 12:2:0 13:1:1 14:0:0 15:0:0 2 1 0 0 1 0:5:r3:or@base_4:lossy 1:6:r4:load@base_5:inject 2:8:r5:rotr@base_7:bijective 3:13:r7:sub@base_10:inject 4:21:r0:sub@base_17:inject 5:25:r3:mad@base_23:inject 6:30:r3:sub@base_27:inject 7:33:r4:sub@base_29:inject 8:35:r5:rotr@base_31:bijective 9:37:r4:shfl@base_36:inject 10:45:r4:add@base_43:inject 11:46:r0:mulhi@base_22:lossy 12:52:r3:shfl@base_48:inject 13:57:r0:shfl@base_49:inject 14:58:r1:rotl@base_55:bijective 15:59:r5:load@base_52:inject +igneum-ca3-v4-uniform/873 e7df08db2484ea3a 0 0:2:0 1:0:0 2:2:2 3:2:0 4:0:0 5:0:0 6:2:3 7:2:2 8:2:0 9:1:0 10:1:1 11:0:0 12:0:0 13:2:3 14:2:0 15:2:1 4 0 0 4 0 0:10:r3:add@base_7:inject 1:11:r2:rotl@base_9:bijective 2:12:r5:load@base_10:inject 3:14:r1:mul@base_13:lossy 4:17:r0:load@base_11:inject 5:19:r5:rotl@base_15:bijective 6:21:r6:mul@base_18:lossy 7:22:r2:load@base_21:inject 8:26:r1:rotl@base_16:bijective 9:33:r7:mul@base_23:lossy 10:35:r0:mad@base_27:inject 11:49:r4:rotl@base_47:bijective 12:51:r0:xor@base_48:inject 13:54:r3:load@base_51:inject 14:61:r2:add@base_57:inject 15:63:r1:mul@base_44:lossy +igneum-ca3-v4-uniform/874 c03c3a96e0ba2d7a 0 0:0:0 1:0:0 2:2:0 3:1:0 4:0:0 5:0:0 6:2:2 7:1:1 8:2:2 9:0:0 10:2:3 11:0:0 12:1:1 13:2:2 14:0:0 15:2:2 1 0 0 0 1 0:2:r5:mad@base_0:inject 1:13:r0:load@base_2:inject 2:14:r5:mad@base_8:inject 3:15:r2:add@base_10:inject 4:18:r7:add@base_17:inject 5:22:r4:load@base_18:inject 6:25:r5:shfl@base_19:inject 7:26:r1:xor@base_24:inject 8:27:r3:shfl@base_23:inject 9:29:r0:load@base_25:inject 10:38:r7:shfl@base_36:inject 11:41:r4:xor@base_39:inject 12:50:r7:sub@base_44:inject 13:53:r6:rotr@base_46:bijective 14:58:r3:mulhi@base_52:lossy 15:62:r4:add@base_56:inject +igneum-ca3-v4-uniform/875 c2481d597b16c3f5 0 0:1:1 1:2:0 2:1:0 3:2:3 4:0:0 5:1:0 6:2:3 7:2:1 8:1:1 9:0:0 10:0:0 11:1:0 12:1:0 13:2:0 14:1:0 15:2:1 4 1 0 2 1 0:1:r1:mul@base_0:lossy 1:2:r0:load@base_1:inject 2:8:r5:mul@base_4:lossy 3:10:r1:or@base_9:lossy 4:16:r1:xor@base_13:inject 5:17:r5:shfl@base_15:inject 6:18:r7:load@base_17:inject 7:29:r6:add@base_26:inject 8:33:r3:sub@base_19:inject 9:37:r7:shfl@base_35:inject 10:38:r2:add@base_32:inject 11:41:r4:load@base_38:inject 12:43:r5:load@base_37:inject 13:46:r5:mulhi@base_44:lossy 14:56:r5:shfl@base_54:inject 15:60:r2:load@base_56:inject +igneum-ca3-v4-uniform/876 4e16158d4c2931fe 0 0:2:3 1:0:0 2:2:3 3:2:3 4:1:1 5:1:1 6:0:0 7:2:1 8:1:0 9:2:2 10:0:0 11:2:3 12:2:0 13:1:0 14:0:0 15:0:0 5 2 0 1 2 0:5:r1:shfl@base_3:inject 1:11:r1:rotl@base_10:bijective 2:19:r0:or@base_15:lossy 3:20:r6:mul@base_16:lossy 4:25:r4:load@base_19:inject 5:30:r2:mad@base_27:inject 6:31:r6:load@base_25:inject 7:33:r1:mulhi@base_12:lossy 8:40:r5:xor@base_36:inject 9:42:r7:load@base_40:inject 10:46:r0:or@base_44:lossy 11:50:r3:rotl@base_28:bijective 12:52:r2:rotl@base_48:bijective 13:56:r4:mulhi@base_38:lossy 14:58:r0:load@base_50:inject 15:62:r5:load@base_58:inject +igneum-ca3-v4-uniform/877 e683d6a3d21ee14d 0 0:1:0 1:0:0 2:2:2 3:1:0 4:1:1 5:2:0 6:1:0 7:1:0 8:2:1 9:0:0 10:0:0 11:1:0 12:0:0 13:0:0 14:0:0 15:1:1 4 0 0 2 2 0:2:r6:mad@base_1:inject 1:3:r3:load@base_2:inject 2:8:r5:sub@base_5:inject 3:15:r4:mul@base_9:lossy 4:18:r2:mul@base_16:lossy 5:23:r1:mulhi@base_22:lossy 6:27:r2:mad@base_20:inject 7:34:r3:load@base_18:inject 8:38:r7:load@base_34:inject 9:39:r3:add@base_35:inject 10:40:r6:load@base_39:inject 11:43:r1:load@base_40:inject 12:48:r5:load@base_43:inject 13:51:r3:mad@base_46:inject 14:56:r1:add@base_52:inject 15:57:r6:mulhi@base_55:lossy +igneum-ca3-v4-uniform/878 553c4900d67d054d 0 0:2:3 1:2:3 2:2:2 3:0:0 4:2:3 5:2:0 6:2:1 7:2:0 8:2:3 9:0:0 10:1:0 11:1:0 12:1:1 13:0:0 14:1:1 15:0:0 3 0 0 3 0 0:14:r5:mul@base_13:lossy 1:15:r6:mul@base_11:lossy 2:17:r7:load@base_14:inject 3:26:r6:load@base_17:inject 4:27:r0:load@base_26:inject 5:29:r6:load@base_27:inject 6:30:r3:shfl@base_22:inject 7:34:r4:mul@base_18:lossy 8:35:r1:load@base_29:inject 9:36:r7:load@base_35:inject 10:42:r2:load@base_34:inject 11:43:r0:load@base_36:inject 12:47:r2:shfl@base_46:inject 13:52:r6:rotr@base_37:bijective 14:55:r1:mad@base_44:inject 15:56:r3:rotl@base_54:bijective +igneum-ca3-v4-uniform/879 f1832e83b946a3b6 0 0:1:0 1:1:1 2:0:0 3:0:0 4:1:1 5:1:0 6:1:0 7:1:0 8:2:2 9:2:1 10:2:1 11:2:2 12:2:1 13:2:3 14:2:0 15:0:0 3 0 0 3 0 0:1:r1:add@base_0:inject 1:6:r1:add@base_2:inject 2:9:r7:sub@base_4:inject 3:15:r5:mul@base_12:lossy 4:26:r1:rotl@base_7:bijective 5:30:r3:sub@base_14:inject 6:36:r7:rotr@base_34:bijective 7:39:r4:mul@base_38:lossy 8:41:r1:add@base_37:inject 9:42:r0:load@base_41:inject 10:43:r6:load@base_39:inject 11:50:r7:load@base_42:inject 12:51:r0:load@base_43:inject 13:56:r2:load@base_50:inject 14:58:r6:xor@base_52:inject 15:62:r1:mul@base_59:lossy +igneum-ca3-v4-uniform/880 8adc0cfbf452331d 0 0:1:0 1:1:0 2:0:0 3:2:3 4:2:2 5:1:1 6:2:2 7:1:0 8:2:0 9:1:1 10:0:0 11:0:0 12:2:0 13:0:0 14:0:0 15:2:3 3 1 0 2 0 0:3:r3:shfl@base_1:inject 1:7:r1:sub@base_0:inject 2:9:r4:rotl@base_6:bijective 3:16:r3:add@base_8:inject 4:18:r0:mul@base_14:lossy 5:24:r0:add@base_22:inject 6:26:r2:load@base_18:inject 7:29:r3:add@base_27:inject 8:31:r7:rotl@base_4:bijective 9:38:r6:mul@base_30:lossy 10:43:r0:rotr@base_42:bijective 11:49:r1:or@base_45:lossy 12:54:r7:mad@base_51:inject 13:55:r6:mad@base_50:inject 14:56:r2:sub@base_52:inject 15:57:r1:load@base_55:inject +igneum-ca3-v4-uniform/881 a756a05014a633c0 0 0:1:0 1:0:0 2:0:0 3:1:0 4:0:0 5:2:0 6:2:3 7:1:1 8:0:0 9:0:0 10:1:0 11:1:0 12:1:1 13:0:0 14:1:0 15:1:1 4 0 0 4 0 0:6:r7:shfl@base_2:inject 1:9:r4:mul@base_7:lossy 2:15:r3:add@base_11:inject 3:28:r0:sub@base_25:inject 4:29:r4:load@base_28:inject 5:32:r0:mul@base_30:lossy 6:34:r6:xor@base_23:inject 7:39:r5:sub@base_37:inject 8:41:r7:add@base_35:inject 9:45:r0:load@base_41:inject 10:47:r2:load@base_34:inject 11:53:r6:xor@base_51:inject 12:55:r5:xor@base_49:inject 13:59:r1:mul@base_38:lossy 14:61:r4:shfl@base_57:inject 15:63:r2:mul@base_58:lossy +igneum-ca3-v4-uniform/882 9cb327c96def87d4 0 0:1:0 1:2:1 2:0:0 3:1:0 4:0:0 5:0:0 6:2:2 7:0:0 8:2:1 9:0:0 10:1:0 11:1:1 12:1:1 13:2:2 14:2:2 15:1:0 5 0 0 4 1 0:9:r3:mul@base_4:lossy 1:15:r4:mul@base_8:lossy 2:23:r0:xor@base_19:inject 3:28:r5:mul@base_22:lossy 4:31:r7:load@base_23:inject 5:36:r2:load@base_28:inject 6:37:r5:load@base_36:inject 7:38:r1:mad@base_30:inject 8:41:r6:load@base_38:inject 9:42:r3:mul@base_39:lossy 10:46:r1:add@base_44:inject 11:49:r6:mad@base_43:inject 12:50:r0:add@base_48:inject 13:55:r5:load@base_50:inject 14:58:r1:load@base_55:inject 15:59:r5:mulhi@base_56:lossy +igneum-ca3-v4-uniform/883 3f7a4206404bf714 0 0:1:1 1:2:0 2:0:0 3:2:1 4:2:2 5:1:1 6:1:1 7:1:1 8:2:1 9:1:0 10:0:0 11:0:0 12:1:1 13:2:0 14:2:2 15:2:2 4 0 0 3 1 0:8:r3:add@base_4:inject 1:9:r0:load@base_8:inject 2:13:r2:xor@base_5:inject 3:16:r1:mulhi@base_12:lossy 4:17:r6:mul@base_14:lossy 5:19:r5:rotl@base_7:bijective 6:30:r1:rotl@base_22:bijective 7:36:r0:xor@base_32:inject 8:43:r2:mul@base_34:lossy 9:46:r7:mul@base_44:lossy 10:47:r4:sub@base_37:inject 11:52:r6:load@base_46:inject 12:54:r4:add@base_48:inject 13:57:r5:add@base_50:inject 14:58:r0:load@base_54:inject 15:60:r5:add@base_59:inject +igneum-ca3-v4-uniform/884 d1a00855dcd47ba4 0 0:0:0 1:1:1 2:1:0 3:1:1 4:2:1 5:1:0 6:2:3 7:2:0 8:1:1 9:1:1 10:2:2 11:1:0 12:2:3 13:2:0 14:1:1 15:2:3 5 1 0 2 2 0:5:r5:add@base_3:inject 1:7:r1:xor@base_4:inject 2:10:r7:mul@base_8:lossy 3:13:r5:load@base_10:inject 4:18:r7:mad@base_14:inject 5:19:r6:mul@base_17:lossy 6:22:r2:mulhi@base_15:lossy 7:24:r3:load@base_22:inject 8:35:r3:or@base_29:lossy 9:41:r2:sub@base_38:inject 10:43:r3:mulhi@base_42:lossy 11:45:r4:mad@base_44:inject 12:50:r6:mad@base_49:inject 13:51:r5:add@base_48:inject 14:59:r0:rotl@base_55:bijective 15:62:r2:rotl@base_58:bijective +igneum-ca3-v4-uniform/885 c56ca363db4a346b 0 0:2:1 1:2:2 2:1:0 3:2:2 4:1:0 5:2:1 6:0:0 7:0:0 8:1:1 9:1:1 10:1:1 11:2:3 12:1:1 13:0:0 14:2:0 15:0:0 2 1 0 1 0 0:18:r3:rotl@base_2:bijective 1:20:r2:load@base_18:inject 2:24:r7:xor@base_22:inject 3:25:r0:shfl@base_23:inject 4:27:r1:load@base_25:inject 5:30:r0:add@base_28:inject 6:36:r4:load@base_30:inject 7:38:r6:rotr@base_37:bijective 8:39:r0:load@base_38:inject 9:40:r2:load@base_36:inject 10:42:r7:or@base_34:lossy 11:44:r5:rotr@base_43:bijective 12:46:r1:load@base_44:inject 13:55:r5:mul@base_54:lossy 14:57:r1:rotl@base_49:bijective 15:59:r4:rotl@base_47:bijective +igneum-ca3-v4-uniform/886 82821aba76a598b7 0 0:2:3 1:1:0 2:0:0 3:0:0 4:1:1 5:2:2 6:1:1 7:2:1 8:2:1 9:0:0 10:1:1 11:0:0 12:1:1 13:1:1 14:0:0 15:0:0 5 4 2 1 0 0:5:r0:or@base_4:lossy-or-chain1 1:9:r6:rotr@base_0:bijective 2:16:r5:mul@base_15:lossy 3:21:r0:add@base_18:inject 4:23:r3:or@base_20:lossy 5:28:r7:add@base_27:inject 6:31:r2:shfl@base_30:inject 7:35:r7:mad@base_34:inject 8:41:r7:or@base_36:lossy-or-chain1 9:49:r6:xor@base_48:inject 10:50:r4:load@base_49:inject 11:54:r7:sub@base_52:inject 12:57:r3:xor@base_56:inject 13:59:r6:load@base_50:inject 14:60:r0:or@base_47:lossy 15:62:r1:load@base_60:inject +igneum-ca3-v4-uniform/887 d154f2dcac722038 0 0:0:0 1:2:2 2:0:0 3:2:3 4:2:1 5:1:0 6:0:0 7:2:2 8:2:0 9:2:2 10:0:0 11:0:0 12:2:1 13:1:1 14:0:0 15:1:1 1 0 0 0 1 0:4:r0:sub@base_2:inject 1:7:r7:shfl@base_5:inject 2:8:r3:xor@base_3:inject 3:15:r5:sub@base_13:inject 4:24:r0:rotr@base_16:bijective 5:29:r3:mulhi@base_28:lossy 6:31:r1:add@base_21:inject 7:33:r3:shfl@base_30:inject 8:34:r5:load@base_29:inject 9:38:r7:mad@base_37:inject 10:42:r7:xor@base_40:inject 11:48:r4:add@base_46:inject 12:50:r6:rotl@base_49:bijective 13:53:r0:xor@base_43:inject 14:54:r4:load@base_53:inject 15:57:r5:add@base_47:inject +igneum-ca3-v4-uniform/888 c9a2804c68f093d1 0 0:0:0 1:1:0 2:2:2 3:1:0 4:0:0 5:1:0 6:0:0 7:1:1 8:2:0 9:1:1 10:0:0 11:2:2 12:1:1 13:2:0 14:0:0 15:0:0 1 0 0 0 1 0:2:r0:sub@base_1:inject 1:20:r7:mad@base_15:inject 2:23:r1:rotl@base_9:bijective 3:25:r5:mulhi@base_18:lossy 4:31:r6:load@base_23:inject 5:34:r7:xor@base_30:inject 6:36:r4:add@base_24:inject 7:39:r0:mad@base_19:inject 8:44:r3:load@base_39:inject 9:50:r2:add@base_32:inject 10:52:r1:sub@base_47:inject 11:54:r7:mad@base_43:inject 12:55:r5:load@base_52:inject 13:58:r7:load@base_55:inject 14:60:r0:sub@base_59:inject 15:61:r6:load@base_50:inject +igneum-ca3-v4-uniform/889 4bb878dc74a5ab0f 0 0:1:1 1:1:0 2:1:0 3:2:2 4:0:0 5:0:0 6:1:1 7:2:1 8:0:0 9:2:3 10:0:0 11:2:0 12:0:0 13:2:0 14:1:1 15:0:0 6 2 0 3 1 0:2:r3:mul@base_1:lossy 1:3:r2:mad@base_0:inject 2:7:r0:mulhi@base_6:lossy 3:8:r4:mul@base_5:lossy 4:9:r6:load@base_7:inject 5:13:r6:rotl@base_11:bijective 6:15:r0:rotl@base_14:bijective 7:18:r3:load@base_9:inject 8:27:r2:or@base_26:lossy 9:28:r3:load@base_27:inject 10:36:r5:mad@base_33:inject 11:38:r5:xor@base_37:inject 12:47:r3:xor@base_41:inject 13:56:r2:mul@base_53:lossy 14:59:r4:or@base_58:lossy 15:63:r7:load@base_56:inject +igneum-ca3-v4-uniform/890 3fb3f0e1390ff3e3 0 0:2:1 1:1:0 2:2:3 3:1:0 4:0:0 5:0:0 6:2:2 7:1:0 8:2:2 9:1:1 10:2:3 11:2:0 12:1:0 13:0:0 14:1:0 15:0:0 4 0 0 3 1 0:3:r1:sub@base_1:inject 1:9:r2:mad@base_8:inject 2:11:r0:mulhi@base_5:lossy 3:12:r7:mul@base_10:lossy 4:13:r4:shfl@base_4:inject 5:14:r6:load@base_11:inject 6:23:r4:xor@base_22:inject 7:24:r0:xor@base_21:inject 8:29:r3:shfl@base_26:inject 9:36:r5:mad@base_34:inject 10:40:r7:xor@base_33:inject 11:42:r2:mul@base_39:lossy 12:43:r4:add@base_32:inject 13:52:r0:mul@base_50:lossy 14:57:r0:add@base_53:inject 15:59:r2:load@base_52:inject +igneum-ca3-v4-uniform/891 b5d1bf04fb72f210 0 0:2:0 1:1:1 2:0:0 3:2:0 4:1:0 5:0:0 6:1:0 7:1:1 8:0:0 9:2:3 10:1:1 11:2:0 12:0:0 13:1:0 14:1:1 15:1:0 3 0 0 1 2 0:2:r7:xor@base_1:inject 1:6:r4:load@base_2:inject 2:10:r1:mulhi@base_5:lossy 3:11:r2:load@base_10:inject 4:13:r4:load@base_11:inject 5:15:r0:mad@base_9:inject 6:21:r5:sub@base_19:inject 7:26:r3:mad@base_23:inject 8:27:r1:rotr@base_18:bijective 9:32:r1:xor@base_30:inject 10:36:r4:mulhi@base_28:lossy 11:43:r6:mad@base_35:inject 12:46:r1:rotl@base_45:bijective 13:50:r0:mul@base_29:lossy 14:52:r4:sub@base_51:inject 15:55:r5:load@base_46:inject +igneum-ca3-v4-uniform/892 5b35491f3038e9cf 0 0:2:3 1:0:0 2:0:0 3:1:0 4:2:0 5:1:0 6:0:0 7:1:0 8:0:0 9:1:1 10:0:0 11:2:2 12:0:0 13:0:0 14:0:0 15:0:0 4 0 0 2 2 0:1:r3:sub@base_0:inject 1:5:r7:xor@base_4:inject 2:7:r1:load@base_5:inject 3:12:r7:add@base_6:inject 4:13:r6:load@base_12:inject 5:16:r4:xor@base_14:inject 6:19:r1:shfl@base_18:inject 7:20:r0:mad@base_15:inject 8:27:r3:mul@base_21:lossy 9:32:r7:mad@base_30:inject 10:35:r0:mul@base_34:lossy 11:41:r6:mulhi@base_36:lossy 12:44:r4:load@base_41:inject 13:49:r2:rotr@base_39:bijective 14:56:r5:rotl@base_54:bijective 15:61:r7:mulhi@base_45:lossy +igneum-ca3-v4-uniform/893 d2eeac715903fb65 0 0:1:0 1:0:0 2:0:0 3:1:0 4:1:0 5:1:0 6:2:3 7:0:0 8:2:0 9:2:1 10:2:0 11:0:0 12:2:2 13:2:1 14:1:1 15:2:2 2 0 0 1 1 0:1:r2:rotl@base_0:bijective 1:3:r1:load@base_1:inject 2:13:r5:mad@base_4:inject 3:27:r1:sub@base_24:inject 4:28:r5:mul@base_25:lossy 5:39:r5:rotl@base_31:bijective 6:40:r1:add@base_32:inject 7:43:r7:xor@base_41:inject 8:44:r3:xor@base_37:inject 9:46:r3:mulhi@base_45:lossy 10:47:r2:load@base_43:inject 11:54:r2:add@base_53:inject 12:55:r0:shfl@base_42:inject 13:57:r5:add@base_56:inject 14:58:r2:load@base_55:inject 15:62:r2:shfl@base_61:inject +igneum-ca3-v4-uniform/894 0b1e9e71144506df 0 0:2:0 1:0:0 2:2:0 3:1:1 4:1:1 5:1:0 6:0:0 7:0:0 8:0:0 9:1:0 10:2:2 11:2:0 12:2:2 13:1:0 14:1:0 15:0:0 3 0 0 2 1 0:6:r4:rotl@base_5:bijective 1:7:r1:load@base_6:inject 2:8:r2:mad@base_4:inject 3:11:r7:rotr@base_3:bijective 4:14:r1:mul@base_12:lossy 5:16:r1:mad@base_15:inject 6:20:r5:load@base_16:inject 7:33:r1:shfl@base_29:inject 8:35:r4:mad@base_28:inject 9:36:r7:rotl@base_32:bijective 10:38:r5:shfl@base_37:inject 11:40:r0:load@base_38:inject 12:41:r6:xor@base_39:inject 13:42:r2:load@base_41:inject 14:46:r6:mul@base_45:lossy 15:59:r0:mulhi@base_57:lossy +igneum-ca3-v4-uniform/895 fb4987e4c60466d4 0 0:0:0 1:1:1 2:1:0 3:2:3 4:1:0 5:1:0 6:2:3 7:2:1 8:2:2 9:0:0 10:0:0 11:0:0 12:1:0 13:1:1 14:0:0 15:0:0 1 0 0 1 0 0:2:r6:rotr@base_1:bijective 1:6:r7:add@base_5:inject 2:9:r4:rotr@base_7:bijective 3:10:r2:add@base_8:inject 4:11:r5:rotl@base_4:bijective 5:20:r0:sub@base_14:inject 6:21:r2:load@base_20:inject 7:22:r5:sub@base_18:inject 8:24:r4:load@base_22:inject 9:25:r7:load@base_21:inject 10:28:r4:shfl@base_26:inject 11:47:r6:add@base_39:inject 12:52:r7:mul@base_50:lossy 13:54:r1:xor@base_53:inject 14:59:r5:load@base_47:inject 15:62:r1:mad@base_60:inject +igneum-ca3-v4-uniform/896 c06e637f56f79833 0 0:2:2 1:0:0 2:1:1 3:2:1 4:2:0 5:2:2 6:1:0 7:0:0 8:0:0 9:1:0 10:2:1 11:0:0 12:1:1 13:2:3 14:2:1 15:1:1 3 1 0 1 1 0:3:r6:add@base_2:inject 1:7:r2:load@base_3:inject 2:9:r4:or@base_1:lossy 3:15:r7:load@base_9:inject 4:18:r6:add@base_12:inject 5:22:r2:rotl@base_14:bijective 6:23:r4:load@base_22:inject 7:30:r7:load@base_18:inject 8:33:r4:mul@base_29:lossy 9:36:r2:xor@base_32:inject 10:40:r1:xor@base_39:inject 11:42:r2:load@base_40:inject 12:46:r0:mulhi@base_35:lossy 13:52:r7:mad@base_48:inject 14:60:r2:shfl@base_58:inject 15:62:r6:rotl@base_55:bijective +igneum-ca3-v4-uniform/897 618f627a9dc51324 0 0:2:3 1:2:3 2:0:0 3:1:1 4:0:0 5:0:0 6:2:3 7:0:0 8:0:0 9:0:0 10:2:2 11:2:3 12:1:0 13:2:3 14:2:3 15:2:2 3 0 0 1 2 0:2:r6:shfl@base_1:inject 1:4:r2:load@base_2:inject 2:17:r4:add@base_13:inject 3:18:r6:mul@base_12:lossy 4:21:r1:rotr@base_19:bijective 5:23:r3:mulhi@base_14:lossy 6:24:r4:xor@base_22:inject 7:38:r4:shfl@base_32:inject 8:40:r2:rotl@base_30:bijective 9:43:r6:xor@base_41:inject 10:45:r7:mulhi@base_42:lossy 11:47:r3:load@base_40:inject 12:51:r4:load@base_47:inject 13:53:r1:shfl@base_44:inject 14:56:r5:add@base_49:inject 15:63:r7:xor@base_58:inject +igneum-ca3-v4-uniform/898 902c314fee5d0b9a 1 0:1:0 1:2:3 2:0:0 3:0:0 4:0:0 5:2:1 6:0:0 7:1:0 8:1:0 9:0:0 10:0:0 11:2:1 12:0:0 13:0:0 14:0:0 15:0:0 1 0 0 0 1 0:4:r1:xor@base_3:inject 1:9:r4:mulhi@base_7:lossy 2:10:r6:add@base_5:inject 3:15:r0:add@base_12:inject 4:23:r1:sub@base_13:inject 5:25:r0:add@base_22:inject 6:26:r7:add@base_21:inject 7:35:r6:sub@base_32:inject 8:39:r7:shfl@base_36:inject 9:41:r1:shfl@base_38:inject 10:44:r7:shfl@base_40:inject 11:45:r5:mad@base_33:inject 12:52:r7:rotl@base_48:bijective 13:53:r4:shfl@base_50:inject 14:56:r5:xor@base_49:inject 15:58:r3:load@base_44:inject +igneum-ca3-v4-uniform/899 5f345f0bda8fa41b 0 0:0:0 1:0:0 2:0:0 3:0:0 4:2:0 5:0:0 6:2:2 7:0:0 8:2:3 9:0:0 10:1:1 11:2:1 12:2:3 13:2:3 14:0:0 15:2:0 2 0 0 1 1 0:1:r2:mad@base_0:inject 1:4:r0:load@base_1:inject 2:6:r5:add@base_5:inject 3:11:r4:load@base_6:inject 4:12:r6:add@base_7:inject 5:14:r1:load@base_11:inject 6:24:r2:mul@base_22:lossy 7:25:r3:rotr@base_8:bijective 8:26:r6:shfl@base_20:inject 9:31:r7:rotl@base_18:bijective 10:41:r7:add@base_40:inject 11:43:r4:rotr@base_42:bijective 12:51:r5:mulhi@base_50:lossy 13:53:r1:xor@base_52:inject 14:59:r0:xor@base_58:inject 15:62:r1:load@base_59:inject +igneum-ca3-v4-uniform/900 a23cb1c0a7f77887 0 0:1:0 1:2:3 2:0:0 3:0:0 4:0:0 5:1:1 6:2:3 7:2:1 8:1:1 9:1:1 10:1:0 11:2:2 12:1:1 13:0:0 14:2:2 15:1:0 2 1 0 1 0 0:1:r5:rotl@shadow_238:bijective 1:2:r3:load@base_1:inject 2:8:r4:rotl@base_7:bijective 3:10:r1:sub@base_3:inject 4:20:r0:rotr@base_16:bijective 5:27:r3:rotr@base_19:bijective 6:29:r6:rotl@base_23:bijective 7:31:r1:mul@base_26:lossy 8:33:r5:add@base_30:inject 9:40:r1:mad@base_34:inject 10:42:r3:xor@base_41:inject 11:45:r2:load@base_20:inject 12:48:r1:shfl@base_43:inject 13:50:r6:or@base_44:lossy 14:54:r3:load@base_50:inject 15:59:r4:mad@base_53:inject +igneum-ca3-v4-uniform/901 f732768d0ae41536 0 0:1:0 1:2:2 2:2:1 3:1:0 4:2:3 5:2:3 6:0:0 7:2:1 8:1:0 9:0:0 10:0:0 11:0:0 12:0:0 13:2:0 14:1:1 15:1:1 2 1 0 1 0 0:2:r7:or@base_0:lossy 1:6:r4:rotl@base_3:bijective 2:8:r6:mul@base_5:lossy 3:9:r7:shfl@base_7:inject 4:12:r0:rotr@base_1:bijective 5:18:r2:xor@base_17:inject 6:25:r2:sub@base_24:inject 7:33:r6:mad@base_28:inject 8:35:r5:xor@base_27:inject 9:39:r1:add@base_37:inject 10:40:r3:shfl@base_38:inject 11:41:r4:load@base_35:inject 12:49:r0:add@base_47:inject 13:56:r0:rotl@base_50:bijective 14:57:r2:add@base_48:inject 15:63:r0:add@base_62:inject +igneum-ca3-v4-uniform/902 a1ee4b7bf29a3620 0 0:1:0 1:0:0 2:2:3 3:2:2 4:2:2 5:2:2 6:2:1 7:1:1 8:2:0 9:2:1 10:0:0 11:0:0 12:2:2 13:0:0 14:0:0 15:1:0 2 1 0 1 0 0:2:r3:rotl@base_0:bijective 1:5:r1:or@base_1:lossy 2:9:r7:load@base_2:inject 3:11:r4:mad@base_7:inject 4:16:r2:add@base_14:inject 5:19:r1:add@base_6:inject 6:20:r7:add@base_12:inject 7:22:r0:load@base_19:inject 8:26:r5:xor@base_4:inject 9:28:r2:shfl@base_27:inject 10:33:r3:load@base_28:inject 11:35:r1:load@base_33:inject 12:54:r4:mad@base_44:inject 13:55:r7:add@base_48:inject 14:56:r2:rotl@base_52:bijective 15:60:r1:mul@base_45:lossy +igneum-ca3-v4-uniform/903 57158d43fa68aebf 0 0:1:0 1:2:3 2:2:2 3:1:1 4:2:1 5:1:0 6:1:1 7:2:0 8:2:2 9:0:0 10:1:1 11:2:2 12:2:2 13:0:0 14:1:0 15:0:0 4 1 0 1 2 0:3:r3:rotl@base_0:bijective 1:4:r7:or@base_2:lossy 2:6:r6:load@base_4:inject 3:7:r3:mul@base_5:lossy 4:12:r5:mad@base_11:inject 5:15:r1:load@base_12:inject 6:22:r1:mad@base_21:inject 7:30:r7:xor@base_29:inject 8:33:r0:load@base_30:inject 9:38:r1:mulhi@base_37:lossy 10:40:r2:xor@base_36:inject 11:41:r5:load@base_38:inject 12:47:r7:sub@base_46:inject 13:52:r5:xor@base_51:inject 14:56:r6:xor@base_53:inject 15:61:r0:mulhi@base_60:lossy +igneum-ca3-v4-uniform/904 a125720b8b9ee394 0 0:2:0 1:2:0 2:2:0 3:2:0 4:1:1 5:0:0 6:1:1 7:0:0 8:1:1 9:1:1 10:1:1 11:1:1 12:0:0 13:1:0 14:0:0 15:2:1 1 0 0 1 0 0:8:r2:mad@base_6:inject 1:11:r3:add@base_7:inject 2:12:r1:shfl@base_5:inject 3:14:r0:load@base_11:inject 4:30:r1:shfl@base_27:inject 5:31:r7:add@base_22:inject 6:32:r0:xor@base_23:inject 7:35:r2:load@base_31:inject 8:36:r4:add@base_33:inject 9:41:r7:mul@base_40:lossy 10:44:r0:shfl@base_43:inject 11:45:r2:xor@base_38:inject 12:51:r4:rotl@base_42:bijective 13:55:r2:load@base_51:inject 14:56:r3:shfl@base_49:inject 15:58:r2:mad@base_57:inject +igneum-ca3-v4-uniform/905 a0f3e677970a407b 1 0:1:0 1:2:1 2:1:0 3:1:1 4:1:0 5:0:0 6:1:1 7:2:3 8:1:1 9:2:3 10:0:0 11:1:1 12:1:1 13:1:0 14:2:2 15:0:0 0 0 0 0 0 0:2:r3:rotl@base_1:bijective 1:5:r0:load@base_2:inject 2:8:r2:add@base_7:inject 3:15:r5:load@base_8:inject 4:24:r6:load@base_15:inject 5:25:r4:shfl@base_13:inject 6:29:r3:add@base_16:inject 7:32:r4:add@base_31:inject 8:37:r0:shfl@base_17:inject 9:42:r1:add@base_22:inject 10:43:r5:load@base_37:inject 11:45:r2:load@base_32:inject 12:46:r0:rotr@base_44:bijective 13:48:r6:load@base_42:inject 14:58:r6:shfl@base_52:inject 15:60:r1:xor@base_50:inject +igneum-ca3-v4-uniform/906 9cdbf855c272f973 0 0:2:3 1:2:0 2:2:1 3:0:0 4:2:1 5:0:0 6:2:0 7:2:0 8:1:1 9:0:0 10:0:0 11:0:0 12:2:2 13:1:1 14:0:0 15:2:3 0 0 0 0 0 0:4:r3:rotr@base_3:bijective 1:5:r2:shfl@base_1:inject 2:10:r6:load@base_5:inject 3:16:r3:shfl@base_15:inject 4:35:r0:mad@base_31:inject 5:40:r2:load@base_35:inject 6:41:r6:load@base_40:inject 7:42:r4:rotr@base_38:bijective 8:43:r7:load@base_42:inject 9:44:r5:sub@base_28:inject 10:45:r1:load@base_43:inject 11:48:r3:rotl@base_47:bijective 12:49:r2:load@base_44:inject 13:52:r4:load@base_45:inject 14:56:r1:rotr@base_51:bijective 15:57:r2:load@base_56:inject +igneum-ca3-v4-uniform/907 91cc6a1f117b10a5 0 0:2:0 1:1:0 2:0:0 3:1:0 4:2:1 5:2:3 6:0:0 7:1:0 8:0:0 9:0:0 10:1:1 11:2:1 12:0:0 13:0:0 14:1:1 15:1:0 3 1 0 2 0 0:7:r6:mad@base_1:inject 1:8:r0:mul@base_4:lossy 2:15:r7:xor@base_10:inject 3:17:r7:mul@base_16:lossy 4:21:r2:or@base_18:lossy 5:27:r0:rotl@base_23:bijective 6:28:r1:load@base_21:inject 7:30:r4:load@base_28:inject 8:32:r6:mad@base_29:inject 9:34:r7:shfl@base_31:inject 10:39:r2:load@base_30:inject 11:41:r6:sub@base_36:inject 12:42:r3:load@base_32:inject 13:52:r7:mad@base_44:inject 14:58:r7:rotr@base_55:bijective 15:59:r2:shfl@base_49:inject +igneum-ca3-v4-uniform/908 71a784ca87d600be 0 0:0:0 1:2:0 2:2:1 3:1:1 4:0:0 5:2:3 6:0:0 7:2:3 8:2:3 9:0:0 10:1:0 11:2:0 12:1:1 13:0:0 14:0:0 15:0:0 2 1 0 1 0 0:6:r1:shfl@base_5:inject 1:7:r0:or@base_4:lossy 2:10:r5:mul@base_9:lossy 3:19:r6:xor@base_15:inject 4:23:r7:add@base_17:inject 5:24:r4:load@base_23:inject 6:31:r0:mad@base_28:inject 7:32:r4:load@base_31:inject 8:33:r5:load@base_32:inject 9:37:r6:load@base_33:inject 10:39:r3:load@base_37:inject 11:40:r2:rotr@base_35:bijective 12:43:r7:load@base_39:inject 13:47:r4:add@base_44:inject 14:56:r7:rotl@base_51:bijective 15:61:r4:add@base_53:inject +igneum-ca3-v4-uniform/909 36fdd81608143f89 0 0:1:1 1:0:0 2:1:0 3:0:0 4:2:3 5:2:2 6:2:0 7:2:0 8:0:0 9:2:2 10:2:3 11:0:0 12:0:0 13:1:1 14:2:1 15:2:3 5 1 1 3 1 0:2:r3:or@base_1:lossy-or-chain1 1:3:r7:add@base_0:inject 2:4:r4:load@base_3:inject 3:7:r6:shfl@base_6:inject 4:10:r1:load@base_4:inject 5:12:r0:load@base_10:inject 6:20:r5:mulhi@base_19:lossy 7:22:r6:mul@base_17:lossy 8:24:r1:mul@base_18:lossy 9:30:r0:sub@base_29:inject 10:31:r2:xor@base_27:inject 11:32:r1:load@base_30:inject 12:43:r5:load@base_24:inject 13:52:r0:sub@base_41:inject 14:55:r5:mul@base_45:lossy 15:61:r3:add@base_60:inject +igneum-ca3-v4-uniform/910 dd33264f743cc7cb 1 0:2:1 1:0:0 2:2:2 3:1:1 4:1:1 5:2:2 6:2:3 7:1:1 8:1:1 9:2:2 10:2:0 11:2:0 12:1:0 13:2:3 14:0:0 15:0:0 2 1 0 1 0 0:1:r6:rotl@base_0:bijective 1:3:r5:load@base_1:inject 2:5:r1:load@base_3:inject 3:11:r6:add@base_7:inject 4:13:r5:sub@base_10:inject 5:18:r4:shfl@base_16:inject 6:20:r5:shfl@base_15:inject 7:21:r3:sub@base_19:inject 8:23:r0:load@base_18:inject 9:32:r4:add@base_27:inject 10:35:r1:or@base_26:lossy 11:36:r7:rotr@base_28:bijective 12:44:r2:rotr@base_31:bijective 13:45:r1:load@base_36:inject 14:52:r5:rotr@base_42:bijective 15:62:r2:mul@base_59:lossy +igneum-ca3-v4-uniform/911 a8a7a002f7f4f496 0 0:1:0 1:2:1 2:0:0 3:1:0 4:2:2 5:0:0 6:1:0 7:1:0 8:2:2 9:2:1 10:0:0 11:0:0 12:1:0 13:1:0 14:1:1 15:0:0 1 0 0 1 0 0:5:r6:add@base_4:inject 1:12:r1:sub@base_10:inject 2:15:r2:sub@base_13:inject 3:16:r4:add@base_0:inject 4:17:r3:add@base_9:inject 5:23:r5:mul@base_18:lossy 6:24:r4:sub@base_20:inject 7:29:r5:add@base_27:inject 8:37:r4:xor@base_34:inject 9:44:r6:rotl@base_40:bijective 10:52:r0:load@base_16:inject 11:55:r4:add@base_53:inject 12:57:r7:add@base_56:inject 13:60:r5:add@base_39:inject 14:61:r2:sub@base_45:inject 15:63:r4:load@base_60:inject +igneum-ca3-v4-uniform/912 b3d1a708a7b91c25 0 0:2:2 1:0:0 2:2:0 3:0:0 4:0:0 5:1:0 6:2:3 7:0:0 8:1:1 9:2:0 10:2:1 11:2:3 12:2:3 13:2:0 14:2:3 15:0:0 0 0 0 0 0 0:5:r5:rotr@base_1:bijective 1:6:r7:load@base_5:inject 2:14:r2:mad@base_12:inject 3:15:r3:xor@base_8:inject 4:18:r5:shfl@base_17:inject 5:19:r2:load@base_18:inject 6:27:r5:add@base_22:inject 7:34:r0:rotr@base_28:bijective 8:36:r0:shfl@base_35:inject 9:41:r6:rotr@base_32:bijective 10:42:r2:sub@base_33:inject 11:45:r0:rotl@base_40:bijective 12:46:r7:load@base_27:inject 13:55:r7:rotl@base_51:bijective 14:56:r1:load@base_46:inject 15:63:r5:load@base_55:inject +igneum-ca3-v4-uniform/913 067767130a58d37e 0 0:2:0 1:0:0 2:1:1 3:2:1 4:1:0 5:0:0 6:2:1 7:1:0 8:0:0 9:2:3 10:0:0 11:1:1 12:2:1 13:2:2 14:1:1 15:2:1 4 3 1 0 1 0:4:r6:rotr@base_0:bijective 1:11:r7:xor@base_10:inject 2:15:r0:rotl@base_12:bijective 3:22:r3:mulhi@base_19:lossy 4:23:r5:mad@base_21:inject 5:32:r7:or@base_18:lossy 6:33:r5:add@base_29:inject 7:35:r3:shfl@base_30:inject 8:41:r6:load@base_32:inject 9:42:r7:load@base_35:inject 10:44:r5:or@base_38:lossy 11:45:r0:mad@base_40:inject 12:59:r0:add@base_57:inject 13:61:r2:shfl@base_60:inject 14:62:r5:or@base_53:lossy-or-chain1 15:63:r4:load@base_59:inject +igneum-ca3-v4-uniform/914 ee0610b01b91eba4 0 0:2:3 1:0:0 2:1:0 3:1:0 4:0:0 5:2:0 6:0:0 7:1:0 8:1:0 9:2:2 10:0:0 11:0:0 12:0:0 13:2:3 14:0:0 15:0:0 2 1 0 1 0 0:4:r3:shfl@base_2:inject 1:11:r5:rotr@base_5:bijective 2:16:r1:shfl@base_1:inject 3:19:r4:mul@base_18:lossy 4:21:r3:add@base_6:inject 5:29:r3:sub@base_26:inject 6:36:r5:load@base_21:inject 7:41:r3:xor@base_39:inject 8:43:r4:load@base_41:inject 9:47:r6:rotr@base_45:bijective 10:51:r3:load@base_47:inject 11:57:r4:or@base_54:lossy 12:58:r0:rotl@base_42:bijective 13:59:r3:add@base_52:inject 14:60:r5:load@base_58:inject 15:62:r6:load@base_60:inject +igneum-ca3-v4-uniform/915 315da8248910e62a 0 0:2:1 1:0:0 2:0:0 3:1:0 4:0:0 5:0:0 6:1:1 7:2:2 8:1:0 9:2:2 10:2:3 11:2:3 12:0:0 13:2:0 14:0:0 15:1:0 1 0 0 0 1 0:3:r2:xor@base_1:inject 1:7:r5:rotl@base_5:bijective 2:13:r0:add@base_12:inject 3:15:r4:rotr@base_6:bijective 4:16:r5:load@base_13:inject 5:25:r1:load@base_15:inject 6:29:r0:mulhi@base_28:lossy 7:33:r3:load@base_25:inject 8:39:r2:add@base_36:inject 9:40:r4:shfl@base_37:inject 10:48:r6:rotr@base_47:bijective 11:49:r0:add@base_46:inject 12:51:r7:load@base_49:inject 13:52:r2:mad@base_43:inject 14:54:r5:load@base_52:inject 15:62:r0:rotr@base_60:bijective +igneum-ca3-v4-uniform/916 8b2a78d72ca29a86 0 0:2:2 1:0:0 2:1:0 3:0:0 4:1:1 5:2:1 6:2:1 7:1:1 8:0:0 9:1:0 10:2:3 11:0:0 12:0:0 13:1:0 14:2:3 15:2:2 2 1 0 1 0 0:12:r1:rotl@base_4:bijective 1:15:r0:mad@base_2:inject 2:21:r3:shfl@base_18:inject 3:25:r7:mul@base_22:lossy 4:26:r4:load@base_21:inject 5:33:r1:load@base_25:inject 6:34:r3:load@base_33:inject 7:35:r7:mad@base_29:inject 8:44:r5:xor@base_37:inject 9:45:r1:mad@base_40:inject 10:49:r2:load@base_45:inject 11:51:r4:xor@base_46:inject 12:53:r0:or@base_50:lossy 13:54:r3:load@base_53:inject 14:57:r1:rotl@base_56:bijective 15:61:r7:rotl@base_58:bijective +igneum-ca3-v4-uniform/917 fa7aed4a72612e58 0 0:2:2 1:0:0 2:0:0 3:2:0 4:2:3 5:2:3 6:0:0 7:2:0 8:0:0 9:2:2 10:1:1 11:0:0 12:2:0 13:0:0 14:0:0 15:1:1 2 0 0 0 2 0:3:r2:rotr@base_1:bijective 1:4:r7:rotr@base_2:bijective 2:8:r2:shfl@base_7:inject 3:9:r5:load@base_4:inject 4:18:r0:mad@base_14:inject 5:27:r5:sub@base_23:inject 6:30:r4:load@base_27:inject 7:37:r2:mulhi@base_28:lossy 8:38:r3:mulhi@base_36:lossy 9:39:r0:load@base_37:inject 10:41:r6:load@base_39:inject 11:45:r1:rotr@base_29:bijective 12:46:r2:load@base_45:inject 13:47:r5:mad@base_43:inject 14:53:r6:shfl@base_44:inject 15:58:r1:add@base_55:inject +igneum-ca3-v4-uniform/918 ead56345899f1599 0 0:0:0 1:1:0 2:0:0 3:2:2 4:2:2 5:1:1 6:0:0 7:2:1 8:0:0 9:1:0 10:1:1 11:1:0 12:2:0 13:0:0 14:2:1 15:2:2 4 1 0 3 0 0:2:r5:mul@base_1:lossy 1:5:r4:mul@base_4:lossy 2:8:r1:xor@base_7:inject 3:10:r4:load@base_8:inject 4:12:r3:sub@base_9:inject 5:14:r1:rotr@base_11:bijective 6:17:r6:mul@base_16:lossy 7:23:r4:or@base_21:lossy 8:24:r7:load@base_23:inject 9:29:r0:mad@base_28:inject 10:32:r1:rotr@base_26:bijective 11:35:r6:load@base_32:inject 12:36:r4:load@base_29:inject 13:46:r0:mad@base_42:inject 14:50:r5:xor@base_38:inject 15:58:r3:shfl@base_57:inject +igneum-ca3-v4-uniform/919 ca72dede7ed1c579 1 0:1:0 1:2:0 2:0:0 3:0:0 4:0:0 5:0:0 6:2:0 7:2:2 8:1:0 9:1:0 10:1:0 11:1:0 12:0:0 13:2:1 14:0:0 15:1:1 2 0 0 1 1 0:9:r2:mul@base_3:lossy 1:11:r6:load@base_9:inject 2:12:r5:mulhi@base_6:lossy 3:18:r7:rotr@base_4:bijective 4:23:r5:load@base_18:inject 5:27:r5:rotl@base_25:bijective 6:29:r3:load@base_23:inject 7:30:r7:load@base_29:inject 8:33:r5:load@base_30:inject 9:35:r6:shfl@base_34:inject 10:37:r7:load@base_35:inject 11:48:r6:xor@base_47:inject 12:49:r2:add@base_45:inject 13:57:r3:xor@base_55:inject 14:59:r0:sub@base_51:inject 15:61:r5:add@base_46:inject +igneum-ca3-v4-uniform/920 4e0abc5108e9653a 0 0:2:1 1:2:1 2:1:0 3:0:0 4:1:0 5:2:3 6:1:0 7:1:1 8:1:0 9:2:2 10:1:1 11:1:1 12:2:2 13:2:1 14:1:0 15:2:3 4 1 0 2 1 0:1:r2:mad@base_0:inject 1:2:r0:load@base_1:inject 2:3:r5:load@base_2:inject 3:4:r1:load@base_3:inject 4:5:r2:load@base_4:inject 5:6:r3:load@base_5:inject 6:12:r1:mul@base_9:lossy 7:17:r6:or@base_10:lossy 8:26:r2:mulhi@base_22:lossy 9:29:r1:rotl@base_23:bijective 10:49:r1:rotl@base_34:bijective 11:51:r6:mul@base_50:lossy 12:52:r2:rotl@base_47:bijective 13:57:r5:add@base_35:inject 14:58:r4:mad@base_56:inject 15:62:r4:add@base_60:inject +igneum-ca3-v4-uniform/921 0281f511e782f997 0 0:2:2 1:2:1 2:2:0 3:1:1 4:0:0 5:0:0 6:1:1 7:1:0 8:0:0 9:0:0 10:2:1 11:2:3 12:0:0 13:0:0 14:2:1 15:0:0 0 0 0 0 0 0:1:r7:sub@base_0:inject 1:5:r5:add@base_3:inject 2:6:r6:load@base_5:inject 3:15:r4:sub@base_8:inject 4:20:r6:sub@base_16:inject 5:22:r3:rotr@base_19:bijective 6:28:r1:mad@base_12:inject 7:31:r1:shfl@base_29:inject 8:35:r6:sub@base_30:inject 9:39:r0:load@base_28:inject 10:42:r1:load@base_39:inject 11:51:r2:xor@base_49:inject 12:59:r2:rotr@base_56:bijective 13:61:r1:rotl@base_48:bijective 14:62:r0:xor@base_50:inject 15:63:r4:load@base_59:inject +igneum-ca3-v4-uniform/922 b21f10b81f6ef504 0 0:0:0 1:0:0 2:0:0 3:2:0 4:2:0 5:2:3 6:2:3 7:0:0 8:1:0 9:0:0 10:1:0 11:1:1 12:1:1 13:0:0 14:0:0 15:1:0 4 0 0 2 2 0:1:r7:add@base_0:inject 1:9:r1:xor@base_8:inject 2:11:r3:load@base_9:inject 3:12:r2:mul@base_7:lossy 4:13:r6:load@base_12:inject 5:14:r7:rotr@base_10:bijective 6:15:r0:load@base_14:inject 7:22:r4:add@base_17:inject 8:23:r1:mul@base_19:lossy 9:26:r7:load@base_23:inject 10:28:r0:mulhi@base_25:lossy 11:29:r2:load@base_26:inject 12:34:r3:shfl@base_31:inject 13:41:r4:mulhi@base_33:lossy 14:45:r0:xor@base_38:inject 15:61:r7:mad@base_54:inject +igneum-ca3-v4-uniform/923 15c077c5d5a35dc4 0 0:0:0 1:1:0 2:2:2 3:1:0 4:2:3 5:2:2 6:0:0 7:1:1 8:0:0 9:2:1 10:2:1 11:2:3 12:0:0 13:2:2 14:2:3 15:0:0 4 2 0 2 0 0:1:r4:rotr@base_0:bijective 1:2:r2:load@base_1:inject 2:4:r3:or@base_3:lossy 3:6:r0:xor@base_5:inject 4:7:r4:load@base_2:inject 5:13:r0:rotl@base_9:bijective 6:18:r4:mul@base_10:lossy 7:23:r7:or@base_17:lossy 8:25:r2:add@base_20:inject 9:29:r5:load@base_25:inject 10:34:r2:rotr@base_32:bijective 11:39:r6:rotl@base_33:bijective 12:41:r1:load@base_29:inject 13:45:r7:load@base_39:inject 14:46:r5:mul@base_43:lossy 15:51:r1:xor@base_50:inject +igneum-ca3-v4-uniform/924 0a6f1cb23ede4c0d 0 0:1:0 1:0:0 2:1:0 3:2:2 4:0:0 5:1:1 6:0:0 7:0:0 8:1:0 9:1:1 10:2:0 11:1:1 12:1:1 13:1:0 14:1:0 15:0:0 5 2 0 3 0 0:2:r5:or@base_1:lossy 1:4:r0:sub@base_0:inject 2:7:r4:mad@base_6:inject 3:10:r1:mad@base_5:inject 4:19:r7:xor@base_11:inject 5:22:r4:mul@base_13:lossy 6:24:r3:or@base_21:lossy 7:32:r2:xor@base_17:inject 8:38:r6:mul@base_28:lossy 9:44:r3:add@base_36:inject 10:47:r4:mad@base_42:inject 11:50:r6:rotr@base_48:bijective 12:55:r3:load@base_47:inject 13:60:r5:add@base_57:inject 14:62:r6:mul@base_59:lossy 15:63:r1:add@base_35:inject +igneum-ca3-v4-uniform/925 a8a53a7334c54741 0 0:0:0 1:2:1 2:0:0 3:2:2 4:0:0 5:1:1 6:1:0 7:0:0 8:1:0 9:0:0 10:1:1 11:0:0 12:2:0 13:2:0 14:1:1 15:2:1 3 1 0 0 2 0:1:r1:mulhi@base_0:lossy 1:9:r6:sub@base_2:inject 2:14:r0:mulhi@base_10:lossy 3:20:r6:rotl@base_19:bijective 4:37:r3:xor@base_28:inject 5:40:r2:mad@base_39:inject 6:43:r6:rotr@base_42:bijective 7:44:r0:add@base_36:inject 8:46:r4:load@base_40:inject 9:49:r7:or@base_48:lossy 10:51:r0:load@base_49:inject 11:52:r1:load@base_51:inject 12:56:r5:add@base_32:inject 13:58:r3:load@base_56:inject 14:59:r2:load@base_46:inject 15:60:r6:shfl@base_54:inject +igneum-ca3-v4-uniform/926 c627bec5ffec2f04 0 0:2:3 1:2:1 2:1:1 3:1:0 4:0:0 5:0:0 6:2:2 7:2:1 8:0:0 9:0:0 10:1:1 11:2:1 12:1:1 13:1:1 14:2:0 15:1:0 4 1 0 3 0 0:3:r6:rotr@base_0:bijective 1:7:r0:load@base_3:inject 2:8:r5:sub@base_6:inject 3:9:r4:load@base_8:inject 4:11:r4:mul@base_10:lossy 5:14:r7:load@base_9:inject 6:23:r0:rotr@base_12:bijective 7:30:r1:add@base_25:inject 8:37:r4:or@base_36:lossy 9:40:r7:rotl@base_38:bijective 10:48:r2:rotr@base_47:bijective 11:51:r1:xor@base_46:inject 12:54:r5:sub@base_50:inject 13:57:r4:mul@base_44:lossy 14:60:r2:shfl@base_52:inject 15:61:r1:mul@base_56:lossy +igneum-ca3-v4-uniform/927 3a7387f431373cad 0 0:1:0 1:1:0 2:1:1 3:0:0 4:1:0 5:0:0 6:1:0 7:0:0 8:1:1 9:1:1 10:0:0 11:0:0 12:0:0 13:1:0 14:1:1 15:2:0 1 0 0 0 1 0:1:r6:add@base_0:inject 1:4:r1:add@base_2:inject 2:11:r1:xor@base_9:inject 3:17:r4:mulhi@base_10:lossy 4:22:r2:load@base_17:inject 5:23:r7:shfl@base_21:inject 6:25:r4:shfl@base_18:inject 7:30:r0:rotr@base_28:bijective 8:34:r1:add@base_31:inject 9:37:r0:shfl@base_32:inject 10:41:r4:rotl@base_38:bijective 11:47:r3:xor@base_39:inject 12:53:r0:xor@base_52:inject 13:55:r1:load@base_47:inject 14:60:r3:rotl@base_57:bijective 15:61:r2:xor@base_51:inject +igneum-ca3-v4-uniform/928 4af4e545506a7184 0 0:1:1 1:2:1 2:2:3 3:2:1 4:1:0 5:2:1 6:0:0 7:0:0 8:2:0 9:2:3 10:1:0 11:0:0 12:1:0 13:2:3 14:2:1 15:2:1 7 1 0 4 2 0:1:r4:mul@base_0:lossy 1:3:r6:load@base_1:inject 2:9:r2:mad@base_5:inject 3:13:r7:add@base_10:inject 4:18:r2:mulhi@base_14:lossy 5:24:r5:load@base_13:inject 6:25:r3:sub@base_7:inject 7:26:r7:load@base_24:inject 8:32:r7:rotr@base_31:bijective 9:40:r1:or@base_38:lossy 10:42:r5:mul@base_37:lossy 11:54:r2:rotr@base_46:bijective 12:55:r6:mul@base_53:lossy 13:56:r4:sub@base_52:inject 14:57:r7:mul@base_39:lossy 15:61:r2:mulhi@base_58:lossy +igneum-ca3-v4-uniform/929 e991d49177e0bbf7 0 0:1:0 1:0:0 2:2:1 3:2:2 4:1:1 5:1:0 6:0:0 7:0:0 8:0:0 9:0:0 10:1:0 11:0:0 12:0:0 13:2:0 14:2:3 15:2:2 5 1 0 2 2 0:7:r5:mul@base_4:lossy 1:15:r5:shfl@base_8:inject 2:16:r2:or@base_3:lossy 3:20:r7:load@base_15:inject 4:22:r0:xor@base_21:inject 5:23:r4:mad@base_18:inject 6:25:r1:load@base_22:inject 7:28:r5:load@base_16:inject 8:29:r3:add@base_9:inject 9:34:r6:mad@base_26:inject 10:35:r7:mul@base_33:lossy 11:37:r4:mulhi@base_36:lossy 12:48:r4:sub@base_47:inject 13:55:r5:rotl@base_53:bijective 14:59:r4:mulhi@base_56:lossy 15:63:r6:load@base_59:inject +igneum-ca3-v4-uniform/930 2046c920900be646 0 0:0:0 1:1:1 2:0:0 3:2:1 4:0:0 5:2:0 6:1:0 7:1:1 8:1:0 9:0:0 10:0:0 11:0:0 12:1:1 13:2:2 14:0:0 15:2:1 4 1 0 1 2 0:5:r2:mulhi@base_4:lossy 1:7:r4:mad@base_6:inject 2:13:r7:load@base_5:inject 3:17:r2:add@base_12:inject 4:19:r0:mad@base_18:inject 5:22:r3:load@base_13:inject 6:26:r1:mul@base_23:lossy 7:27:r4:load@base_26:inject 8:37:r0:xor@base_36:inject 9:38:r6:shfl@base_31:inject 10:40:r5:mulhi@base_25:lossy 11:43:r4:add@base_42:inject 12:45:r6:load@base_43:inject 13:50:r2:shfl@base_46:inject 14:58:r0:rotr@base_54:bijective 15:59:r3:or@base_52:lossy +igneum-ca3-v4-uniform/931 df45c6c2356e2173 0 0:1:1 1:1:0 2:0:0 3:2:3 4:1:1 5:1:0 6:2:1 7:0:0 8:0:0 9:2:1 10:1:0 11:1:1 12:0:0 13:2:3 14:2:1 15:1:1 2 0 0 0 2 0:1:r5:sub@base_0:inject 1:6:r1:sub@base_5:inject 2:11:r5:mulhi@base_3:lossy 3:19:r0:mad@base_2:inject 4:23:r5:load@base_19:inject 5:29:r6:mad@base_28:inject 6:30:r2:mulhi@base_18:lossy 7:32:r2:add@base_31:inject 8:37:r7:shfl@base_26:inject 9:40:r0:load@base_37:inject 10:42:r5:load@base_32:inject 11:47:r0:xor@base_41:inject 12:50:r0:sub@base_48:inject 13:51:r1:load@base_50:inject 14:57:r3:rotr@base_56:bijective 15:58:r7:sub@base_52:inject +igneum-ca3-v4-uniform/932 10e571f1b14599d5 1 0:1:1 1:0:0 2:1:1 3:0:0 4:1:1 5:1:1 6:0:0 7:1:0 8:0:0 9:1:1 10:1:1 11:2:0 12:0:0 13:0:0 14:1:0 15:0:0 2 0 0 2 0 0:1:r1:shfl@base_0:inject 1:2:r5:load@base_1:inject 2:4:r7:load@base_2:inject 3:14:r1:rotr@base_13:bijective 4:22:r6:mad@base_17:inject 5:23:r2:xor@base_21:inject 6:31:r7:add@base_28:inject 7:33:r0:rotl@base_7:bijective 8:35:r6:shfl@base_32:inject 9:37:r4:mul@base_18:lossy 10:40:r5:xor@base_39:inject 11:51:r1:rotl@base_24:bijective 12:53:r2:rotl@base_36:bijective 13:58:r1:mul@base_57:lossy 14:59:r5:mad@base_41:inject 15:63:r1:shfl@base_61:inject +igneum-ca3-v4-uniform/933 9b2fbc9dfc9ec8f2 0 0:2:1 1:2:0 2:0:0 3:1:1 4:2:1 5:0:0 6:1:0 7:1:0 8:2:0 9:2:3 10:1:0 11:2:1 12:2:1 13:1:0 14:0:0 15:0:0 4 2 0 1 1 0:5:r6:mad@base_1:inject 1:6:r2:mulhi@base_4:lossy 2:7:r7:load@base_5:inject 3:12:r2:or@base_11:lossy 4:14:r3:or@base_10:lossy 5:16:r6:mul@base_9:lossy 6:22:r0:add@base_21:inject 7:25:r3:rotl@base_17:bijective 8:32:r1:xor@base_27:inject 9:40:r0:xor@base_39:inject 10:43:r3:sub@base_41:inject 11:51:r5:mad@base_48:inject 12:54:r2:add@base_46:inject 13:55:r5:add@base_52:inject 14:58:r4:sub@base_31:inject 15:63:r3:mad@base_61:inject +igneum-ca3-v4-uniform/934 808fca092ccbfcb7 0 0:2:1 1:1:1 2:2:0 3:1:0 4:2:2 5:0:0 6:1:0 7:1:1 8:1:0 9:0:0 10:2:1 11:2:0 12:2:2 13:1:1 14:1:1 15:2:2 0 0 0 0 0 0:3:r0:rotr@base_2:bijective 1:6:r6:add@base_4:inject 2:19:r0:load@base_6:inject 3:22:r7:add@base_8:inject 4:23:r3:add@base_17:inject 5:24:r4:rotl@base_20:bijective 6:37:r2:shfl@base_26:inject 7:38:r5:xor@base_29:inject 8:41:r1:mad@base_40:inject 9:47:r6:load@base_38:inject 10:48:r2:load@base_41:inject 11:50:r0:rotr@base_45:bijective 12:51:r2:add@base_49:inject 13:58:r2:rotr@base_57:bijective 14:60:r1:load@base_58:inject 15:61:r3:xor@base_56:inject +igneum-ca3-v4-uniform/935 e875b8bbcbe09819 0 0:1:0 1:1:0 2:2:1 3:1:0 4:2:2 5:1:1 6:0:0 7:1:0 8:1:0 9:0:0 10:1:0 11:1:0 12:1:0 13:0:0 14:1:0 15:2:1 3 1 0 0 2 0:3:r6:xor@base_1:inject 1:6:r5:mad@base_4:inject 2:13:r4:xor@base_10:inject 3:14:r0:load@base_13:inject 4:15:r6:sub@base_7:inject 5:19:r3:load@base_15:inject 6:22:r3:xor@base_21:inject 7:26:r1:mulhi@base_17:lossy 8:32:r6:shfl@base_29:inject 9:33:r3:load@base_32:inject 10:34:r7:shfl@base_30:inject 11:40:r3:load@base_34:inject 12:45:r0:rotr@base_38:bijective 13:51:r4:xor@base_43:inject 14:53:r6:or@base_50:lossy 15:58:r7:mulhi@base_57:lossy +igneum-ca3-v4-uniform/936 d651ed656f8da90e 0 0:0:0 1:2:0 2:2:0 3:1:0 4:1:0 5:2:2 6:1:0 7:0:0 8:0:0 9:0:0 10:2:1 11:2:1 12:0:0 13:2:3 14:2:1 15:1:0 4 1 0 3 0 0:7:r6:shfl@base_5:inject 1:10:r4:rotr@base_8:bijective 2:12:r1:mul@base_1:lossy 3:15:r0:shfl@base_11:inject 4:16:r3:mad@base_3:inject 5:17:r0:load@base_16:inject 6:21:r4:load@base_15:inject 7:24:r5:or@base_20:lossy 8:28:r5:xor@base_25:inject 9:29:r4:load@base_28:inject 10:30:r3:load@base_17:inject 11:32:r1:mad@base_23:inject 12:38:r5:rotl@base_31:bijective 13:40:r1:load@base_38:inject 14:47:r6:mul@base_44:lossy 15:53:r0:mul@base_52:lossy +igneum-ca3-v4-uniform/937 80fe0730d45d0609 0 0:0:0 1:2:0 2:0:0 3:1:1 4:0:0 5:1:0 6:2:1 7:0:0 8:1:0 9:0:0 10:2:3 11:2:3 12:0:0 13:1:1 14:1:1 15:1:0 1 1 0 0 0 0:3:r1:shfl@base_0:inject 1:11:r1:add@base_6:inject 2:12:r5:rotr@base_2:bijective 3:19:r0:xor@base_17:inject 4:21:r4:or@base_13:lossy 5:22:r5:load@base_21:inject 6:27:r2:load@base_19:inject 7:28:r0:load@base_27:inject 8:29:r6:rotr@base_9:bijective 9:32:r1:rotr@base_24:bijective 10:39:r4:load@base_28:inject 11:44:r2:rotl@base_40:bijective 12:45:r3:mad@base_37:inject 13:51:r7:shfl@base_47:inject 14:54:r5:shfl@base_42:inject 15:57:r2:shfl@base_52:inject +igneum-ca3-v4-uniform/938 730072a1a95c8731 0 0:2:3 1:2:1 2:0:0 3:1:1 4:0:0 5:2:2 6:0:0 7:2:0 8:0:0 9:1:0 10:1:1 11:2:0 12:2:2 13:1:0 14:2:1 15:2:1 3 1 0 1 1 0:10:r4:sub@base_7:inject 1:11:r1:rotr@base_5:bijective 2:22:r0:mul@base_20:lossy 3:23:r1:shfl@base_14:inject 4:24:r4:mulhi@base_16:lossy 5:29:r2:rotl@base_28:bijective 6:30:r5:rotr@base_27:bijective 7:35:r3:load@base_22:inject 8:38:r3:add@base_36:inject 9:43:r6:load@base_35:inject 10:47:r7:xor@base_46:inject 11:48:r0:or@base_33:lossy 12:56:r4:mad@base_55:inject 13:59:r6:add@base_53:inject 14:60:r3:mad@base_52:inject 15:61:r1:load@base_60:inject +igneum-ca3-v4-uniform/939 7c425858667e0be2 0 0:0:0 1:1:0 2:2:3 3:0:0 4:2:3 5:1:0 6:0:0 7:1:0 8:2:0 9:0:0 10:2:3 11:0:0 12:0:0 13:1:1 14:2:2 15:2:0 2 0 0 2 0 0:1:r4:rotr@base_0:bijective 1:3:r4:rotl@base_2:bijective 2:7:r5:xor@base_6:inject 3:8:r0:load@base_3:inject 4:13:r7:xor@base_4:inject 5:17:r5:sub@base_10:inject 6:18:r4:add@base_16:inject 7:25:r2:mul@base_21:lossy 8:28:r4:xor@base_27:inject 9:36:r7:rotl@base_32:bijective 10:41:r2:mul@base_39:lossy 11:45:r3:load@base_36:inject 12:46:r5:load@base_41:inject 13:51:r3:load@base_46:inject 14:52:r6:sub@base_49:inject 15:59:r7:add@base_50:inject +igneum-ca3-v4-uniform/940 438a7b532e45a042 0 0:1:1 1:2:1 2:1:0 3:2:3 4:0:0 5:1:0 6:1:1 7:1:0 8:2:0 9:0:0 10:2:3 11:0:0 12:2:0 13:1:0 14:2:1 15:0:0 2 1 0 1 0 0:2:r7:sub@base_1:inject 1:3:r5:load@base_2:inject 2:7:r0:or@base_6:lossy 3:16:r7:mul@base_10:lossy 4:18:r5:mad@base_15:inject 5:20:r4:rotr@base_19:bijective 6:27:r1:sub@base_23:inject 7:31:r0:mad@base_25:inject 8:33:r5:sub@base_29:inject 9:38:r3:add@base_37:inject 10:40:r0:shfl@base_34:inject 11:42:r2:xor@base_39:inject 12:48:r7:rotl@base_36:bijective 13:55:r6:sub@base_51:inject 14:58:r6:shfl@base_57:inject 15:63:r0:load@base_58:inject +igneum-ca3-v4-uniform/941 641dbac9073bd70f 0 0:0:0 1:1:1 2:1:0 3:1:1 4:1:0 5:2:0 6:2:0 7:0:0 8:1:1 9:1:0 10:2:3 11:1:0 12:1:0 13:2:0 14:0:0 15:1:0 2 0 0 2 0 0:3:r1:mul@base_1:lossy 1:4:r2:load@base_3:inject 2:5:r4:add@base_2:inject 3:9:r0:load@base_5:inject 4:17:r5:mul@base_16:lossy 5:18:r6:mad@base_8:inject 6:24:r4:mad@base_15:inject 7:29:r2:mad@base_27:inject 8:38:r2:shfl@base_32:inject 9:39:r4:xor@base_34:inject 10:41:r5:load@base_39:inject 11:44:r5:rotl@base_43:bijective 12:45:r0:rotl@base_42:bijective 13:47:r1:rotl@base_35:bijective 14:52:r6:load@base_47:inject 15:57:r3:xor@base_54:inject +igneum-ca3-v4-uniform/942 3c1fc55ece08ec99 0 0:1:1 1:1:0 2:0:0 3:2:3 4:2:3 5:0:0 6:1:1 7:0:0 8:0:0 9:1:1 10:2:0 11:1:1 12:0:0 13:2:0 14:2:0 15:2:0 3 1 0 1 1 0:8:r2:sub@base_6:inject 1:12:r6:or@base_3:lossy 2:13:r5:mad@base_9:inject 3:16:r5:rotl@base_15:bijective 4:18:r7:load@base_13:inject 5:23:r0:shfl@base_2:inject 6:31:r4:mulhi@base_21:lossy 7:36:r6:shfl@base_32:inject 8:37:r3:rotl@base_34:bijective 9:39:r7:xor@base_30:inject 10:49:r6:load@base_37:inject 11:51:r5:rotl@base_45:bijective 12:52:r3:mul@base_48:lossy 13:56:r4:load@base_51:inject 14:59:r6:rotr@base_57:bijective 15:63:r5:sub@base_60:inject +igneum-ca3-v4-uniform/943 74538f3d1f39de96 0 0:1:0 1:2:2 2:0:0 3:2:1 4:2:0 5:1:0 6:0:0 7:1:1 8:0:0 9:0:0 10:1:0 11:1:0 12:1:1 13:1:1 14:0:0 15:1:0 4 2 0 1 1 0:1:r3:xor@base_0:inject 1:7:r2:mulhi@base_4:lossy 2:11:r1:rotr@base_6:bijective 3:17:r4:xor@base_13:inject 4:24:r7:xor@base_18:inject 5:26:r6:load@base_24:inject 6:35:r7:xor@base_28:inject 7:37:r3:mad@base_25:inject 8:38:r4:or@base_34:lossy 9:39:r1:load@base_38:inject 10:43:r7:mul@base_41:lossy 11:44:r3:load@base_43:inject 12:52:r1:rotl@base_45:bijective 13:55:r6:load@base_39:inject 14:57:r2:shfl@base_47:inject 15:63:r1:or@base_62:lossy +igneum-ca3-v4-uniform/944 3c6988e5f89788f6 0 0:2:3 1:2:3 2:0:0 3:0:0 4:2:0 5:0:0 6:0:0 7:0:0 8:2:2 9:0:0 10:2:3 11:1:0 12:0:0 13:2:1 14:0:0 15:2:3 5 0 0 2 3 0:1:r3:mul@base_0:lossy 1:2:r0:load@base_1:inject 2:14:r2:mulhi@base_12:lossy 3:20:r5:xor@base_15:inject 4:22:r3:mulhi@base_7:lossy 5:23:r1:xor@base_17:inject 6:25:r7:add@base_24:inject 7:30:r3:add@base_27:inject 8:34:r6:add@base_18:inject 9:35:r1:load@base_34:inject 10:51:r6:mul@base_50:lossy 11:55:r6:mulhi@base_54:lossy 12:58:r6:xor@base_57:inject 13:59:r2:xor@base_46:inject 14:60:r3:rotr@base_49:bijective 15:63:r1:shfl@base_36:inject +igneum-ca3-v4-uniform/945 1f828f8f8d65982a 0 0:0:0 1:2:3 2:1:0 3:1:1 4:2:2 5:2:1 6:1:1 7:0:0 8:1:1 9:0:0 10:0:0 11:2:3 12:1:0 13:0:0 14:1:1 15:0:0 3 1 0 1 1 0:4:r5:add@base_3:inject 1:8:r7:mulhi@base_2:lossy 2:12:r2:load@base_8:inject 3:16:r6:mul@base_13:lossy 4:20:r2:xor@base_17:inject 5:32:r1:rotl@base_23:bijective 6:37:r0:add@base_33:inject 7:38:r2:load@base_37:inject 8:39:r6:xor@base_36:inject 9:41:r4:load@base_38:inject 10:47:r0:shfl@base_44:inject 11:52:r2:load@base_47:inject 12:54:r0:or@base_53:lossy 13:58:r4:mad@base_56:inject 14:60:r4:sub@base_59:inject 15:63:r1:rotr@base_62:bijective +igneum-ca3-v4-uniform/946 f31f997530ec7fbe 0 0:0:0 1:0:0 2:2:0 3:0:0 4:0:0 5:1:0 6:2:0 7:2:2 8:0:0 9:0:0 10:0:0 11:1:1 12:2:2 13:2:2 14:1:1 15:2:0 5 1 0 2 2 0:4:r1:rotl@base_3:bijective 1:6:r3:mul@base_0:lossy 2:9:r5:rotl@base_5:bijective 3:17:r4:mulhi@base_8:lossy 4:19:r2:mul@base_13:lossy 5:22:r1:mulhi@base_10:lossy 6:23:r5:or@base_15:lossy 7:24:r7:add@base_21:inject 8:36:r1:mad@base_34:inject 9:38:r3:load@base_36:inject 10:44:r2:rotl@base_33:bijective 11:45:r6:load@base_44:inject 12:49:r5:load@base_45:inject 13:52:r7:rotr@base_51:bijective 14:62:r4:load@base_38:inject 15:63:r2:rotl@base_56:bijective +igneum-ca3-v4-uniform/947 75e3eb4eb86fc6dd 0 0:1:0 1:2:1 2:0:0 3:2:2 4:2:2 5:2:0 6:1:0 7:2:0 8:0:0 9:1:0 10:2:0 11:1:1 12:1:1 13:0:0 14:1:0 15:2:2 2 0 0 1 1 0:1:r4:sub@shadow_252:inject 1:2:r2:load@base_1:inject 2:21:r0:xor@base_18:inject 3:25:r1:load@base_21:inject 4:26:r5:shfl@base_17:inject 5:27:r2:shfl@base_9:inject 6:28:r3:load@base_26:inject 7:30:r6:load@base_28:inject 8:33:r5:mulhi@base_29:lossy 9:34:r7:xor@base_32:inject 10:42:r6:mul@base_35:lossy 11:51:r4:shfl@base_43:inject 12:56:r2:shfl@base_46:inject 13:60:r0:load@base_56:inject 14:61:r3:rotr@base_49:bijective 15:62:r7:xor@base_58:inject +igneum-ca3-v4-uniform/948 e0a7dc0deda5cc9e 0 0:0:0 1:1:0 2:1:0 3:2:0 4:1:0 5:0:0 6:1:1 7:0:0 8:1:0 9:1:1 10:0:0 11:2:3 12:1:0 13:1:1 14:0:0 15:2:1 1 0 0 1 0 0:2:r6:rotr@base_0:bijective 1:5:r2:load@base_2:inject 2:6:r4:add@base_3:inject 3:8:r0:load@base_5:inject 4:13:r1:mad@base_10:inject 5:17:r5:sub@base_9:inject 6:22:r2:add@base_15:inject 7:24:r7:load@base_22:inject 8:25:r0:load@base_24:inject 9:26:r3:rotl@base_18:bijective 10:28:r7:load@base_26:inject 11:29:r6:mul@base_16:lossy 12:33:r3:xor@base_30:inject 13:49:r6:add@base_37:inject 14:51:r0:mad@base_46:inject 15:58:r0:rotr@base_55:bijective +igneum-ca3-v4-uniform/949 af5ed1f8e5f74f4b 0 0:1:0 1:1:1 2:1:0 3:1:1 4:0:0 5:0:0 6:1:1 7:1:0 8:1:0 9:0:0 10:0:0 11:2:1 12:0:0 13:2:3 14:0:0 15:2:3 1 0 0 0 1 0:4:r1:rotl@base_3:bijective 1:11:r1:mulhi@base_7:lossy 2:12:r0:xor@base_8:inject 3:15:r6:xor@base_2:inject 4:16:r3:load@base_15:inject 5:18:r7:add@base_9:inject 6:30:r3:shfl@base_25:inject 7:31:r0:shfl@base_20:inject 8:37:r5:load@base_30:inject 9:40:r4:sub@base_38:inject 10:44:r0:shfl@base_35:inject 11:49:r4:add@base_48:inject 12:50:r7:rotr@base_39:bijective 13:52:r0:load@base_49:inject 14:59:r0:rotl@base_58:bijective 15:62:r6:load@base_50:inject +igneum-ca3-v4-uniform/950 0f39ac4c53344db8 0 0:2:0 1:0:0 2:2:0 3:1:1 4:2:0 5:1:0 6:0:0 7:1:1 8:0:0 9:1:0 10:0:0 11:1:0 12:2:1 13:1:0 14:2:1 15:1:1 3 1 0 2 0 0:3:r2:shfl@base_0:inject 1:7:r2:mad@base_6:inject 2:16:r5:add@base_12:inject 3:17:r2:add@base_11:inject 4:23:r6:load@base_16:inject 5:34:r4:or@base_31:lossy 6:36:r0:mul@base_24:lossy 7:38:r4:load@base_36:inject 8:41:r0:rotl@base_39:bijective 9:43:r5:load@base_41:inject 10:51:r2:mad@base_50:inject 11:52:r1:load@base_51:inject 12:55:r7:mad@base_42:inject 13:56:r2:mul@base_54:lossy 14:58:r1:rotl@base_53:bijective 15:63:r6:load@base_55:inject +igneum-ca3-v4-uniform/951 a360d2d0bcaff8e7 0 0:2:1 1:0:0 2:1:1 3:1:0 4:2:0 5:2:1 6:0:0 7:0:0 8:2:1 9:2:1 10:0:0 11:2:0 12:0:0 13:2:1 14:2:3 15:1:1 1 0 0 0 1 0:3:r1:shfl@base_2:inject 1:5:r4:xor@base_1:inject 2:6:r7:load@base_5:inject 3:17:r1:rotr@base_9:bijective 4:18:r5:mulhi@base_12:lossy 5:19:r2:add@base_15:inject 6:22:r4:xor@base_21:inject 7:29:r3:load@base_22:inject 8:32:r7:xor@base_14:inject 9:36:r7:add@base_33:inject 10:37:r0:add@base_27:inject 11:38:r2:load@base_36:inject 12:41:r6:rotr@base_16:bijective 13:45:r2:add@base_39:inject 14:59:r0:rotr@base_47:bijective 15:63:r2:xor@base_62:inject +igneum-ca3-v4-uniform/952 d7fc5c629c223415 0 0:0:0 1:0:0 2:2:0 3:1:1 4:2:1 5:1:0 6:0:0 7:0:0 8:1:0 9:2:0 10:1:1 11:2:3 12:1:1 13:0:0 14:2:1 15:0:0 2 0 0 1 1 0:15:r2:xor@base_11:inject 1:16:r0:mulhi@base_8:lossy 2:19:r2:shfl@base_18:inject 3:21:r6:load@base_19:inject 4:28:r3:sub@base_22:inject 5:30:r4:xor@base_27:inject 6:31:r5:shfl@base_12:inject 7:34:r6:rotr@base_32:bijective 8:35:r1:load@base_28:inject 9:36:r5:load@base_35:inject 10:39:r7:mul@base_38:lossy 11:40:r4:mad@base_33:inject 12:43:r1:load@base_39:inject 13:47:r7:load@base_40:inject 14:60:r6:mad@base_59:inject 15:61:r2:sub@base_50:inject +igneum-ca3-v4-uniform/953 048dc48aa5829005 0 0:1:0 1:0:0 2:1:0 3:1:1 4:2:3 5:1:0 6:0:0 7:1:0 8:1:0 9:0:0 10:2:1 11:1:0 12:1:0 13:0:0 14:0:0 15:0:0 2 0 0 0 2 0:3:r5:add@base_0:inject 1:8:r2:rotr@base_7:bijective 2:11:r1:rotl@base_9:bijective 3:12:r6:shfl@base_5:inject 4:13:r7:load@base_11:inject 5:15:r7:mulhi@base_14:lossy 6:17:r0:load@base_15:inject 7:26:r4:xor@base_23:inject 8:34:r2:sub@base_24:inject 9:36:r4:mad@base_33:inject 10:40:r1:mulhi@base_30:lossy 11:41:r3:load@base_40:inject 12:46:r0:load@base_41:inject 13:52:r6:sub@base_44:inject 14:62:r3:xor@base_61:inject 15:63:r5:shfl@base_59:inject +igneum-ca3-v4-uniform/954 dc4852eadbb7857c 1 0:2:2 1:1:1 2:2:2 3:0:0 4:1:0 5:2:0 6:1:0 7:1:0 8:2:2 9:0:0 10:1:1 11:2:0 12:2:0 13:0:0 14:1:0 15:1:0 4 1 0 2 1 0:3:r3:xor@base_1:inject 1:4:r2:mul@base_2:lossy 2:6:r6:load@base_4:inject 3:8:r6:rotl@base_7:bijective 4:9:r7:load@base_8:inject 5:11:r4:or@base_10:lossy 6:12:r6:load@base_11:inject 7:23:r7:rotl@base_22:bijective 8:25:r4:load@base_23:inject 9:26:r5:load@base_25:inject 10:30:r1:sub@base_29:inject 11:31:r6:load@base_26:inject 12:36:r2:rotl@base_35:bijective 13:39:r0:load@base_31:inject 14:43:r1:mulhi@base_37:lossy 15:53:r4:mul@base_50:lossy +igneum-ca3-v4-uniform/955 8624a6b33a0f3051 0 0:0:0 1:2:2 2:0:0 3:1:0 4:1:0 5:2:2 6:2:1 7:2:1 8:0:0 9:0:0 10:0:0 11:2:1 12:1:0 13:0:0 14:0:0 15:2:0 2 1 0 1 0 0:1:r4:mad@base_0:inject 1:4:r7:xor@base_2:inject 2:6:r4:add@base_5:inject 3:8:r0:sub@base_7:inject 4:9:r6:load@base_4:inject 5:15:r6:add@base_10:inject 6:16:r2:load@base_9:inject 7:21:r4:xor@base_20:inject 8:24:r6:xor@base_23:inject 9:26:r3:rotr@base_17:bijective 10:29:r2:load@base_21:inject 11:30:r4:add@base_28:inject 12:37:r0:load@base_30:inject 13:43:r3:or@base_42:lossy 14:49:r5:mul@base_36:lossy 15:62:r1:mad@base_56:inject +igneum-ca3-v4-uniform/956 45dff785b0517c0d 1 0:0:0 1:0:0 2:0:0 3:0:0 4:0:0 5:1:0 6:1:1 7:2:2 8:2:0 9:2:0 10:0:0 11:2:1 12:1:0 13:0:0 14:1:1 15:0:0 2 0 0 0 2 0:1:r2:rotl@base_0:bijective 1:7:r6:rotl@base_4:bijective 2:12:r0:rotl@base_6:bijective 3:14:r7:shfl@base_9:inject 4:15:r5:load@base_14:inject 5:18:r2:xor@base_3:inject 6:21:r0:load@base_18:inject 7:22:r1:mulhi@base_17:lossy 8:32:r1:shfl@base_27:inject 9:38:r0:add@base_25:inject 10:43:r1:xor@base_34:inject 11:46:r7:add@base_42:inject 12:49:r4:mulhi@base_44:lossy 13:50:r6:load@base_49:inject 14:52:r4:load@base_50:inject 15:54:r0:load@base_52:inject +igneum-ca3-v4-uniform/957 e03cbe0dc07f6714 0 0:2:2 1:1:1 2:0:0 3:0:0 4:2:1 5:0:0 6:0:0 7:1:0 8:2:0 9:1:1 10:0:0 11:2:1 12:0:0 13:1:0 14:1:1 15:2:2 2 1 0 0 1 0:3:r7:mulhi@base_2:lossy 1:5:r0:load@base_3:inject 2:9:r7:xor@base_7:inject 3:15:r4:sub@base_12:inject 4:19:r2:mad@base_16:inject 5:22:r5:sub@base_13:inject 6:32:r3:mad@base_27:inject 7:35:r7:add@base_28:inject 8:44:r2:shfl@base_42:inject 9:45:r3:xor@base_37:inject 10:46:r6:rotr@base_41:bijective 11:49:r0:load@base_22:inject 12:51:r3:load@base_49:inject 13:53:r7:load@base_51:inject 14:54:r4:or@base_52:lossy 15:55:r1:mad@base_48:inject +igneum-ca3-v4-uniform/958 973efa435e4c969b 1 0:0:0 1:0:0 2:2:0 3:2:1 4:1:0 5:1:0 6:1:1 7:0:0 8:1:1 9:0:0 10:0:0 11:1:0 12:2:0 13:1:0 14:0:0 15:2:2 1 0 0 1 0 0:2:r3:rotl@base_1:bijective 1:5:r7:load@base_2:inject 2:9:r5:load@base_5:inject 3:13:r7:rotr@base_6:bijective 4:15:r0:load@base_13:inject 5:16:r3:mad@base_14:inject 6:17:r2:load@base_16:inject 7:32:r7:xor@base_29:inject 8:44:r1:xor@base_42:inject 9:45:r6:xor@base_43:inject 10:50:r4:rotr@base_48:bijective 11:51:r0:mul@base_46:lossy 12:53:r0:mad@base_52:inject 13:55:r5:add@base_26:inject 14:57:r6:load@base_51:inject 15:58:r4:mad@base_54:inject +igneum-ca3-v4-uniform/959 e815bbf8a6d5f8bc 0 0:0:0 1:1:0 2:1:0 3:1:1 4:0:0 5:1:1 6:1:0 7:1:0 8:1:1 9:0:0 10:2:3 11:2:2 12:0:0 13:1:1 14:0:0 15:0:0 4 1 0 2 1 0:6:r1:add@base_2:inject 1:7:r5:load@base_6:inject 2:10:r7:rotl@base_8:bijective 3:13:r0:or@base_3:lossy 4:16:r3:load@base_13:inject 5:18:r2:load@base_16:inject 6:24:r5:shfl@base_23:inject 7:30:r4:load@base_18:inject 8:37:r7:mulhi@base_32:lossy 9:39:r0:mad@base_26:inject 10:40:r1:load@base_37:inject 11:54:r1:xor@base_53:inject 12:55:r4:mul@base_51:lossy 13:57:r7:mul@base_38:lossy 14:59:r4:load@base_57:inject 15:60:r2:sub@base_58:inject +igneum-ca3-v4-uniform/960 7599ccf51389147e 0 0:2:3 1:1:0 2:0:0 3:2:0 4:1:1 5:0:0 6:2:0 7:0:0 8:1:0 9:1:1 10:0:0 11:0:0 12:1:1 13:2:3 14:1:0 15:1:1 1 0 0 1 0 0:6:r4:shfl@base_2:inject 1:9:r6:mad@base_5:inject 2:14:r6:mad@base_13:inject 3:16:r2:add@base_4:inject 4:19:r4:sub@base_17:inject 5:21:r0:load@base_14:inject 6:23:r1:add@base_20:inject 7:29:r6:load@base_21:inject 8:31:r0:add@base_30:inject 9:40:r7:mul@base_36:lossy 10:53:r6:sub@base_41:inject 11:55:r1:rotr@base_51:bijective 12:57:r3:shfl@base_43:inject 13:58:r5:xor@base_54:inject 14:59:r2:load@base_57:inject 15:63:r6:load@base_58:inject +igneum-ca3-v4-uniform/961 736c0cfae98a232d 0 0:2:3 1:1:1 2:2:1 3:1:1 4:0:0 5:2:0 6:2:3 7:1:0 8:0:0 9:0:0 10:1:1 11:2:3 12:0:0 13:0:0 14:0:0 15:0:0 2 1 0 1 0 0:10:r0:shfl@base_0:inject 1:14:r7:rotl@base_9:bijective 2:18:r6:add@base_12:inject 3:19:r0:mad@base_15:inject 4:20:r1:mad@base_8:inject 5:27:r5:load@base_18:inject 6:32:r7:xor@base_31:inject 7:40:r1:or@base_28:lossy 8:42:r2:xor@base_39:inject 9:47:r5:sub@base_46:inject 10:50:r4:load@base_47:inject 11:54:r0:mad@base_38:inject 12:55:r7:rotr@base_43:bijective 13:59:r2:mul@base_58:lossy 14:61:r1:shfl@base_49:inject 15:63:r7:load@base_61:inject +igneum-ca3-v4-uniform/962 9a9cf4552d360d45 0 0:1:0 1:2:1 2:2:2 3:2:2 4:2:3 5:1:1 6:1:1 7:1:1 8:2:2 9:0:0 10:1:0 11:1:1 12:2:2 13:1:1 14:0:0 15:2:2 4 1 0 2 1 0:5:r1:mul@base_3:lossy 1:6:r6:add@base_2:inject 2:13:r2:shfl@base_12:inject 3:22:r0:mad@base_10:inject 4:30:r4:mul@base_25:lossy 5:32:r3:rotr@base_28:bijective 6:33:r1:load@base_32:inject 7:37:r1:mulhi@base_36:lossy 8:38:r6:rotr@base_31:bijective 9:43:r7:rotl@base_40:bijective 10:50:r2:rotr@base_35:bijective 11:51:r3:or@base_47:lossy 12:52:r6:load@base_50:inject 13:55:r1:add@base_46:inject 14:57:r4:load@base_55:inject 15:63:r0:mad@base_56:inject +igneum-ca3-v4-uniform/963 0cc4e826c6b9a05c 0 0:1:0 1:2:1 2:2:2 3:0:0 4:2:2 5:1:0 6:2:0 7:1:1 8:0:0 9:0:0 10:1:1 11:0:0 12:1:1 13:2:1 14:1:1 15:2:3 2 0 0 1 1 0:3:r6:sub@base_0:inject 1:10:r1:mad@base_9:inject 2:13:r7:add@base_11:inject 3:16:r7:xor@base_14:inject 4:21:r4:load@base_13:inject 5:23:r1:shfl@base_22:inject 6:34:r3:rotl@base_24:bijective 7:35:r1:shfl@base_28:inject 8:36:r6:shfl@base_27:inject 9:40:r2:rotr@base_33:bijective 10:46:r6:mul@base_44:lossy 11:47:r0:add@base_38:inject 12:53:r3:mulhi@base_50:lossy 13:57:r5:load@base_34:inject 14:62:r7:add@base_31:inject 15:63:r2:rotl@base_60:bijective +igneum-ca3-v4-uniform/964 61e946dd88461093 0 0:0:0 1:2:3 2:2:2 3:0:0 4:1:1 5:1:0 6:0:0 7:0:0 8:1:1 9:2:3 10:2:2 11:2:1 12:1:0 13:1:0 14:0:0 15:0:0 1 0 0 0 1 0:4:r1:shfl@base_2:inject 1:10:r0:mulhi@base_6:lossy 2:11:r5:sub@base_8:inject 3:12:r2:load@base_11:inject 4:13:r6:xor@base_5:inject 5:16:r1:rotr@base_9:bijective 6:19:r4:rotl@base_18:bijective 7:21:r3:sub@base_20:inject 8:40:r1:shfl@base_30:inject 9:49:r5:add@base_45:inject 10:51:r0:xor@base_46:inject 11:52:r6:load@base_49:inject 12:56:r2:xor@base_54:inject 13:57:r0:load@base_56:inject 14:58:r3:xor@base_37:inject 15:60:r7:load@base_58:inject +igneum-ca3-v4-uniform/965 622e577013b0f701 0 0:0:0 1:0:0 2:0:0 3:1:1 4:0:0 5:0:0 6:0:0 7:2:2 8:0:0 9:2:1 10:0:0 11:1:1 12:0:0 13:0:0 14:1:0 15:0:0 3 1 0 0 2 0:4:r0:mulhi@base_2:lossy 1:6:r5:xor@base_0:inject 2:7:r1:load@base_6:inject 3:13:r2:xor@base_9:inject 4:15:r3:shfl@base_10:inject 5:17:r7:xor@base_5:inject 6:18:r0:load@base_13:inject 7:22:r5:xor@base_19:inject 8:32:r7:or@base_31:lossy 9:39:r2:sub@base_36:inject 10:40:r3:load@base_32:inject 11:42:r3:mulhi@base_41:lossy 12:43:r6:load@base_39:inject 13:54:r5:add@base_29:inject 14:59:r4:shfl@base_51:inject 15:61:r3:rotr@base_57:bijective +igneum-ca3-v4-uniform/966 027dae68f9e84394 0 0:2:0 1:0:0 2:1:0 3:2:3 4:0:0 5:0:0 6:2:0 7:2:2 8:2:2 9:0:0 10:0:0 11:1:0 12:0:0 13:1:0 14:2:1 15:1:1 2 1 0 1 0 0:7:r4:mad@base_2:inject 1:10:r2:rotl@base_8:bijective 2:14:r3:load@base_10:inject 3:21:r2:load@base_14:inject 4:23:r7:mul@base_22:lossy 5:33:r4:or@base_31:lossy 6:34:r3:sub@base_28:inject 7:36:r4:load@base_34:inject 8:37:r0:load@base_33:inject 9:41:r0:mad@base_38:inject 10:43:r6:load@base_21:inject 11:48:r5:xor@base_47:inject 12:49:r7:rotl@base_42:bijective 13:50:r6:load@base_48:inject 14:52:r4:rotr@base_46:bijective 15:59:r7:load@base_52:inject +igneum-ca3-v4-uniform/967 8b0b1f1b991514f9 0 0:2:1 1:0:0 2:1:0 3:0:0 4:2:2 5:0:0 6:2:1 7:2:1 8:2:1 9:2:2 10:0:0 11:0:0 12:2:1 13:1:0 14:2:2 15:2:2 4 3 2 1 0 0:4:r0:xor@base_3:inject 1:7:r1:xor@base_6:inject 2:17:r0:sub@base_14:inject 3:18:r1:or@base_8:lossy-or-chain1 4:20:r0:load@base_18:inject 5:26:r2:xor@base_2:inject 6:32:r2:add@base_27:inject 7:35:r0:shfl@base_30:inject 8:40:r7:load@base_35:inject 9:41:r4:mul@base_19:lossy 10:43:r5:load@base_41:inject 11:44:r1:or@base_23:lossy-or-chain1 12:50:r4:load@base_43:inject 13:55:r3:or@base_47:lossy 14:62:r5:load@base_55:inject 15:63:r2:xor@base_58:inject +igneum-ca3-v4-uniform/968 06ec37a7d89dc8a3 0 0:2:2 1:0:0 2:0:0 3:2:2 4:2:3 5:2:3 6:2:0 7:0:0 8:1:0 9:2:2 10:1:1 11:2:2 12:0:0 13:1:0 14:1:0 15:1:0 4 0 0 1 3 0:5:r1:mulhi@base_4:lossy 1:16:r0:mulhi@base_12:lossy 2:18:r5:xor@base_17:inject 3:20:r4:rotr@base_6:bijective 4:21:r2:load@base_18:inject 5:22:r3:add@base_15:inject 6:23:r6:load@base_22:inject 7:30:r6:mul@base_28:lossy 8:32:r2:shfl@base_25:inject 9:34:r3:load@base_32:inject 10:39:r7:shfl@base_38:inject 11:42:r5:load@base_20:inject 12:43:r4:sub@base_37:inject 13:44:r1:sub@base_40:inject 14:47:r4:add@base_46:inject 15:57:r6:mulhi@base_48:lossy +igneum-ca3-v4-uniform/969 6b2fb9646acdae98 0 0:2:3 1:2:1 2:2:2 3:1:0 4:1:0 5:1:1 6:1:0 7:2:3 8:2:1 9:2:0 10:0:0 11:0:0 12:1:0 13:0:0 14:2:3 15:2:2 3 0 0 2 1 0:7:r4:add@base_1:inject 1:15:r1:mul@base_10:lossy 2:16:r4:mulhi@base_13:lossy 3:17:r6:load@base_16:inject 4:20:r4:load@base_17:inject 5:31:r3:mad@base_30:inject 6:35:r4:rotl@base_33:bijective 7:36:r2:shfl@base_29:inject 8:39:r4:sub@base_37:inject 9:42:r2:xor@base_38:inject 10:46:r4:load@base_42:inject 11:48:r7:mul@base_47:lossy 12:52:r5:rotl@base_45:bijective 13:56:r7:xor@base_51:inject 14:58:r0:add@base_57:inject 15:63:r6:load@base_52:inject +igneum-ca3-v4-uniform/970 22f6822cebf777d8 0 0:1:0 1:2:1 2:1:0 3:1:1 4:1:1 5:0:0 6:0:0 7:1:0 8:1:0 9:2:2 10:1:1 11:2:1 12:0:0 13:1:1 14:0:0 15:0:0 1 0 0 1 0 0:6:r6:mul@base_2:lossy 1:13:r5:shfl@base_9:inject 2:18:r4:rotl@base_16:bijective 3:21:r7:load@base_18:inject 4:26:r0:add@base_19:inject 5:28:r1:sub@base_24:inject 6:40:r6:load@base_28:inject 7:44:r5:shfl@base_34:inject 8:45:r4:rotr@base_35:bijective 9:49:r6:mad@base_48:inject 10:51:r0:add@base_36:inject 11:55:r3:rotl@base_43:bijective 12:58:r5:add@base_57:inject 13:59:r7:xor@base_56:inject 14:61:r2:load@base_59:inject 15:62:r4:load@base_61:inject +igneum-ca3-v4-uniform/971 0e015c6d770ddeaa 0 0:0:0 1:2:0 2:2:0 3:0:0 4:2:3 5:2:2 6:0:0 7:1:0 8:2:2 9:0:0 10:2:1 11:2:1 12:2:2 13:0:0 14:2:1 15:2:1 2 1 0 0 1 0:5:r6:mad@base_0:inject 1:12:r7:mad@base_10:inject 2:14:r3:add@base_8:inject 3:20:r3:xor@base_15:inject 4:26:r7:load@base_20:inject 5:35:r2:xor@base_34:inject 6:39:r1:load@base_35:inject 7:41:r5:mulhi@base_36:lossy 8:43:r2:load@base_41:inject 9:46:r0:shfl@base_33:inject 10:47:r3:or@base_45:lossy 11:50:r1:add@base_48:inject 12:52:r3:load@base_50:inject 13:55:r2:rotr@base_53:bijective 14:57:r5:sub@base_54:inject 15:58:r7:sub@base_49:inject +igneum-ca3-v4-uniform/972 58175b867519a2ac 0 0:2:2 1:1:0 2:1:1 3:2:2 4:0:0 5:1:0 6:1:0 7:2:3 8:1:1 9:2:3 10:1:0 11:0:0 12:0:0 13:2:0 14:1:0 15:0:0 4 2 0 0 2 0:1:r7:mad@base_0:inject 1:9:r0:or@base_8:lossy 2:10:r6:load@base_9:inject 3:12:r1:add@base_7:inject 4:15:r7:shfl@base_6:inject 5:31:r3:shfl@base_28:inject 6:33:r7:xor@base_29:inject 7:37:r0:or@base_32:lossy 8:39:r7:shfl@base_35:inject 9:47:r1:mulhi@base_22:lossy 10:49:r2:xor@base_46:inject 11:52:r6:mad@base_50:inject 12:54:r0:load@base_52:inject 13:59:r4:sub@base_53:inject 14:60:r7:mulhi@base_58:lossy 15:63:r6:sub@base_62:inject +igneum-ca3-v4-uniform/973 39276817aba779df 0 0:1:0 1:2:3 2:2:3 3:1:1 4:1:0 5:0:0 6:1:0 7:1:1 8:2:3 9:0:0 10:0:0 11:0:0 12:2:3 13:0:0 14:0:0 15:2:1 2 0 0 0 2 0:4:r2:xor@base_0:inject 1:5:r1:mad@base_2:inject 2:7:r7:load@base_5:inject 3:8:r1:load@base_7:inject 4:19:r0:xor@base_17:inject 5:21:r5:load@base_19:inject 6:23:r3:load@base_21:inject 7:30:r4:add@base_13:inject 8:35:r3:xor@base_32:inject 9:36:r6:load@base_35:inject 10:40:r5:mad@base_34:inject 11:47:r2:xor@base_46:inject 12:51:r7:mulhi@base_31:lossy 13:59:r6:mulhi@base_57:lossy 14:60:r0:shfl@base_54:inject 15:62:r4:load@base_59:inject +igneum-ca3-v4-uniform/974 7f5cb68b407bce07 0 0:0:0 1:0:0 2:0:0 3:2:2 4:2:3 5:0:0 6:2:1 7:0:0 8:2:3 9:0:0 10:0:0 11:2:2 12:1:0 13:0:0 14:0:0 15:0:0 3 0 0 2 1 0:3:r0:shfl@base_0:inject 1:6:r7:sub@base_2:inject 2:7:r6:load@base_6:inject 3:13:r0:load@base_7:inject 4:16:r1:rotr@base_15:bijective 5:19:r3:add@base_10:inject 6:20:r6:mul@base_17:lossy 7:21:r2:mul@base_18:lossy 8:23:r5:load@base_20:inject 9:26:r1:load@base_23:inject 10:37:r5:mad@base_35:inject 11:41:r3:sub@base_38:inject 12:47:r4:add@base_39:inject 13:54:r2:add@base_52:inject 14:58:r6:mulhi@base_48:lossy 15:59:r4:shfl@base_57:inject +igneum-ca3-v4-uniform/975 6c86f90f81ccdbca 0 0:2:1 1:1:1 2:1:0 3:2:2 4:0:0 5:1:0 6:0:0 7:1:1 8:2:2 9:1:1 10:2:1 11:0:0 12:1:0 13:1:1 14:2:3 15:1:1 2 1 0 1 0 0:6:r6:sub@base_4:inject 1:10:r5:xor@base_9:inject 2:12:r1:mad@base_8:inject 3:13:r2:or@base_3:lossy 4:17:r7:load@base_13:inject 5:20:r3:mad@base_15:inject 6:22:r0:mul@base_19:lossy 7:29:r5:add@base_14:inject 8:30:r6:load@base_20:inject 9:36:r2:mad@base_27:inject 10:39:r7:mad@base_32:inject 11:43:r5:xor@base_40:inject 12:45:r7:rotl@base_42:bijective 13:48:r1:load@base_39:inject 14:58:r0:add@base_57:inject 15:59:r7:rotr@base_55:bijective +igneum-ca3-v4-uniform/976 9d7ee0d11211288b 0 0:1:1 1:0:0 2:2:0 3:1:1 4:1:0 5:0:0 6:0:0 7:1:1 8:2:0 9:2:3 10:0:0 11:2:3 12:1:0 13:1:1 14:2:3 15:0:0 3 1 0 2 0 0:2:r1:sub@base_0:inject 1:4:r4:mul@base_3:lossy 2:6:r2:rotl@base_5:bijective 3:10:r0:load@base_6:inject 4:13:r6:add@base_11:inject 5:18:r1:mad@base_14:inject 6:22:r6:add@base_20:inject 7:26:r1:rotr@base_21:bijective 8:28:r4:add@base_27:inject 9:30:r0:xor@base_25:inject 10:33:r7:shfl@base_23:inject 11:39:r2:load@base_30:inject 12:58:r6:or@base_47:lossy 13:61:r1:mul@base_59:lossy 14:62:r5:load@base_58:inject 15:63:r6:load@base_61:inject +igneum-ca3-v4-uniform/977 526d7ef3635c5447 0 0:1:0 1:1:1 2:1:1 3:2:0 4:2:0 5:1:0 6:0:0 7:1:1 8:2:3 9:1:1 10:0:0 11:2:1 12:2:3 13:2:3 14:0:0 15:2:0 4 0 0 1 3 0:2:r3:rotr@base_1:bijective 1:13:r2:mul@base_8:lossy 2:16:r3:mulhi@base_12:lossy 3:17:r7:load@base_16:inject 4:29:r2:mulhi@base_27:lossy 5:30:r4:rotl@base_19:bijective 6:31:r6:mad@base_28:inject 7:33:r7:load@base_30:inject 8:38:r2:xor@base_34:inject 9:42:r6:rotl@base_36:bijective 10:43:r4:sub@base_32:inject 11:44:r1:load@base_38:inject 12:51:r6:mad@base_47:inject 13:52:r7:mulhi@base_50:lossy 14:53:r5:shfl@base_49:inject 15:57:r6:xor@base_55:inject +igneum-ca3-v4-uniform/978 09f237c4a1b311a0 0 0:2:3 1:2:3 2:1:1 3:0:0 4:1:1 5:2:0 6:0:0 7:2:2 8:2:3 9:2:0 10:0:0 11:0:0 12:2:3 13:2:0 14:1:0 15:2:1 6 2 0 3 1 0:3:r6:or@base_2:lossy 1:10:r5:load@base_3:inject 2:11:r7:mul@base_7:lossy 3:13:r4:load@base_10:inject 4:16:r1:mulhi@base_5:lossy 5:19:r0:mad@base_14:inject 6:22:r5:load@base_19:inject 7:24:r6:load@base_22:inject 8:28:r5:or@base_27:lossy 9:30:r2:load@base_28:inject 10:37:r2:xor@base_31:inject 11:38:r4:load@base_30:inject 12:45:r5:mul@base_42:lossy 13:53:r4:add@base_48:inject 14:56:r0:rotl@base_51:bijective 15:60:r6:mul@base_52:lossy +igneum-ca3-v4-uniform/979 42668d8dfef066ec 0 0:0:0 1:2:3 2:1:1 3:0:0 4:1:0 5:0:0 6:1:0 7:0:0 8:0:0 9:2:3 10:2:3 11:0:0 12:1:0 13:0:0 14:2:0 15:1:0 3 2 1 1 0 0:1:r6:xor@base_0:inject 1:15:r1:rotl@base_12:bijective 2:17:r7:or@base_4:lossy-or-chain1 3:19:r3:shfl@base_9:inject 4:24:r5:load@base_17:inject 5:25:r2:load@base_24:inject 6:29:r4:rotl@base_27:bijective 7:31:r1:load@base_25:inject 8:34:r3:load@base_31:inject 9:41:r4:or@base_39:lossy 10:45:r5:mad@base_35:inject 11:47:r3:mad@base_46:inject 12:50:r0:load@base_34:inject 13:51:r3:rotr@base_48:bijective 14:56:r4:mul@base_43:lossy 15:63:r1:add@base_62:inject +igneum-ca3-v4-uniform/980 2637591114885ddb 0 0:0:0 1:2:2 2:1:1 3:0:0 4:0:0 5:2:0 6:1:1 7:1:1 8:2:0 9:0:0 10:1:1 11:2:3 12:1:1 13:1:0 14:2:1 15:0:0 3 1 0 2 0 0:2:r7:sub@base_1:inject 1:3:r6:add@base_0:inject 2:11:r0:mul@base_4:lossy 3:12:r5:add@base_10:inject 4:17:r1:load@base_11:inject 5:21:r3:xor@base_19:inject 6:23:r4:xor@base_22:inject 7:24:r1:load@base_21:inject 8:27:r7:rotl@base_20:bijective 9:36:r1:add@base_35:inject 10:38:r5:load@base_36:inject 11:41:r0:load@base_38:inject 12:44:r4:mul@base_43:lossy 13:59:r4:or@base_53:lossy 14:62:r3:shfl@base_46:inject 15:63:r6:add@base_61:inject +igneum-ca3-v4-uniform/981 5c2acc6a8460d172 0 0:2:0 1:1:0 2:2:3 3:0:0 4:0:0 5:0:0 6:1:0 7:1:0 8:1:1 9:0:0 10:2:2 11:0:0 12:0:0 13:1:1 14:0:0 15:0:0 3 0 0 0 3 0:7:r2:mulhi@base_2:lossy 1:9:r4:rotl@base_4:bijective 2:10:r7:load@base_9:inject 3:11:r5:load@base_10:inject 4:12:r0:load@base_11:inject 5:13:r1:mulhi@base_6:lossy 6:15:r6:load@base_12:inject 7:17:r6:shfl@base_16:inject 8:24:r5:sub@base_20:inject 9:27:r2:mulhi@base_26:lossy 10:32:r4:xor@base_28:inject 11:36:r1:xor@base_30:inject 12:52:r0:load@base_27:inject 13:57:r2:rotr@base_48:bijective 14:60:r0:sub@base_56:inject 15:61:r7:load@base_57:inject +igneum-ca3-v4-uniform/982 8ce1fd91dbae36bf 0 0:1:0 1:1:1 2:2:2 3:1:1 4:2:3 5:1:1 6:0:0 7:1:0 8:0:0 9:1:0 10:0:0 11:0:0 12:1:1 13:2:0 14:1:1 15:0:0 4 1 1 2 1 0:3:r4:add@base_0:inject 1:5:r6:mul@base_4:lossy 2:6:r0:load@base_3:inject 3:11:r5:rotl@base_9:bijective 4:19:r3:load@base_5:inject 5:21:r1:load@base_19:inject 6:29:r3:add@base_27:inject 7:35:r4:xor@base_30:inject 8:43:r5:mul@base_31:lossy 9:47:r2:or@base_36:lossy-or-chain1 10:49:r4:rotr@base_46:bijective 11:51:r1:xor@base_45:inject 12:54:r5:load@base_51:inject 13:60:r7:shfl@base_57:inject 14:61:r3:mulhi@base_53:lossy 15:63:r1:load@base_61:inject +igneum-ca3-v4-uniform/983 e39967b09c652f2e 0 0:2:3 1:2:2 2:2:1 3:2:0 4:2:0 5:0:0 6:0:0 7:1:1 8:0:0 9:0:0 10:0:0 11:0:0 12:1:1 13:2:0 14:1:0 15:1:0 5 0 0 3 2 0:12:r2:mulhi@base_5:lossy 1:14:r4:mul@base_11:lossy 2:16:r7:mul@base_13:lossy 3:21:r3:mulhi@base_4:lossy 4:22:r2:sub@base_19:inject 5:23:r6:load@base_22:inject 6:28:r7:xor@base_27:inject 7:34:r5:add@base_26:inject 8:35:r3:xor@base_30:inject 9:40:r0:load@base_34:inject 10:46:r5:sub@base_44:inject 11:52:r5:rotl@base_51:bijective 12:53:r3:rotl@base_47:bijective 13:55:r4:add@base_45:inject 14:57:r2:add@base_56:inject 15:60:r1:mul@base_49:lossy +igneum-ca3-v4-uniform/984 ad1878d1d95e6b49 0 0:0:0 1:0:0 2:0:0 3:2:0 4:1:1 5:1:0 6:2:2 7:1:1 8:1:0 9:1:0 10:1:1 11:2:1 12:0:0 13:0:0 14:2:1 15:0:0 3 1 0 1 1 0:4:r3:shfl@base_2:inject 1:8:r6:mad@base_5:inject 2:12:r4:rotr@base_7:bijective 3:15:r5:rotr@base_6:bijective 4:17:r5:add@base_16:inject 5:20:r3:load@base_17:inject 6:21:r2:mul@base_19:lossy 7:23:r0:mulhi@base_13:lossy 8:24:r1:load@base_15:inject 9:32:r4:load@base_24:inject 10:37:r6:sub@base_35:inject 11:46:r7:or@base_45:lossy 12:50:r3:sub@base_36:inject 13:53:r3:mad@base_52:inject 14:54:r2:rotl@base_47:bijective 15:61:r7:rotr@base_51:bijective +igneum-ca3-v4-uniform/985 3cbafd1f3a64cccc 0 0:2:0 1:2:0 2:1:0 3:0:0 4:2:2 5:0:0 6:1:0 7:1:1 8:2:0 9:0:0 10:2:3 11:0:0 12:2:1 13:0:0 14:0:0 15:1:0 1 1 0 0 0 0:2:r7:rotl@base_0:bijective 1:4:r4:sub@base_3:inject 2:6:r6:load@base_4:inject 3:8:r3:load@base_6:inject 4:9:r6:load@base_8:inject 5:19:r6:mad@base_17:inject 6:21:r4:sub@base_13:inject 7:32:r3:load@base_19:inject 8:35:r7:xor@base_33:inject 9:39:r4:xor@base_30:inject 10:42:r1:xor@base_40:inject 11:48:r7:load@base_42:inject 12:49:r2:rotl@base_46:bijective 13:54:r3:add@base_52:inject 14:56:r7:load@base_54:inject 15:63:r0:or@base_45:lossy +igneum-ca3-v4-uniform/986 30d002b6b47fd13e 0 0:1:0 1:0:0 2:1:1 3:0:0 4:0:0 5:0:0 6:0:0 7:0:0 8:2:3 9:2:1 10:1:0 11:1:0 12:1:1 13:0:0 14:2:3 15:1:0 5 2 0 2 1 0:9:r5:add@base_0:inject 1:14:r1:xor@base_11:inject 2:19:r1:xor@base_15:inject 3:22:r6:or@base_21:lossy 4:23:r7:rotr@base_13:bijective 5:25:r3:or@base_17:lossy 6:29:r2:load@base_22:inject 7:31:r4:load@base_25:inject 8:32:r7:mul@base_28:lossy 9:33:r5:load@base_23:inject 10:48:r2:sub@base_35:inject 11:49:r6:rotr@base_38:bijective 12:50:r1:mulhi@base_43:lossy 13:55:r6:mad@base_52:inject 14:58:r5:rotr@base_57:bijective 15:60:r4:mul@base_54:lossy +igneum-ca3-v4-uniform/987 a9bb71687ad6e808 0 0:2:3 1:1:1 2:0:0 3:2:0 4:0:0 5:1:1 6:2:0 7:0:0 8:0:0 9:0:0 10:0:0 11:1:1 12:1:0 13:2:1 14:2:1 15:1:1 2 1 0 1 0 0:6:r7:xor@base_5:inject 1:9:r5:rotr@base_2:bijective 2:14:r3:mul@base_8:lossy 3:15:r6:add@base_7:inject 4:17:r5:load@base_15:inject 5:22:r0:mad@base_19:inject 6:25:r3:or@base_21:lossy 7:27:r2:mad@base_20:inject 8:33:r2:rotl@base_29:bijective 9:39:r4:shfl@base_37:inject 10:44:r6:rotr@base_43:bijective 11:46:r3:load@base_44:inject 12:47:r0:add@base_32:inject 13:52:r1:rotr@base_51:bijective 14:57:r2:xor@base_45:inject 15:63:r4:load@base_47:inject +igneum-ca3-v4-uniform/988 290757699f478c64 0 0:0:0 1:1:0 2:1:1 3:0:0 4:0:0 5:2:0 6:1:0 7:1:1 8:1:0 9:1:0 10:1:1 11:1:0 12:0:0 13:1:0 14:2:2 15:2:0 5 0 0 4 1 0:3:r2:mul@base_1:lossy 1:6:r0:mulhi@base_5:lossy 2:10:r3:rotl@base_4:bijective 3:11:r0:mul@base_9:lossy 4:17:r4:rotr@base_15:bijective 5:24:r7:xor@base_23:inject 6:28:r7:mul@base_25:lossy 7:30:r2:mul@base_26:lossy 8:33:r0:shfl@base_31:inject 9:34:r6:load@base_33:inject 10:44:r6:shfl@base_43:inject 11:45:r1:add@base_20:inject 12:46:r3:load@base_44:inject 13:51:r6:mad@base_50:inject 14:52:r2:load@base_51:inject 15:59:r6:rotl@base_58:bijective +igneum-ca3-v4-uniform/989 a8abed17147caba4 0 0:1:1 1:0:0 2:1:1 3:2:2 4:0:0 5:0:0 6:2:0 7:0:0 8:1:1 9:0:0 10:2:0 11:0:0 12:0:0 13:1:0 14:0:0 15:1:1 4 0 0 2 2 0:1:r5:rotl@base_0:bijective 1:3:r6:mul@base_2:lossy 2:9:r2:load@base_3:inject 3:10:r7:load@base_9:inject 4:11:r4:mulhi@base_4:lossy 5:13:r4:mul@base_12:lossy 6:15:r5:load@base_13:inject 7:18:r7:shfl@base_17:inject 8:24:r7:add@base_22:inject 9:25:r6:load@base_18:inject 10:29:r7:mad@base_28:inject 11:32:r2:rotr@base_26:bijective 12:41:r2:sub@base_38:inject 13:48:r4:mulhi@base_42:lossy 14:50:r7:rotl@base_46:bijective 15:62:r1:rotr@base_58:bijective +igneum-ca3-v4-uniform/990 4ff5243f0678dbfa 0 0:1:1 1:1:1 2:2:0 3:0:0 4:2:2 5:2:0 6:1:0 7:2:3 8:0:0 9:2:2 10:2:0 11:0:0 12:2:1 13:0:0 14:1:0 15:2:3 1 0 0 1 0 0:3:r1:xor@base_2:inject 1:7:r5:sub@base_0:inject 2:8:r7:load@base_7:inject 3:13:r0:load@base_8:inject 4:20:r4:add@base_19:inject 5:22:r2:mad@base_14:inject 6:24:r1:xor@base_4:inject 7:25:r5:load@base_20:inject 8:28:r0:sub@base_23:inject 9:29:r6:load@base_25:inject 10:39:r4:rotr@base_38:bijective 11:48:r1:xor@base_41:inject 12:49:r2:mad@base_46:inject 13:50:r3:add@base_26:inject 14:59:r6:add@base_47:inject 15:63:r7:mul@base_54:lossy +igneum-ca3-v4-uniform/991 c76592552e364453 0 0:1:1 1:2:2 2:0:0 3:1:0 4:1:0 5:2:2 6:2:3 7:1:0 8:1:1 9:1:0 10:0:0 11:2:3 12:0:0 13:0:0 14:0:0 15:2:1 4 1 0 2 1 0:1:r3:rotl@base_0:bijective 1:4:r3:mul@base_3:lossy 2:7:r6:or@base_5:lossy 3:9:r7:load@base_1:inject 4:14:r3:load@base_7:inject 5:25:r1:mulhi@base_24:lossy 6:26:r2:load@base_25:inject 7:27:r7:rotl@base_16:bijective 8:37:r3:mad@base_23:inject 9:43:r1:mul@base_39:lossy 10:46:r5:shfl@base_42:inject 11:51:r2:load@base_43:inject 12:53:r7:load@base_51:inject 13:56:r2:xor@base_52:inject 14:58:r4:load@base_53:inject 15:63:r6:mad@base_60:inject +igneum-ca3-v4-uniform/992 c2349761e65eb957 0 0:2:2 1:1:1 2:0:0 3:0:0 4:1:0 5:1:0 6:2:2 7:1:1 8:1:0 9:0:0 10:1:1 11:0:0 12:1:1 13:2:3 14:2:3 15:1:0 6 0 0 3 3 0:2:r4:mad@base_1:inject 1:3:r7:load@base_2:inject 2:10:r4:mulhi@base_4:lossy 3:17:r3:mul@base_14:lossy 4:19:r0:add@base_18:inject 5:23:r5:xor@base_22:inject 6:33:r7:mul@base_31:lossy 7:36:r6:add@base_20:inject 8:43:r1:rotl@base_37:bijective 9:48:r3:add@base_42:inject 10:49:r2:mulhi@base_32:lossy 11:51:r0:rotl@base_45:bijective 12:53:r4:mul@base_50:lossy 13:55:r5:rotl@base_52:bijective 14:58:r0:xor@base_54:inject 15:63:r6:mulhi@base_47:lossy +igneum-ca3-v4-uniform/993 e8900c9406db1223 0 0:1:0 1:0:0 2:0:0 3:0:0 4:1:1 5:0:0 6:0:0 7:2:0 8:0:0 9:2:1 10:2:0 11:2:2 12:1:1 13:0:0 14:1:1 15:2:0 4 1 0 1 2 0:1:r0:shfl@base_0:inject 1:10:r3:mad@base_8:inject 2:14:r2:shfl@base_6:inject 3:17:r7:shfl@base_7:inject 4:22:r0:load@base_17:inject 5:28:r5:or@base_25:lossy 6:32:r4:mad@base_29:inject 7:35:r6:mulhi@base_31:lossy 8:36:r1:mul@base_34:lossy 9:37:r4:load@base_36:inject 10:41:r3:load@base_37:inject 11:50:r5:add@base_49:inject 12:56:r5:mad@base_54:inject 13:59:r2:mulhi@base_57:lossy 14:60:r4:load@base_56:inject 15:63:r2:xor@base_61:inject +igneum-ca3-v4-uniform/994 e950dbc922565c60 0 0:1:1 1:1:0 2:1:0 3:1:1 4:2:0 5:2:2 6:1:0 7:2:0 8:0:0 9:1:0 10:2:1 11:0:0 12:1:1 13:2:2 14:2:2 15:0:0 5 0 0 4 1 0:4:r6:rotr@base_2:bijective 1:11:r5:rotr@base_6:bijective 2:12:r4:xor@base_9:inject 3:20:r5:rotr@base_17:bijective 4:23:r6:mul@base_21:lossy 5:25:r1:load@base_23:inject 6:26:r7:rotl@base_19:bijective 7:30:r3:mulhi@base_22:lossy 8:33:r7:xor@base_31:inject 9:34:r6:load@base_30:inject 10:40:r3:mul@base_38:lossy 11:41:r5:mul@base_28:lossy 12:45:r2:load@base_41:inject 13:53:r3:shfl@base_49:inject 14:55:r3:rotl@base_54:bijective 15:61:r0:mul@base_59:lossy +igneum-ca3-v4-uniform/995 d38f1eb98014836c 0 0:1:0 1:0:0 2:0:0 3:0:0 4:0:0 5:0:0 6:0:0 7:2:0 8:0:0 9:2:3 10:1:0 11:2:0 12:2:2 13:1:1 14:0:0 15:1:1 2 0 0 2 0 0:2:r5:mad@base_1:inject 1:3:r1:mul@base_0:lossy 2:11:r6:load@base_2:inject 3:12:r1:mul@base_6:lossy 4:19:r5:xor@base_8:inject 5:20:r0:xor@base_10:inject 6:30:r5:shfl@base_28:inject 7:31:r0:mad@base_26:inject 8:36:r3:load@base_30:inject 9:37:r7:load@base_12:inject 10:47:r0:xor@base_46:inject 11:52:r7:sub@base_44:inject 12:57:r0:mad@base_55:inject 13:58:r2:add@base_56:inject 14:60:r6:add@base_43:inject 15:63:r5:load@base_58:inject +igneum-ca3-v4-uniform/996 af4b5e177ab55048 0 0:0:0 1:0:0 2:2:2 3:0:0 4:2:0 5:1:1 6:2:3 7:0:0 8:2:0 9:2:2 10:0:0 11:1:1 12:1:0 13:2:3 14:1:1 15:1:0 4 1 0 2 1 0:2:r4:add@base_1:inject 1:4:r5:mad@base_3:inject 2:22:r2:mad@base_19:inject 3:27:r6:shfl@base_18:inject 4:29:r0:add@base_14:inject 5:32:r5:mul@base_17:lossy 6:37:r1:shfl@base_36:inject 7:39:r4:mul@base_38:lossy 8:41:r2:load@base_29:inject 9:42:r5:shfl@base_35:inject 10:43:r1:load@base_42:inject 11:46:r6:load@base_37:inject 12:47:r5:or@base_44:lossy 13:53:r4:mulhi@base_51:lossy 14:58:r2:mad@base_49:inject 15:59:r5:add@base_52:inject +igneum-ca3-v4-uniform/997 630c523a682a1dd0 0 0:1:0 1:2:1 2:2:0 3:2:0 4:2:3 5:0:0 6:2:0 7:2:3 8:1:1 9:0:0 10:0:0 11:0:0 12:0:0 13:0:0 14:1:1 15:2:2 2 0 0 1 1 0:1:r3:shfl@base_0:inject 1:4:r3:shfl@base_2:inject 2:5:r5:load@base_4:inject 3:6:r7:load@base_5:inject 4:10:r6:rotr@base_3:bijective 5:12:r5:rotr@base_11:bijective 6:21:r1:xor@base_14:inject 7:23:r4:mad@base_16:inject 8:25:r6:xor@base_24:inject 9:26:r3:load@base_12:inject 10:35:r6:mul@base_30:lossy 11:37:r5:load@base_25:inject 12:38:r0:xor@base_18:inject 13:50:r3:add@base_48:inject 14:58:r2:mad@base_55:inject 15:61:r4:mulhi@base_53:lossy +igneum-ca3-v4-uniform/998 a96b62cbd00ac371 0 0:0:0 1:1:0 2:0:0 3:1:0 4:1:0 5:2:3 6:1:0 7:0:0 8:0:0 9:0:0 10:1:1 11:2:0 12:0:0 13:0:0 14:2:3 15:2:0 6 3 0 3 0 0:1:r7:xor@base_0:inject 1:4:r4:mul@base_2:lossy 2:8:r5:load@base_4:inject 3:10:r3:rotl@base_5:bijective 4:11:r6:rotr@base_9:bijective 5:14:r5:or@base_12:lossy 6:17:r3:rotl@base_13:bijective 7:19:r1:load@base_17:inject 8:26:r2:or@base_25:lossy 9:30:r2:mul@base_28:lossy 10:31:r0:or@base_21:lossy 11:32:r7:load@base_30:inject 12:43:r4:xor@base_40:inject 13:48:r2:load@base_43:inject 14:49:r1:mul@base_46:lossy 15:52:r4:rotr@base_51:bijective +igneum-ca3-v4-uniform/999 a0f14df370ca39b7 0 0:1:1 1:2:1 2:0:0 3:1:0 4:1:0 5:2:2 6:1:1 7:1:0 8:1:1 9:0:0 10:0:0 11:0:0 12:2:0 13:2:2 14:0:0 15:1:0 1 0 0 1 0 0:4:r3:shfl@base_3:inject 1:7:r4:mad@base_6:inject 2:11:r7:rotr@base_9:bijective 3:13:r3:rotl@base_10:bijective 4:20:r3:add@base_19:inject 5:22:r0:load@base_20:inject 6:24:r7:shfl@base_18:inject 7:26:r2:mul@base_14:lossy 8:30:r2:xor@base_27:inject 9:43:r6:xor@base_39:inject 10:48:r2:xor@base_36:inject 11:49:r5:add@base_45:inject 12:52:r3:load@base_48:inject 13:53:r0:xor@base_46:inject 14:55:r2:load@base_52:inject 15:62:r6:mad@base_61:inject +igneum-ca3-v4-uniform/1000 2fad686e34d5c8e6 0 0:2:2 1:0:0 2:2:0 3:2:0 4:1:0 5:0:0 6:2:2 7:2:2 8:2:2 9:0:0 10:1:0 11:2:0 12:0:0 13:1:0 14:1:1 15:1:0 7 0 0 5 2 0:5:r3:mulhi@base_2:lossy 1:13:r2:mul@base_11:lossy 2:16:r5:load@base_13:inject 3:22:r4:xor@base_9:inject 4:24:r5:mad@base_23:inject 5:27:r0:mul@base_19:lossy 6:29:r3:xor@base_25:inject 7:34:r7:rotr@base_26:bijective 8:35:r1:mul@base_30:lossy 9:37:r0:load@base_35:inject 10:40:r3:mul@base_32:lossy 11:41:r7:load@base_37:inject 12:45:r5:mulhi@base_39:lossy 13:53:r7:mad@base_50:inject 14:60:r0:rotr@base_49:bijective 15:61:r2:mul@base_59:lossy +igneum-ca3-v4-uniform/1001 70fccbbcad562ba3 0 0:2:2 1:0:0 2:1:0 3:0:0 4:1:0 5:0:0 6:2:3 7:0:0 8:2:1 9:0:0 10:0:0 11:1:0 12:1:0 13:1:0 14:1:1 15:2:3 5 0 0 3 2 0:1:r2:mulhi@base_0:lossy 1:5:r3:load@base_1:inject 2:6:r4:load@base_5:inject 3:15:r1:load@base_6:inject 4:22:r0:rotl@base_9:bijective 5:23:r7:load@base_15:inject 6:25:r4:rotr@base_14:bijective 7:26:r6:load@base_25:inject 8:27:r3:mul@base_18:lossy 9:30:r5:mad@base_29:inject 10:34:r6:mul@base_31:lossy 11:35:r0:load@base_27:inject 12:41:r4:add@base_32:inject 13:45:r7:mulhi@base_44:lossy 14:57:r4:mul@base_49:lossy 15:63:r1:rotr@base_52:bijective +igneum-ca3-v4-uniform/1002 2a0a76d993fbe6ec 0 0:0:0 1:1:1 2:0:0 3:2:0 4:0:0 5:0:0 6:1:1 7:1:0 8:1:0 9:2:2 10:1:0 11:2:3 12:1:0 13:2:2 14:1:1 15:1:0 3 1 0 2 0 0:15:r5:mul@base_8:lossy 1:18:r4:mad@base_16:inject 2:20:r3:xor@base_4:inject 3:21:r0:mul@base_19:lossy 4:25:r1:xor@base_10:inject 5:28:r5:shfl@base_27:inject 6:39:r4:or@base_32:lossy 7:40:r0:mad@base_34:inject 8:41:r5:add@base_36:inject 9:44:r7:load@base_41:inject 10:45:r0:xor@base_42:inject 11:49:r4:add@base_48:inject 12:53:r1:xor@base_46:inject 13:54:r7:xor@base_52:inject 14:55:r4:load@base_53:inject 15:61:r0:sub@base_50:inject +igneum-ca3-v4-uniform/1003 4302c71a8f745baa 0 0:1:0 1:1:0 2:2:0 3:0:0 4:1:1 5:1:0 6:1:0 7:2:3 8:1:1 9:2:2 10:0:0 11:1:1 12:2:1 13:0:0 14:0:0 15:1:0 7 3 2 3 1 0:4:r5:rotl@base_1:bijective 1:5:r0:mulhi@base_3:lossy 2:18:r7:shfl@base_17:inject 3:19:r3:load@base_18:inject 4:28:r4:or@base_21:lossy-or-chain1 5:32:r3:shfl@base_27:inject 6:34:r1:rotl@base_33:bijective 7:35:r4:or@base_30:lossy-or-chain1 8:42:r7:mul@base_31:lossy 9:46:r0:or@base_45:lossy 10:47:r2:mul@base_36:lossy 11:52:r3:load@base_47:inject 12:57:r5:mul@base_54:lossy 13:59:r6:load@base_52:inject 14:60:r2:load@base_59:inject 15:62:r7:shfl@base_61:inject +igneum-ca3-v4-uniform/1004 55873189dfcd804c 0 0:1:1 1:2:0 2:2:0 3:0:0 4:2:3 5:1:1 6:1:1 7:2:0 8:1:1 9:1:1 10:0:0 11:2:0 12:0:0 13:1:0 14:2:1 15:0:0 2 1 0 1 0 0:5:r3:or@base_4:lossy 1:6:r5:add@base_0:inject 2:9:r6:mul@base_8:lossy 3:13:r2:mad@base_7:inject 4:14:r4:sub@base_12:inject 5:15:r1:shfl@base_11:inject 6:19:r0:add@base_16:inject 7:27:r3:xor@base_22:inject 8:33:r7:shfl@base_25:inject 9:34:r2:sub@base_32:inject 10:36:r3:load@base_34:inject 11:44:r5:rotl@base_40:bijective 12:45:r7:rotl@base_43:bijective 13:50:r4:mad@base_49:inject 14:52:r0:load@base_33:inject 15:59:r4:rotr@base_53:bijective +igneum-ca3-v4-uniform/1005 82a5a6c50ec8ba8e 0 0:0:0 1:2:1 2:1:1 3:1:0 4:2:0 5:1:0 6:0:0 7:0:0 8:0:0 9:0:0 10:1:0 11:0:0 12:2:0 13:0:0 14:0:0 15:2:2 3 1 0 0 2 0:3:r1:xor@base_1:inject 1:5:r7:shfl@base_4:inject 2:18:r0:sub@base_17:inject 3:22:r6:shfl@base_14:inject 4:25:r2:mulhi@base_23:lossy 5:27:r1:load@base_25:inject 6:28:r4:xor@base_16:inject 7:30:r3:rotl@base_0:bijective 8:32:r0:add@base_31:inject 9:42:r5:or@base_41:lossy 10:46:r2:sub@base_43:inject 11:50:r3:add@base_48:inject 12:51:r0:load@base_50:inject 13:58:r0:xor@base_55:inject 14:59:r7:mulhi@base_52:lossy 15:61:r3:load@base_59:inject +igneum-ca3-v4-uniform/1006 ae0f4f269221f25a 0 0:2:2 1:0:0 2:0:0 3:0:0 4:2:1 5:0:0 6:1:1 7:2:3 8:0:0 9:2:3 10:2:2 11:2:2 12:0:0 13:1:0 14:0:0 15:0:0 1 0 0 0 1 0:2:r1:rotl@base_1:bijective 1:4:r0:rotr@base_3:bijective 2:6:r2:load@base_2:inject 3:8:r3:shfl@base_5:inject 4:10:r0:sub@base_9:inject 5:17:r0:xor@base_11:inject 6:20:r4:mulhi@base_15:lossy 7:22:r6:load@base_20:inject 8:35:r4:shfl@base_31:inject 9:36:r1:load@base_22:inject 10:39:r5:shfl@base_34:inject 11:43:r7:rotr@base_32:bijective 12:48:r1:load@base_39:inject 13:54:r7:shfl@base_52:inject 14:60:r2:load@base_54:inject 15:63:r3:add@base_58:inject +igneum-ca3-v4-uniform/1007 bb991431c9b1cc22 0 0:2:3 1:0:0 2:0:0 3:0:0 4:2:0 5:2:1 6:0:0 7:2:0 8:1:1 9:1:0 10:2:0 11:2:2 12:0:0 13:1:1 14:0:0 15:2:0 3 1 0 0 2 0:5:r0:add@base_1:inject 1:6:r6:mad@base_4:inject 2:13:r3:load@base_6:inject 3:16:r1:load@base_13:inject 4:17:r0:rotl@base_14:bijective 5:18:r2:rotr@base_9:bijective 6:20:r5:load@base_17:inject 7:21:r7:load@base_18:inject 8:22:r2:sub@base_19:inject 9:26:r4:load@base_21:inject 10:28:r6:or@base_24:lossy 11:42:r5:add@base_27:inject 12:43:r6:add@base_41:inject 13:50:r3:mulhi@base_32:lossy 14:57:r7:mulhi@base_52:lossy 15:58:r0:add@base_56:inject +igneum-ca3-v4-uniform/1008 bbde291462c8a0e1 0 0:0:0 1:2:1 2:0:0 3:0:0 4:1:1 5:0:0 6:2:3 7:1:0 8:2:3 9:2:1 10:1:1 11:2:1 12:1:1 13:0:0 14:0:0 15:2:2 5 1 0 4 0 0:2:r2:xor@base_1:inject 1:3:r4:xor@base_0:inject 2:11:r3:load@base_3:inject 3:12:r6:add@base_8:inject 4:16:r1:load@base_11:inject 5:21:r3:rotr@base_14:bijective 6:28:r6:add@base_25:inject 7:36:r6:mul@base_32:lossy 8:37:r7:mul@base_31:lossy 9:39:r5:mul@base_27:lossy 10:41:r0:load@base_36:inject 11:46:r3:mul@base_45:lossy 12:49:r2:sub@base_38:inject 13:50:r7:load@base_49:inject 14:55:r2:or@base_54:lossy 15:56:r6:xor@base_51:inject +igneum-ca3-v4-uniform/1009 6527af84bf799e7d 0 0:2:2 1:0:0 2:2:3 3:1:1 4:2:0 5:2:2 6:2:0 7:1:1 8:0:0 9:0:0 10:2:3 11:1:0 12:2:3 13:1:0 14:0:0 15:0:0 2 2 0 0 0 0:3:r2:rotl@base_1:bijective 1:6:r2:mad@base_5:inject 2:9:r4:rotl@base_4:bijective 3:15:r5:shfl@base_11:inject 4:27:r1:mad@base_20:inject 5:31:r6:xor@base_12:inject 6:37:r6:add@base_35:inject 7:38:r4:or@base_24:lossy 8:39:r1:add@base_36:inject 9:40:r3:load@base_37:inject 10:44:r5:xor@base_41:inject 11:46:r7:load@base_38:inject 12:49:r0:rotl@base_42:bijective 13:53:r4:mad@base_50:inject 14:54:r5:load@base_53:inject 15:56:r1:or@base_45:lossy +igneum-ca3-v4-uniform/1010 80e9d6ce9567b4a4 0 0:1:1 1:1:0 2:1:0 3:1:0 4:0:0 5:2:0 6:0:0 7:0:0 8:1:1 9:0:0 10:1:0 11:2:0 12:1:0 13:2:3 14:0:0 15:0:0 2 1 0 1 0 0:3:r7:xor@base_2:inject 1:7:r7:add@base_4:inject 2:8:r0:add@base_5:inject 3:14:r7:or@base_9:lossy 4:17:r0:mad@base_16:inject 5:18:r3:mad@base_13:inject 6:20:r5:load@base_3:inject 7:24:r0:load@base_18:inject 8:27:r2:rotl@base_25:bijective 9:32:r4:sub@base_28:inject 10:35:r6:sub@base_26:inject 11:50:r6:mul@base_44:lossy 12:54:r7:xor@base_43:inject 13:57:r2:load@base_54:inject 14:61:r4:rotl@base_60:bijective 15:62:r0:add@base_56:inject +igneum-ca3-v4-uniform/1011 d8be5b1203567686 1 0:0:0 1:2:3 2:2:2 3:1:0 4:0:0 5:1:1 6:0:0 7:0:0 8:1:1 9:1:0 10:2:1 11:2:1 12:0:0 13:1:1 14:2:1 15:0:0 2 2 0 0 0 0:8:r6:sub@base_6:inject 1:15:r5:add@base_12:inject 2:16:r1:or@base_11:lossy 3:25:r2:add@base_20:inject 4:26:r7:shfl@base_23:inject 5:28:r5:rotl@base_22:bijective 6:30:r6:or@base_27:lossy 7:36:r3:shfl@base_33:inject 8:39:r6:xor@base_37:inject 9:40:r5:xor@base_35:inject 10:41:r7:load@base_40:inject 11:44:r6:mad@base_43:inject 12:50:r1:add@base_48:inject 13:60:r3:xor@base_54:inject 14:61:r6:rotl@base_56:bijective 15:63:r2:add@base_52:inject +igneum-ca3-v4-uniform/1012 fa018bb41f29a6fb 0 0:1:1 1:1:0 2:2:2 3:1:0 4:1:1 5:1:1 6:0:0 7:2:1 8:0:0 9:0:0 10:1:1 11:2:0 12:0:0 13:1:1 14:1:1 15:1:1 3 0 0 2 1 0:9:r4:shfl@base_7:inject 1:10:r1:sub@base_1:inject 2:11:r0:add@base_8:inject 3:12:r4:load@base_10:inject 4:13:r7:mad@base_0:inject 5:18:r5:add@base_14:inject 6:22:r6:load@base_18:inject 7:28:r1:mulhi@base_25:lossy 8:32:r5:mul@base_30:lossy 9:34:r2:mad@base_27:inject 10:36:r3:add@base_29:inject 11:39:r2:add@base_38:inject 12:41:r1:load@base_34:inject 13:45:r4:load@base_41:inject 14:60:r5:mul@base_50:lossy 15:63:r2:load@base_60:inject +igneum-ca3-v4-uniform/1013 098f114d5df6b6ba 0 0:2:1 1:0:0 2:1:1 3:0:0 4:2:3 5:2:0 6:0:0 7:2:1 8:1:0 9:0:0 10:0:0 11:0:0 12:1:0 13:2:1 14:2:3 15:2:0 5 2 0 2 1 0:8:r6:rotl@base_5:bijective 1:11:r1:xor@base_7:inject 2:13:r7:add@base_12:inject 3:19:r5:add@base_9:inject 4:23:r3:sub@base_22:inject 5:24:r6:sub@base_15:inject 6:29:r1:or@base_21:lossy 7:38:r2:rotl@base_34:bijective 8:39:r0:mulhi@base_30:lossy 9:42:r2:mul@base_40:lossy 10:44:r2:rotr@base_43:bijective 11:45:r6:rotl@base_36:bijective 12:47:r3:load@base_42:inject 13:49:r3:mul@base_48:lossy 14:56:r4:xor@base_53:inject 15:59:r2:or@base_51:lossy +igneum-ca3-v4-uniform/1014 8c187071549db4d5 0 0:2:0 1:2:1 2:0:0 3:1:1 4:2:0 5:1:1 6:0:0 7:1:0 8:2:0 9:2:2 10:1:0 11:0:0 12:0:0 13:0:0 14:0:0 15:1:0 0 0 0 0 0 0:5:r6:add@base_1:inject 1:11:r4:load@base_5:inject 2:12:r7:mad@base_9:inject 3:13:r5:load@base_12:inject 4:14:r2:rotl@base_6:bijective 5:22:r6:load@base_11:inject 6:23:r1:shfl@base_19:inject 7:38:r1:add@base_35:inject 8:40:r4:xor@base_39:inject 9:43:r0:rotr@base_41:bijective 10:49:r3:xor@base_48:inject 11:54:r4:sub@base_50:inject 12:55:r1:load@base_49:inject 13:56:r6:load@base_55:inject 14:57:r2:load@base_54:inject 15:59:r3:load@base_56:inject +igneum-ca3-v4-uniform/1015 2fdf6a5a12eb6e8a 0 0:0:0 1:1:0 2:1:1 3:0:0 4:0:0 5:0:0 6:2:2 7:2:0 8:2:1 9:0:0 10:0:0 11:0:0 12:0:0 13:1:1 14:2:0 15:0:0 3 1 0 1 1 0:1:r6:shfl@base_0:inject 1:7:r1:mul@base_4:lossy 2:8:r2:load@base_7:inject 3:12:r7:load@base_8:inject 4:15:r0:or@base_14:lossy 5:29:r5:shfl@base_28:inject 6:33:r6:mulhi@base_30:lossy 7:37:r6:rotr@base_35:bijective 8:39:r5:load@base_37:inject 9:43:r0:xor@base_38:inject 10:46:r5:rotr@base_44:bijective 11:47:r4:xor@base_45:inject 12:49:r7:load@base_46:inject 13:52:r0:load@base_47:inject 14:54:r6:xor@base_50:inject 15:56:r4:load@base_54:inject +igneum-ca3-v4-uniform/1016 0759bb81f06b013d 0 0:0:0 1:1:0 2:2:3 3:0:0 4:2:0 5:2:1 6:1:0 7:0:0 8:1:0 9:1:1 10:1:1 11:1:1 12:0:0 13:2:0 14:0:0 15:0:0 3 0 0 2 1 0:1:r6:mul@base_0:lossy 1:4:r5:mul@base_3:lossy 2:12:r1:rotr@base_7:bijective 3:15:r4:sub@base_2:inject 4:17:r2:mad@base_11:inject 5:18:r7:xor@base_13:inject 6:20:r0:shfl@base_16:inject 7:23:r6:xor@base_21:inject 8:25:r6:mad@base_24:inject 9:46:r3:shfl@base_38:inject 10:47:r6:add@base_42:inject 11:48:r4:sub@base_45:inject 12:56:r1:add@base_49:inject 13:57:r0:mulhi@base_37:lossy 14:58:r7:rotl@base_55:bijective 15:61:r5:shfl@base_52:inject +igneum-ca3-v4-uniform/1017 259d53f225b8a1ae 0 0:1:1 1:0:0 2:2:2 3:0:0 4:2:1 5:2:2 6:1:1 7:2:0 8:2:2 9:2:2 10:0:0 11:2:0 12:0:0 13:1:0 14:1:1 15:0:0 3 1 0 2 0 0:3:r1:or@base_1:lossy 1:4:r4:shfl@base_2:inject 2:10:r7:load@base_3:inject 3:13:r1:load@base_4:inject 4:15:r6:load@base_13:inject 5:17:r7:sub@base_12:inject 6:20:r7:mul@base_18:lossy 7:36:r3:mad@base_32:inject 8:47:r6:load@base_36:inject 9:52:r0:rotl@base_48:bijective 10:56:r5:mad@base_51:inject 11:59:r1:add@base_58:inject 12:60:r4:add@base_57:inject 13:61:r0:load@base_59:inject 14:62:r3:mul@base_42:lossy 15:63:r7:sub@base_50:inject +igneum-ca3-v4-uniform/1018 8157eb96f7376bbc 0 0:2:0 1:1:1 2:2:0 3:0:0 4:2:0 5:0:0 6:0:0 7:2:2 8:1:1 9:1:1 10:1:1 11:2:0 12:2:1 13:1:1 14:0:0 15:2:2 5 1 0 1 3 0:5:r6:mulhi@base_1:lossy 1:15:r0:rotl@base_2:bijective 2:17:r3:rotl@base_16:bijective 3:18:r1:mulhi@base_13:lossy 4:24:r4:rotr@base_12:bijective 5:25:r5:load@base_18:inject 6:28:r7:load@base_24:inject 7:29:r6:load@base_25:inject 8:30:r3:xor@base_22:inject 9:32:r1:load@base_28:inject 10:37:r6:mulhi@base_35:lossy 11:38:r5:or@base_31:lossy 12:43:r0:shfl@base_36:inject 13:53:r5:mul@base_48:lossy 14:54:r3:load@base_43:inject 15:61:r2:add@base_58:inject +igneum-ca3-v4-uniform/1019 4455826385d77fc3 0 0:0:0 1:1:0 2:2:3 3:0:0 4:1:0 5:0:0 6:0:0 7:0:0 8:0:0 9:0:0 10:0:0 11:2:2 12:0:0 13:0:0 14:0:0 15:0:0 3 1 0 2 0 0:1:r6:rotr@base_0:bijective 1:3:r5:or@base_2:lossy 2:5:r3:mul@base_4:lossy 3:6:r2:load@base_5:inject 4:11:r4:add@base_7:inject 5:16:r4:mad@base_15:inject 6:20:r6:sub@base_13:inject 7:31:r2:mad@base_28:inject 8:41:r0:sub@base_35:inject 9:47:r2:shfl@base_44:inject 10:49:r3:mul@base_45:lossy 11:50:r4:rotl@base_46:bijective 12:53:r2:load@base_49:inject 13:58:r6:shfl@base_51:inject 14:59:r3:sub@base_54:inject 15:63:r5:shfl@base_56:inject +igneum-ca3-v4-uniform/1020 8bd79c9dca3afad9 0 0:0:0 1:2:3 2:1:0 3:1:0 4:2:1 5:1:0 6:0:0 7:1:0 8:0:0 9:1:0 10:2:1 11:0:0 12:1:1 13:0:0 14:2:2 15:1:0 1 0 0 0 1 0:2:r7:sub@base_1:inject 1:11:r5:rotr@base_9:bijective 2:12:r6:mad@base_10:inject 3:22:r7:mad@base_20:inject 4:24:r0:mulhi@base_21:lossy 5:29:r4:rotr@base_28:bijective 6:31:r2:rotl@base_23:bijective 7:32:r5:add@base_26:inject 8:35:r6:load@base_24:inject 9:38:r4:load@base_32:inject 10:40:r3:sub@base_36:inject 11:44:r5:load@base_38:inject 12:45:r7:load@base_40:inject 13:47:r1:load@base_45:inject 14:48:r6:load@base_44:inject 15:63:r2:shfl@base_49:inject +igneum-ca3-v4-uniform/1021 b659562e37d7489e 0 0:2:0 1:2:1 2:1:0 3:2:3 4:2:2 5:0:0 6:1:1 7:1:0 8:2:2 9:1:1 10:1:1 11:2:0 12:0:0 13:0:0 14:1:1 15:2:2 2 0 0 1 1 0:1:r4:mad@base_0:inject 1:7:r5:shfl@base_3:inject 2:9:r7:mulhi@base_4:lossy 3:10:r1:load@base_9:inject 4:12:r2:mad@base_11:inject 5:13:r3:add@base_6:inject 6:19:r1:load@base_13:inject 7:20:r4:rotr@base_5:bijective 8:26:r6:load@base_20:inject 9:42:r0:sub@base_41:inject 10:44:r3:shfl@base_39:inject 11:51:r1:add@base_24:inject 12:54:r0:load@base_51:inject 13:57:r1:mul@base_56:lossy 14:62:r2:xor@base_53:inject 15:63:r6:add@base_59:inject +igneum-ca3-v4-uniform/1022 e7c0402a5b98181b 0 0:2:2 1:1:0 2:2:2 3:2:3 4:0:0 5:2:0 6:2:2 7:2:3 8:1:0 9:2:2 10:0:0 11:1:1 12:0:0 13:1:1 14:2:1 15:1:1 3 2 0 0 1 0:6:r0:add@base_5:inject 1:12:r5:xor@base_11:inject 2:21:r6:rotr@base_17:bijective 3:25:r3:mulhi@base_18:lossy 4:31:r2:or@base_30:lossy 5:33:r0:xor@base_28:inject 6:35:r7:xor@base_23:inject 7:36:r0:rotl@base_34:bijective 8:38:r1:load@base_31:inject 9:41:r6:shfl@base_39:inject 10:44:r7:load@base_41:inject 11:51:r2:rotl@base_49:bijective 12:53:r3:sub@base_50:inject 13:57:r5:mad@base_55:inject 14:60:r0:or@base_47:lossy 15:61:r7:load@base_60:inject +igneum-ca3-v4-uniform/1023 1091d120a847156a 1 0:1:0 1:0:0 2:2:2 3:0:0 4:1:0 5:2:0 6:0:0 7:2:0 8:2:0 9:2:0 10:1:1 11:2:0 12:1:1 13:1:0 14:0:0 15:1:1 2 0 0 2 0 0:1:r5:rotr@base_0:bijective 1:2:r4:load@base_1:inject 2:6:r7:rotl@base_5:bijective 3:8:r1:load@base_6:inject 4:12:r4:add@base_11:inject 5:17:r7:load@base_8:inject 6:22:r0:load@base_12:inject 7:27:r3:sub@base_21:inject 8:32:r1:rotr@base_18:bijective 9:38:r4:mul@base_37:lossy 10:41:r3:load@base_32:inject 11:43:r5:sub@base_36:inject 12:45:r7:add@base_39:inject 13:57:r1:sub@base_56:inject 14:59:r2:load@base_43:inject 15:60:r7:mul@base_55:lossy +CENSUS: 1027 chain-shaped class v4 programs; sites by last-writer kind inject 11368 bijective 2121 lossy 2943 init 0; lossy sites per program 2.866; programs with >=1 lossy-sourced load 992 (96.6%), >=1 or-sourced 498 (48.5%), >=1 or-chain-sourced 50 (4.9%), >=1 mul-sourced 751 (73.1%), >=1 mulhi-sourced 661 (64.4%); mean attempt 0.048 diff --git a/tools/ca3-v4-uniform/uniform-model.txt b/tools/ca3-v4-uniform/uniform-model.txt new file mode 100644 index 000000000..4d9105039 --- /dev/null +++ b/tools/ca3-v4-uniform/uniform-model.txt @@ -0,0 +1,6 @@ +flat Poisson top-0.1% share at 2^26: 0.115% (F8 control 0.115%); window model over 1027 programs: min 0.115% median 0.146% max 0.251% (densest quarter 1.00x to 2.31x flat) +p1: window model W_0.1% 0.159%, lossy sites ['mul', 'mulhi', 'or'], predicted S_0.1% 0.579% (F8 measured 0.520% at 2^26) +p2: window model W_0.1% 0.140%, lossy sites ['mul', 'mul', 'mulhi'], predicted S_0.1% 0.323% (F8 measured 0.272% at 10^6, flat control 0.243%) +p3: window model W_0.1% 0.153%, lossy sites ['mul', 'or-chain'], predicted S_0.1% 4.720% (F8 measured 4.595% at 10^6) +gates over the 1,024 census programs: F8's 1.2x-of-window: 96.6% fail; 1.2x-of-flat: 99.3%; 2x-of-window: 69.7%; 3x: 48.9%; S_0.1% <= 1% of reads: 6.9%; no or-sourced load (static): 48.4%; no lossy-sourced load (static): 96.6% +predicted S_0.1% over the census: median 0.45%, 90th pct 0.88%, 99th 5.29%, max 9.82% (or-chain programs 4.9%)