// Copyright 2024 RISC Zero, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // This code is automatically generated #include "ffi.h" #include "fp.h" #include #include #include // clang-format off namespace risc0::circuit::recursion { #if defined(__clang__) #pragma clang diagnostic ignored "-Wunused-parameter" #pragma clang diagnostic ignored "-Wunused-variable" #elif defined(__GNUC__) #pragma GCC diagnostic ignored "-Wunused-parameter" #pragma GCC diagnostic ignored "-Wunused-variable" #endif Fp step_verify_mem(void* ctx, HostBridge host, size_t steps, size_t cycle, Fp** args) { size_t mask = steps - 1; std::array host_args; std::array host_outs; // loc(unknown) Fp x0(1); // loc(unknown) Fp x1(0); // loc("top(recursion::Top)/code(recursion::Code)/select(OneHot)/micro_ops(Reg)"("./zirgen/components/mux.h":49:25)) auto x2 = args[0][1 * steps + ((cycle - 0) & mask)]; assert(x2 != Fp::invalid()); // loc("top(recursion::Top)/code(recursion::Code)/select(OneHot)/macro_ops(Reg)"("./zirgen/components/mux.h":49:25)) auto x3 = args[0][2 * steps + ((cycle - 0) & mask)]; assert(x3 != Fp::invalid()); // loc("top(recursion::Top)/code(recursion::Code)/select(OneHot)/poseidon2_load(Reg)"("./zirgen/components/mux.h":49:25)) auto x4 = args[0][3 * steps + ((cycle - 0) & mask)]; assert(x4 != Fp::invalid()); // loc("top(recursion::Top)/code(recursion::Code)/select(OneHot)/poseidon2_full(Reg)"("./zirgen/components/mux.h":49:25)) auto x5 = args[0][4 * steps + ((cycle - 0) & mask)]; assert(x5 != Fp::invalid()); // loc("top(recursion::Top)/code(recursion::Code)/select(OneHot)/poseidon2_partial(Reg)"("./zirgen/components/mux.h":49:25)) auto x6 = args[0][5 * steps + ((cycle - 0) & mask)]; assert(x6 != Fp::invalid()); // loc("top(recursion::Top)/code(recursion::Code)/select(OneHot)/poseidon2_store(Reg)"("./zirgen/components/mux.h":49:25)) auto x7 = args[0][6 * steps + ((cycle - 0) & mask)]; assert(x7 != Fp::invalid()); // loc("top(recursion::Top)/code(recursion::Code)/select(OneHot)/checked_bytes(Reg)"("./zirgen/components/mux.h":49:25)) auto x8 = args[0][7 * steps + ((cycle - 0) & mask)]; assert(x8 != Fp::invalid()); if (x2 != 0) { { host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x9 = host_outs.at(0); auto x10 = host_outs.at(1); auto x11 = host_outs.at(2); auto x12 = host_outs.at(3); auto x13 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][50 * steps + cycle]; assert(reg == Fp::invalid() || reg == x9); reg = x9; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][51 * steps + cycle]; assert(reg == Fp::invalid() || reg == x10); reg = x10; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][52 * steps + cycle]; assert(reg == Fp::invalid() || reg == x11); reg = x11; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][53 * steps + cycle]; assert(reg == Fp::invalid() || reg == x12); reg = x12; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][54 * steps + cycle]; assert(reg == Fp::invalid() || reg == x13); reg = x13; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x14 = host_outs.at(0); auto x15 = host_outs.at(1); auto x16 = host_outs.at(2); auto x17 = host_outs.at(3); auto x18 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][55 * steps + cycle]; assert(reg == Fp::invalid() || reg == x14); reg = x14; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][56 * steps + cycle]; assert(reg == Fp::invalid() || reg == x15); reg = x15; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][57 * steps + cycle]; assert(reg == Fp::invalid() || reg == x16); reg = x16; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][58 * steps + cycle]; assert(reg == Fp::invalid() || reg == x17); reg = x17; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][59 * steps + cycle]; assert(reg == Fp::invalid() || reg == x18); reg = x18; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x19 = host_outs.at(0); auto x20 = host_outs.at(1); auto x21 = host_outs.at(2); auto x22 = host_outs.at(3); auto x23 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][60 * steps + cycle]; assert(reg == Fp::invalid() || reg == x19); reg = x19; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][61 * steps + cycle]; assert(reg == Fp::invalid() || reg == x20); reg = x20; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][62 * steps + cycle]; assert(reg == Fp::invalid() || reg == x21); reg = x21; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][63 * steps + cycle]; assert(reg == Fp::invalid() || reg == x22); reg = x22; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][64 * steps + cycle]; assert(reg == Fp::invalid() || reg == x23); reg = x23; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x24 = host_outs.at(0); auto x25 = host_outs.at(1); auto x26 = host_outs.at(2); auto x27 = host_outs.at(3); auto x28 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][65 * steps + cycle]; assert(reg == Fp::invalid() || reg == x24); reg = x24; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][66 * steps + cycle]; assert(reg == Fp::invalid() || reg == x25); reg = x25; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][67 * steps + cycle]; assert(reg == Fp::invalid() || reg == x26); reg = x26; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][68 * steps + cycle]; assert(reg == Fp::invalid() || reg == x27); reg = x27; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][69 * steps + cycle]; assert(reg == Fp::invalid() || reg == x28); reg = x28; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x29 = host_outs.at(0); auto x30 = host_outs.at(1); auto x31 = host_outs.at(2); auto x32 = host_outs.at(3); auto x33 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][70 * steps + cycle]; assert(reg == Fp::invalid() || reg == x29); reg = x29; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][71 * steps + cycle]; assert(reg == Fp::invalid() || reg == x30); reg = x30; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][72 * steps + cycle]; assert(reg == Fp::invalid() || reg == x31); reg = x31; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][73 * steps + cycle]; assert(reg == Fp::invalid() || reg == x32); reg = x32; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][74 * steps + cycle]; assert(reg == Fp::invalid() || reg == x33); reg = x33; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x34 = host_outs.at(0); auto x35 = host_outs.at(1); auto x36 = host_outs.at(2); auto x37 = host_outs.at(3); auto x38 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][75 * steps + cycle]; assert(reg == Fp::invalid() || reg == x34); reg = x34; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][76 * steps + cycle]; assert(reg == Fp::invalid() || reg == x35); reg = x35; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][77 * steps + cycle]; assert(reg == Fp::invalid() || reg == x36); reg = x36; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][78 * steps + cycle]; assert(reg == Fp::invalid() || reg == x37); reg = x37; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][79 * steps + cycle]; assert(reg == Fp::invalid() || reg == x38); reg = x38; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x39 = host_outs.at(0); auto x40 = host_outs.at(1); auto x41 = host_outs.at(2); auto x42 = host_outs.at(3); auto x43 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][80 * steps + cycle]; assert(reg == Fp::invalid() || reg == x39); reg = x39; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][81 * steps + cycle]; assert(reg == Fp::invalid() || reg == x40); reg = x40; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][82 * steps + cycle]; assert(reg == Fp::invalid() || reg == x41); reg = x41; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][83 * steps + cycle]; assert(reg == Fp::invalid() || reg == x42); reg = x42; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][84 * steps + cycle]; assert(reg == Fp::invalid() || reg == x43); reg = x43; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x44 = host_outs.at(0); auto x45 = host_outs.at(1); auto x46 = host_outs.at(2); auto x47 = host_outs.at(3); auto x48 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][85 * steps + cycle]; assert(reg == Fp::invalid() || reg == x44); reg = x44; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][86 * steps + cycle]; assert(reg == Fp::invalid() || reg == x45); reg = x45; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][87 * steps + cycle]; assert(reg == Fp::invalid() || reg == x46); reg = x46; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][88 * steps + cycle]; assert(reg == Fp::invalid() || reg == x47); reg = x47; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][89 * steps + cycle]; assert(reg == Fp::invalid() || reg == x48); reg = x48; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x49 = host_outs.at(0); auto x50 = host_outs.at(1); auto x51 = host_outs.at(2); auto x52 = host_outs.at(3); auto x53 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][0 * steps + cycle]; assert(reg == Fp::invalid() || reg == x49); reg = x49; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][1 * steps + cycle]; assert(reg == Fp::invalid() || reg == x50); reg = x50; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][2 * steps + cycle]; assert(reg == Fp::invalid() || reg == x51); reg = x51; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][3 * steps + cycle]; assert(reg == Fp::invalid() || reg == x52); reg = x52; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][4 * steps + cycle]; assert(reg == Fp::invalid() || reg == x53); reg = x53; } } // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x54 = args[2][50 * steps + ((cycle - 0) & mask)]; assert(x54 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("zirgen/circuit/recursion/wom.cpp":61:40)) auto x55 = args[2][0 * steps + ((cycle - 1) & mask)]; assert(x55 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x56 = x54 - x55; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x57 = x0 - x56; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x58 = x56 * x57; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x58 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x57 != 0) { // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x59 = args[2][51 * steps + ((cycle - 0) & mask)]; assert(x59 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x60 = args[2][1 * steps + ((cycle - 1) & mask)]; assert(x60 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x61 = x60 - x59; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x61 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x62 = args[2][52 * steps + ((cycle - 0) & mask)]; assert(x62 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x63 = args[2][2 * steps + ((cycle - 1) & mask)]; assert(x63 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x64 = x63 - x62; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x64 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x65 = args[2][53 * steps + ((cycle - 0) & mask)]; assert(x65 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x66 = args[2][3 * steps + ((cycle - 1) & mask)]; assert(x66 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x67 = x66 - x65; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x67 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x68 = args[2][54 * steps + ((cycle - 0) & mask)]; assert(x68 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x69 = args[2][4 * steps + ((cycle - 1) & mask)]; assert(x69 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x70 = x69 - x68; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x70 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x71 = args[2][55 * steps + ((cycle - 0) & mask)]; assert(x71 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x72 = x71 - x54; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x73 = x0 - x72; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x74 = x72 * x73; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x74 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x73 != 0) { // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x75 = args[2][51 * steps + ((cycle - 0) & mask)]; assert(x75 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x76 = args[2][56 * steps + ((cycle - 0) & mask)]; assert(x76 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x77 = x75 - x76; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x77 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x78 = args[2][52 * steps + ((cycle - 0) & mask)]; assert(x78 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x79 = args[2][57 * steps + ((cycle - 0) & mask)]; assert(x79 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x80 = x78 - x79; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x80 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x81 = args[2][53 * steps + ((cycle - 0) & mask)]; assert(x81 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x82 = args[2][58 * steps + ((cycle - 0) & mask)]; assert(x82 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x83 = x81 - x82; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x83 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x84 = args[2][54 * steps + ((cycle - 0) & mask)]; assert(x84 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x85 = args[2][59 * steps + ((cycle - 0) & mask)]; assert(x85 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x86 = x84 - x85; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x86 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x87 = args[2][60 * steps + ((cycle - 0) & mask)]; assert(x87 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x88 = x87 - x71; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x89 = x0 - x88; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x90 = x88 * x89; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x90 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x89 != 0) { // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x91 = args[2][56 * steps + ((cycle - 0) & mask)]; assert(x91 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x92 = args[2][61 * steps + ((cycle - 0) & mask)]; assert(x92 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x93 = x91 - x92; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x93 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x94 = args[2][57 * steps + ((cycle - 0) & mask)]; assert(x94 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x95 = args[2][62 * steps + ((cycle - 0) & mask)]; assert(x95 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x96 = x94 - x95; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x96 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x97 = args[2][58 * steps + ((cycle - 0) & mask)]; assert(x97 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x98 = args[2][63 * steps + ((cycle - 0) & mask)]; assert(x98 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x99 = x97 - x98; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x99 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x100 = args[2][59 * steps + ((cycle - 0) & mask)]; assert(x100 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x101 = args[2][64 * steps + ((cycle - 0) & mask)]; assert(x101 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x102 = x100 - x101; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x102 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x103 = args[2][65 * steps + ((cycle - 0) & mask)]; assert(x103 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x104 = x103 - x87; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x105 = x0 - x104; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x106 = x104 * x105; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x106 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x105 != 0) { // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x107 = args[2][61 * steps + ((cycle - 0) & mask)]; assert(x107 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x108 = args[2][66 * steps + ((cycle - 0) & mask)]; assert(x108 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x109 = x107 - x108; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x109 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x110 = args[2][62 * steps + ((cycle - 0) & mask)]; assert(x110 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x111 = args[2][67 * steps + ((cycle - 0) & mask)]; assert(x111 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x112 = x110 - x111; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x112 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x113 = args[2][63 * steps + ((cycle - 0) & mask)]; assert(x113 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x114 = args[2][68 * steps + ((cycle - 0) & mask)]; assert(x114 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x115 = x113 - x114; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x115 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x116 = args[2][64 * steps + ((cycle - 0) & mask)]; assert(x116 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x117 = args[2][69 * steps + ((cycle - 0) & mask)]; assert(x117 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x118 = x116 - x117; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x118 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x119 = args[2][70 * steps + ((cycle - 0) & mask)]; assert(x119 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x120 = x119 - x103; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x121 = x0 - x120; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x122 = x120 * x121; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x122 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x121 != 0) { // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x123 = args[2][66 * steps + ((cycle - 0) & mask)]; assert(x123 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x124 = args[2][71 * steps + ((cycle - 0) & mask)]; assert(x124 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x125 = x123 - x124; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x125 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x126 = args[2][67 * steps + ((cycle - 0) & mask)]; assert(x126 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x127 = args[2][72 * steps + ((cycle - 0) & mask)]; assert(x127 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x128 = x126 - x127; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x128 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x129 = args[2][68 * steps + ((cycle - 0) & mask)]; assert(x129 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x130 = args[2][73 * steps + ((cycle - 0) & mask)]; assert(x130 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x131 = x129 - x130; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x131 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x132 = args[2][69 * steps + ((cycle - 0) & mask)]; assert(x132 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x133 = args[2][74 * steps + ((cycle - 0) & mask)]; assert(x133 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x134 = x132 - x133; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x134 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x135 = args[2][75 * steps + ((cycle - 0) & mask)]; assert(x135 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x136 = x135 - x119; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x137 = x0 - x136; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x138 = x136 * x137; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x138 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x137 != 0) { // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x139 = args[2][71 * steps + ((cycle - 0) & mask)]; assert(x139 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x140 = args[2][76 * steps + ((cycle - 0) & mask)]; assert(x140 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x141 = x139 - x140; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x141 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x142 = args[2][72 * steps + ((cycle - 0) & mask)]; assert(x142 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x143 = args[2][77 * steps + ((cycle - 0) & mask)]; assert(x143 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x144 = x142 - x143; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x144 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x145 = args[2][73 * steps + ((cycle - 0) & mask)]; assert(x145 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x146 = args[2][78 * steps + ((cycle - 0) & mask)]; assert(x146 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x147 = x145 - x146; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x147 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x148 = args[2][74 * steps + ((cycle - 0) & mask)]; assert(x148 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x149 = args[2][79 * steps + ((cycle - 0) & mask)]; assert(x149 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x150 = x148 - x149; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x150 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x151 = args[2][80 * steps + ((cycle - 0) & mask)]; assert(x151 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x152 = x151 - x135; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x153 = x0 - x152; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x154 = x152 * x153; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x154 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x153 != 0) { // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x155 = args[2][76 * steps + ((cycle - 0) & mask)]; assert(x155 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x156 = args[2][81 * steps + ((cycle - 0) & mask)]; assert(x156 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x157 = x155 - x156; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x157 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x158 = args[2][77 * steps + ((cycle - 0) & mask)]; assert(x158 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x159 = args[2][82 * steps + ((cycle - 0) & mask)]; assert(x159 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x160 = x158 - x159; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x160 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x161 = args[2][78 * steps + ((cycle - 0) & mask)]; assert(x161 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x162 = args[2][83 * steps + ((cycle - 0) & mask)]; assert(x162 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x163 = x161 - x162; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x163 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x164 = args[2][79 * steps + ((cycle - 0) & mask)]; assert(x164 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x165 = args[2][84 * steps + ((cycle - 0) & mask)]; assert(x165 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x166 = x164 - x165; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x166 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x167 = args[2][85 * steps + ((cycle - 0) & mask)]; assert(x167 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x168 = x167 - x151; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x169 = x0 - x168; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x170 = x168 * x169; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x170 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x169 != 0) { // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x171 = args[2][81 * steps + ((cycle - 0) & mask)]; assert(x171 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x172 = args[2][86 * steps + ((cycle - 0) & mask)]; assert(x172 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x173 = x171 - x172; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x173 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x174 = args[2][82 * steps + ((cycle - 0) & mask)]; assert(x174 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x175 = args[2][87 * steps + ((cycle - 0) & mask)]; assert(x175 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x176 = x174 - x175; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x176 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x177 = args[2][83 * steps + ((cycle - 0) & mask)]; assert(x177 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x178 = args[2][88 * steps + ((cycle - 0) & mask)]; assert(x178 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x179 = x177 - x178; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x179 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x180 = args[2][84 * steps + ((cycle - 0) & mask)]; assert(x180 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x181 = args[2][89 * steps + ((cycle - 0) & mask)]; assert(x181 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x182 = x180 - x181; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x182 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x183 = args[2][0 * steps + ((cycle - 0) & mask)]; assert(x183 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x184 = x183 - x167; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x185 = x0 - x184; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x186 = x184 * x185; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x186 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x185 != 0) { // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x187 = args[2][86 * steps + ((cycle - 0) & mask)]; assert(x187 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x188 = args[2][1 * steps + ((cycle - 0) & mask)]; assert(x188 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x189 = x187 - x188; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x189 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x190 = args[2][87 * steps + ((cycle - 0) & mask)]; assert(x190 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x191 = args[2][2 * steps + ((cycle - 0) & mask)]; assert(x191 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x192 = x190 - x191; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x192 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x193 = args[2][88 * steps + ((cycle - 0) & mask)]; assert(x193 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x194 = args[2][3 * steps + ((cycle - 0) & mask)]; assert(x194 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x195 = x193 - x194; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x195 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/micro_ops(recursion::MicroOps)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x196 = args[2][89 * steps + ((cycle - 0) & mask)]; assert(x196 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x197 = args[2][4 * steps + ((cycle - 0) & mask)]; assert(x197 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x198 = x196 - x197; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x198 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } } if (x3 != 0) { // loc("zirgen/compiler/edsl/component.cpp":39:15) auto x199 = args[0][9 * steps + ((cycle - 0) & mask)]; assert(x199 != Fp::invalid()); if (x199 != 0) { // loc("zirgen/circuit/recursion/wom.cpp":12:3) { auto& reg = args[2][0 * steps + cycle]; assert(reg == Fp::invalid() || reg == x1); reg = x1; } // loc("zirgen/circuit/recursion/wom.cpp":51:5) { auto& reg = args[2][1 * steps + cycle]; assert(reg == Fp::invalid() || reg == x1); reg = x1; } // loc("zirgen/circuit/recursion/wom.cpp":51:5) { auto& reg = args[2][2 * steps + cycle]; assert(reg == Fp::invalid() || reg == x1); reg = x1; } // loc("zirgen/circuit/recursion/wom.cpp":51:5) { auto& reg = args[2][3 * steps + cycle]; assert(reg == Fp::invalid() || reg == x1); reg = x1; } // loc("zirgen/circuit/recursion/wom.cpp":51:5) { auto& reg = args[2][4 * steps + cycle]; assert(reg == Fp::invalid() || reg == x1); reg = x1; } } // loc("zirgen/compiler/edsl/component.cpp":39:15) auto x200 = args[0][10 * steps + ((cycle - 0) & mask)]; assert(x200 != Fp::invalid()); if (x200 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/wom_fini(recursion::WomFiniWrapper)/PlonkFini/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x201 = args[2][11 * steps + ((cycle - 0) & mask)]; assert(x201 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("zirgen/circuit/recursion/wom.cpp":61:40)) auto x202 = args[2][0 * steps + ((cycle - 1) & mask)]; assert(x202 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x203 = x201 - x202; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x204 = x0 - x203; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x205 = x203 * x204; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x205 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x204 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/wom_fini(recursion::WomFiniWrapper)/PlonkFini/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x206 = args[2][12 * steps + ((cycle - 0) & mask)]; assert(x206 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x207 = args[2][1 * steps + ((cycle - 1) & mask)]; assert(x207 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x208 = x207 - x206; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x208 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/wom_fini(recursion::WomFiniWrapper)/PlonkFini/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x209 = args[2][13 * steps + ((cycle - 0) & mask)]; assert(x209 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x210 = args[2][2 * steps + ((cycle - 1) & mask)]; assert(x210 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x211 = x210 - x209; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x211 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/wom_fini(recursion::WomFiniWrapper)/PlonkFini/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x212 = args[2][14 * steps + ((cycle - 0) & mask)]; assert(x212 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x213 = args[2][3 * steps + ((cycle - 1) & mask)]; assert(x213 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x214 = x213 - x212; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x214 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/wom_fini(recursion::WomFiniWrapper)/PlonkFini/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x215 = args[2][15 * steps + ((cycle - 0) & mask)]; assert(x215 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x216 = args[2][4 * steps + ((cycle - 1) & mask)]; assert(x216 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x217 = x216 - x215; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x217 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } } // loc("zirgen/compiler/edsl/component.cpp":39:15) auto x218 = args[0][11 * steps + ((cycle - 0) & mask)]; assert(x218 != Fp::invalid()); if (x218 != 0) { { host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x219 = host_outs.at(0); auto x220 = host_outs.at(1); auto x221 = host_outs.at(2); auto x222 = host_outs.at(3); auto x223 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][26 * steps + cycle]; assert(reg == Fp::invalid() || reg == x219); reg = x219; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][27 * steps + cycle]; assert(reg == Fp::invalid() || reg == x220); reg = x220; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][28 * steps + cycle]; assert(reg == Fp::invalid() || reg == x221); reg = x221; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][29 * steps + cycle]; assert(reg == Fp::invalid() || reg == x222); reg = x222; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][30 * steps + cycle]; assert(reg == Fp::invalid() || reg == x223); reg = x223; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x224 = host_outs.at(0); auto x225 = host_outs.at(1); auto x226 = host_outs.at(2); auto x227 = host_outs.at(3); auto x228 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][31 * steps + cycle]; assert(reg == Fp::invalid() || reg == x224); reg = x224; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][32 * steps + cycle]; assert(reg == Fp::invalid() || reg == x225); reg = x225; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][33 * steps + cycle]; assert(reg == Fp::invalid() || reg == x226); reg = x226; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][34 * steps + cycle]; assert(reg == Fp::invalid() || reg == x227); reg = x227; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][35 * steps + cycle]; assert(reg == Fp::invalid() || reg == x228); reg = x228; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x229 = host_outs.at(0); auto x230 = host_outs.at(1); auto x231 = host_outs.at(2); auto x232 = host_outs.at(3); auto x233 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][0 * steps + cycle]; assert(reg == Fp::invalid() || reg == x229); reg = x229; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][1 * steps + cycle]; assert(reg == Fp::invalid() || reg == x230); reg = x230; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][2 * steps + cycle]; assert(reg == Fp::invalid() || reg == x231); reg = x231; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][3 * steps + cycle]; assert(reg == Fp::invalid() || reg == x232); reg = x232; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][4 * steps + cycle]; assert(reg == Fp::invalid() || reg == x233); reg = x233; } } // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x234 = args[2][26 * steps + ((cycle - 0) & mask)]; assert(x234 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("zirgen/circuit/recursion/wom.cpp":61:40)) auto x235 = args[2][0 * steps + ((cycle - 1) & mask)]; assert(x235 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x236 = x234 - x235; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x237 = x0 - x236; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x238 = x236 * x237; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x238 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x237 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x239 = args[2][27 * steps + ((cycle - 0) & mask)]; assert(x239 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x240 = args[2][1 * steps + ((cycle - 1) & mask)]; assert(x240 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x241 = x240 - x239; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x241 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x242 = args[2][28 * steps + ((cycle - 0) & mask)]; assert(x242 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x243 = args[2][2 * steps + ((cycle - 1) & mask)]; assert(x243 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x244 = x243 - x242; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x244 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x245 = args[2][29 * steps + ((cycle - 0) & mask)]; assert(x245 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x246 = args[2][3 * steps + ((cycle - 1) & mask)]; assert(x246 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x247 = x246 - x245; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x247 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x248 = args[2][30 * steps + ((cycle - 0) & mask)]; assert(x248 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x249 = args[2][4 * steps + ((cycle - 1) & mask)]; assert(x249 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x250 = x249 - x248; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x250 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x251 = args[2][31 * steps + ((cycle - 0) & mask)]; assert(x251 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x252 = x251 - x234; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x253 = x0 - x252; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x254 = x252 * x253; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x254 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x253 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x255 = args[2][27 * steps + ((cycle - 0) & mask)]; assert(x255 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x256 = args[2][32 * steps + ((cycle - 0) & mask)]; assert(x256 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x257 = x255 - x256; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x257 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x258 = args[2][28 * steps + ((cycle - 0) & mask)]; assert(x258 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x259 = args[2][33 * steps + ((cycle - 0) & mask)]; assert(x259 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x260 = x258 - x259; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x260 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x261 = args[2][29 * steps + ((cycle - 0) & mask)]; assert(x261 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x262 = args[2][34 * steps + ((cycle - 0) & mask)]; assert(x262 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x263 = x261 - x262; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x263 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x264 = args[2][30 * steps + ((cycle - 0) & mask)]; assert(x264 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x265 = args[2][35 * steps + ((cycle - 0) & mask)]; assert(x265 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x266 = x264 - x265; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x266 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x267 = args[2][0 * steps + ((cycle - 0) & mask)]; assert(x267 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x268 = x267 - x251; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x269 = x0 - x268; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x270 = x268 * x269; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x270 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x269 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x271 = args[2][32 * steps + ((cycle - 0) & mask)]; assert(x271 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x272 = args[2][1 * steps + ((cycle - 0) & mask)]; assert(x272 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x273 = x271 - x272; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x273 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x274 = args[2][33 * steps + ((cycle - 0) & mask)]; assert(x274 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x275 = args[2][2 * steps + ((cycle - 0) & mask)]; assert(x275 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x276 = x274 - x275; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x276 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x277 = args[2][34 * steps + ((cycle - 0) & mask)]; assert(x277 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x278 = args[2][3 * steps + ((cycle - 0) & mask)]; assert(x278 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x279 = x277 - x278; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x279 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_and_elem(recursion::BitAndElem)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x280 = args[2][35 * steps + ((cycle - 0) & mask)]; assert(x280 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x281 = args[2][4 * steps + ((cycle - 0) & mask)]; assert(x281 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x282 = x280 - x281; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x282 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } } // loc("zirgen/compiler/edsl/component.cpp":39:15) auto x283 = args[0][12 * steps + ((cycle - 0) & mask)]; assert(x283 != Fp::invalid()); if (x283 != 0) { { host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x284 = host_outs.at(0); auto x285 = host_outs.at(1); auto x286 = host_outs.at(2); auto x287 = host_outs.at(3); auto x288 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][26 * steps + cycle]; assert(reg == Fp::invalid() || reg == x284); reg = x284; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][27 * steps + cycle]; assert(reg == Fp::invalid() || reg == x285); reg = x285; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][28 * steps + cycle]; assert(reg == Fp::invalid() || reg == x286); reg = x286; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][29 * steps + cycle]; assert(reg == Fp::invalid() || reg == x287); reg = x287; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][30 * steps + cycle]; assert(reg == Fp::invalid() || reg == x288); reg = x288; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x289 = host_outs.at(0); auto x290 = host_outs.at(1); auto x291 = host_outs.at(2); auto x292 = host_outs.at(3); auto x293 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][31 * steps + cycle]; assert(reg == Fp::invalid() || reg == x289); reg = x289; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][32 * steps + cycle]; assert(reg == Fp::invalid() || reg == x290); reg = x290; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][33 * steps + cycle]; assert(reg == Fp::invalid() || reg == x291); reg = x291; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][34 * steps + cycle]; assert(reg == Fp::invalid() || reg == x292); reg = x292; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][35 * steps + cycle]; assert(reg == Fp::invalid() || reg == x293); reg = x293; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x294 = host_outs.at(0); auto x295 = host_outs.at(1); auto x296 = host_outs.at(2); auto x297 = host_outs.at(3); auto x298 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][0 * steps + cycle]; assert(reg == Fp::invalid() || reg == x294); reg = x294; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][1 * steps + cycle]; assert(reg == Fp::invalid() || reg == x295); reg = x295; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][2 * steps + cycle]; assert(reg == Fp::invalid() || reg == x296); reg = x296; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][3 * steps + cycle]; assert(reg == Fp::invalid() || reg == x297); reg = x297; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][4 * steps + cycle]; assert(reg == Fp::invalid() || reg == x298); reg = x298; } } // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x299 = args[2][26 * steps + ((cycle - 0) & mask)]; assert(x299 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("zirgen/circuit/recursion/wom.cpp":61:40)) auto x300 = args[2][0 * steps + ((cycle - 1) & mask)]; assert(x300 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x301 = x299 - x300; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x302 = x0 - x301; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x303 = x301 * x302; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x303 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x302 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x304 = args[2][27 * steps + ((cycle - 0) & mask)]; assert(x304 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x305 = args[2][1 * steps + ((cycle - 1) & mask)]; assert(x305 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x306 = x305 - x304; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x306 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x307 = args[2][28 * steps + ((cycle - 0) & mask)]; assert(x307 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x308 = args[2][2 * steps + ((cycle - 1) & mask)]; assert(x308 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x309 = x308 - x307; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x309 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x310 = args[2][29 * steps + ((cycle - 0) & mask)]; assert(x310 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x311 = args[2][3 * steps + ((cycle - 1) & mask)]; assert(x311 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x312 = x311 - x310; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x312 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x313 = args[2][30 * steps + ((cycle - 0) & mask)]; assert(x313 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x314 = args[2][4 * steps + ((cycle - 1) & mask)]; assert(x314 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x315 = x314 - x313; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x315 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x316 = args[2][31 * steps + ((cycle - 0) & mask)]; assert(x316 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x317 = x316 - x299; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x318 = x0 - x317; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x319 = x317 * x318; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x319 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x318 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x320 = args[2][27 * steps + ((cycle - 0) & mask)]; assert(x320 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x321 = args[2][32 * steps + ((cycle - 0) & mask)]; assert(x321 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x322 = x320 - x321; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x322 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x323 = args[2][28 * steps + ((cycle - 0) & mask)]; assert(x323 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x324 = args[2][33 * steps + ((cycle - 0) & mask)]; assert(x324 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x325 = x323 - x324; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x325 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x326 = args[2][29 * steps + ((cycle - 0) & mask)]; assert(x326 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x327 = args[2][34 * steps + ((cycle - 0) & mask)]; assert(x327 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x328 = x326 - x327; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x328 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x329 = args[2][30 * steps + ((cycle - 0) & mask)]; assert(x329 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x330 = args[2][35 * steps + ((cycle - 0) & mask)]; assert(x330 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x331 = x329 - x330; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x331 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x332 = args[2][0 * steps + ((cycle - 0) & mask)]; assert(x332 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x333 = x332 - x316; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x334 = x0 - x333; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x335 = x333 * x334; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x335 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x334 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x336 = args[2][32 * steps + ((cycle - 0) & mask)]; assert(x336 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x337 = args[2][1 * steps + ((cycle - 0) & mask)]; assert(x337 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x338 = x336 - x337; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x338 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x339 = args[2][33 * steps + ((cycle - 0) & mask)]; assert(x339 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x340 = args[2][2 * steps + ((cycle - 0) & mask)]; assert(x340 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x341 = x339 - x340; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x341 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x342 = args[2][34 * steps + ((cycle - 0) & mask)]; assert(x342 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x343 = args[2][3 * steps + ((cycle - 0) & mask)]; assert(x343 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x344 = x342 - x343; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x344 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/bit_op_shorts(recursion::BitOpShorts)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x345 = args[2][35 * steps + ((cycle - 0) & mask)]; assert(x345 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x346 = args[2][4 * steps + ((cycle - 0) & mask)]; assert(x346 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x347 = x345 - x346; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x347 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } } // loc("zirgen/compiler/edsl/component.cpp":39:15) auto x348 = args[0][13 * steps + ((cycle - 0) & mask)]; assert(x348 != Fp::invalid()); if (x348 != 0) { { host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x349 = host_outs.at(0); auto x350 = host_outs.at(1); auto x351 = host_outs.at(2); auto x352 = host_outs.at(3); auto x353 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][21 * steps + cycle]; assert(reg == Fp::invalid() || reg == x349); reg = x349; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][22 * steps + cycle]; assert(reg == Fp::invalid() || reg == x350); reg = x350; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][23 * steps + cycle]; assert(reg == Fp::invalid() || reg == x351); reg = x351; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][24 * steps + cycle]; assert(reg == Fp::invalid() || reg == x352); reg = x352; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][25 * steps + cycle]; assert(reg == Fp::invalid() || reg == x353); reg = x353; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x354 = host_outs.at(0); auto x355 = host_outs.at(1); auto x356 = host_outs.at(2); auto x357 = host_outs.at(3); auto x358 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][0 * steps + cycle]; assert(reg == Fp::invalid() || reg == x354); reg = x354; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][1 * steps + cycle]; assert(reg == Fp::invalid() || reg == x355); reg = x355; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][2 * steps + cycle]; assert(reg == Fp::invalid() || reg == x356); reg = x356; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][3 * steps + cycle]; assert(reg == Fp::invalid() || reg == x357); reg = x357; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][4 * steps + cycle]; assert(reg == Fp::invalid() || reg == x358); reg = x358; } } // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_init(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x359 = args[2][21 * steps + ((cycle - 0) & mask)]; assert(x359 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("zirgen/circuit/recursion/wom.cpp":61:40)) auto x360 = args[2][0 * steps + ((cycle - 1) & mask)]; assert(x360 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x361 = x359 - x360; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x362 = x0 - x361; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x363 = x361 * x362; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x363 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x362 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_init(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x364 = args[2][22 * steps + ((cycle - 0) & mask)]; assert(x364 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x365 = args[2][1 * steps + ((cycle - 1) & mask)]; assert(x365 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x366 = x365 - x364; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x366 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_init(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x367 = args[2][23 * steps + ((cycle - 0) & mask)]; assert(x367 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x368 = args[2][2 * steps + ((cycle - 1) & mask)]; assert(x368 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x369 = x368 - x367; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x369 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_init(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x370 = args[2][24 * steps + ((cycle - 0) & mask)]; assert(x370 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x371 = args[2][3 * steps + ((cycle - 1) & mask)]; assert(x371 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x372 = x371 - x370; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x372 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_init(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x373 = args[2][25 * steps + ((cycle - 0) & mask)]; assert(x373 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x374 = args[2][4 * steps + ((cycle - 1) & mask)]; assert(x374 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x375 = x374 - x373; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x375 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x376 = args[2][0 * steps + ((cycle - 0) & mask)]; assert(x376 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x377 = x376 - x359; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x378 = x0 - x377; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x379 = x377 * x378; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x379 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x378 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_init(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x380 = args[2][22 * steps + ((cycle - 0) & mask)]; assert(x380 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x381 = args[2][1 * steps + ((cycle - 0) & mask)]; assert(x381 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x382 = x380 - x381; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x382 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_init(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x383 = args[2][23 * steps + ((cycle - 0) & mask)]; assert(x383 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x384 = args[2][2 * steps + ((cycle - 0) & mask)]; assert(x384 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x385 = x383 - x384; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x385 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_init(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x386 = args[2][24 * steps + ((cycle - 0) & mask)]; assert(x386 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x387 = args[2][3 * steps + ((cycle - 0) & mask)]; assert(x387 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x388 = x386 - x387; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x388 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_init(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x389 = args[2][25 * steps + ((cycle - 0) & mask)]; assert(x389 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x390 = args[2][4 * steps + ((cycle - 0) & mask)]; assert(x390 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x391 = x389 - x390; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x391 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } } // loc("zirgen/compiler/edsl/component.cpp":39:15) auto x392 = args[0][14 * steps + ((cycle - 0) & mask)]; assert(x392 != Fp::invalid()); if (x392 != 0) { { host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x393 = host_outs.at(0); auto x394 = host_outs.at(1); auto x395 = host_outs.at(2); auto x396 = host_outs.at(3); auto x397 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][21 * steps + cycle]; assert(reg == Fp::invalid() || reg == x393); reg = x393; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][22 * steps + cycle]; assert(reg == Fp::invalid() || reg == x394); reg = x394; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][23 * steps + cycle]; assert(reg == Fp::invalid() || reg == x395); reg = x395; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][24 * steps + cycle]; assert(reg == Fp::invalid() || reg == x396); reg = x396; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][25 * steps + cycle]; assert(reg == Fp::invalid() || reg == x397); reg = x397; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x398 = host_outs.at(0); auto x399 = host_outs.at(1); auto x400 = host_outs.at(2); auto x401 = host_outs.at(3); auto x402 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][0 * steps + cycle]; assert(reg == Fp::invalid() || reg == x398); reg = x398; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][1 * steps + cycle]; assert(reg == Fp::invalid() || reg == x399); reg = x399; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][2 * steps + cycle]; assert(reg == Fp::invalid() || reg == x400); reg = x400; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][3 * steps + cycle]; assert(reg == Fp::invalid() || reg == x401); reg = x401; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][4 * steps + cycle]; assert(reg == Fp::invalid() || reg == x402); reg = x402; } } // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x403 = args[2][21 * steps + ((cycle - 0) & mask)]; assert(x403 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("zirgen/circuit/recursion/wom.cpp":61:40)) auto x404 = args[2][0 * steps + ((cycle - 1) & mask)]; assert(x404 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x405 = x403 - x404; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x406 = x0 - x405; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x407 = x405 * x406; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x407 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x406 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x408 = args[2][22 * steps + ((cycle - 0) & mask)]; assert(x408 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x409 = args[2][1 * steps + ((cycle - 1) & mask)]; assert(x409 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x410 = x409 - x408; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x410 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x411 = args[2][23 * steps + ((cycle - 0) & mask)]; assert(x411 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x412 = args[2][2 * steps + ((cycle - 1) & mask)]; assert(x412 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x413 = x412 - x411; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x413 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x414 = args[2][24 * steps + ((cycle - 0) & mask)]; assert(x414 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x415 = args[2][3 * steps + ((cycle - 1) & mask)]; assert(x415 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x416 = x415 - x414; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x416 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x417 = args[2][25 * steps + ((cycle - 0) & mask)]; assert(x417 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x418 = args[2][4 * steps + ((cycle - 1) & mask)]; assert(x418 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x419 = x418 - x417; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x419 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x420 = args[2][0 * steps + ((cycle - 0) & mask)]; assert(x420 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x421 = x420 - x403; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x422 = x0 - x421; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x423 = x421 * x422; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x423 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x422 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x424 = args[2][22 * steps + ((cycle - 0) & mask)]; assert(x424 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x425 = args[2][1 * steps + ((cycle - 0) & mask)]; assert(x425 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x426 = x424 - x425; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x426 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x427 = args[2][23 * steps + ((cycle - 0) & mask)]; assert(x427 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x428 = args[2][2 * steps + ((cycle - 0) & mask)]; assert(x428 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x429 = x427 - x428; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x429 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x430 = args[2][24 * steps + ((cycle - 0) & mask)]; assert(x430 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x431 = args[2][3 * steps + ((cycle - 0) & mask)]; assert(x431 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x432 = x430 - x431; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x432 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_fini(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x433 = args[2][25 * steps + ((cycle - 0) & mask)]; assert(x433 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x434 = args[2][4 * steps + ((cycle - 0) & mask)]; assert(x434 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x435 = x433 - x434; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x435 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } } // loc("zirgen/compiler/edsl/component.cpp":39:15) auto x436 = args[0][15 * steps + ((cycle - 0) & mask)]; assert(x436 != Fp::invalid()); if (x436 != 0) { { host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x437 = host_outs.at(0); auto x438 = host_outs.at(1); auto x439 = host_outs.at(2); auto x440 = host_outs.at(3); auto x441 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][21 * steps + cycle]; assert(reg == Fp::invalid() || reg == x437); reg = x437; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][22 * steps + cycle]; assert(reg == Fp::invalid() || reg == x438); reg = x438; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][23 * steps + cycle]; assert(reg == Fp::invalid() || reg == x439); reg = x439; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][24 * steps + cycle]; assert(reg == Fp::invalid() || reg == x440); reg = x440; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][25 * steps + cycle]; assert(reg == Fp::invalid() || reg == x441); reg = x441; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x442 = host_outs.at(0); auto x443 = host_outs.at(1); auto x444 = host_outs.at(2); auto x445 = host_outs.at(3); auto x446 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][0 * steps + cycle]; assert(reg == Fp::invalid() || reg == x442); reg = x442; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][1 * steps + cycle]; assert(reg == Fp::invalid() || reg == x443); reg = x443; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][2 * steps + cycle]; assert(reg == Fp::invalid() || reg == x444); reg = x444; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][3 * steps + cycle]; assert(reg == Fp::invalid() || reg == x445); reg = x445; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][4 * steps + cycle]; assert(reg == Fp::invalid() || reg == x446); reg = x446; } } // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x447 = args[2][21 * steps + ((cycle - 0) & mask)]; assert(x447 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("zirgen/circuit/recursion/wom.cpp":61:40)) auto x448 = args[2][0 * steps + ((cycle - 1) & mask)]; assert(x448 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x449 = x447 - x448; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x450 = x0 - x449; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x451 = x449 * x450; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x451 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x450 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x452 = args[2][22 * steps + ((cycle - 0) & mask)]; assert(x452 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x453 = args[2][1 * steps + ((cycle - 1) & mask)]; assert(x453 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x454 = x453 - x452; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x454 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x455 = args[2][23 * steps + ((cycle - 0) & mask)]; assert(x455 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x456 = args[2][2 * steps + ((cycle - 1) & mask)]; assert(x456 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x457 = x456 - x455; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x457 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x458 = args[2][24 * steps + ((cycle - 0) & mask)]; assert(x458 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x459 = args[2][3 * steps + ((cycle - 1) & mask)]; assert(x459 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x460 = x459 - x458; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x460 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x461 = args[2][25 * steps + ((cycle - 0) & mask)]; assert(x461 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x462 = args[2][4 * steps + ((cycle - 1) & mask)]; assert(x462 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x463 = x462 - x461; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x463 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x464 = args[2][0 * steps + ((cycle - 0) & mask)]; assert(x464 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x465 = x464 - x447; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x466 = x0 - x465; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x467 = x465 * x466; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x467 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x466 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x468 = args[2][22 * steps + ((cycle - 0) & mask)]; assert(x468 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x469 = args[2][1 * steps + ((cycle - 0) & mask)]; assert(x469 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x470 = x468 - x469; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x470 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x471 = args[2][23 * steps + ((cycle - 0) & mask)]; assert(x471 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x472 = args[2][2 * steps + ((cycle - 0) & mask)]; assert(x472 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x473 = x471 - x472; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x473 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x474 = args[2][24 * steps + ((cycle - 0) & mask)]; assert(x474 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x475 = args[2][3 * steps + ((cycle - 0) & mask)]; assert(x475 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x476 = x474 - x475; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x476 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_load(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x477 = args[2][25 * steps + ((cycle - 0) & mask)]; assert(x477 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x478 = args[2][4 * steps + ((cycle - 0) & mask)]; assert(x478 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x479 = x477 - x478; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x479 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } } // loc("zirgen/compiler/edsl/component.cpp":39:15) auto x480 = args[0][16 * steps + ((cycle - 0) & mask)]; assert(x480 != Fp::invalid()); if (x480 != 0) { { host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x481 = host_outs.at(0); auto x482 = host_outs.at(1); auto x483 = host_outs.at(2); auto x484 = host_outs.at(3); auto x485 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][21 * steps + cycle]; assert(reg == Fp::invalid() || reg == x481); reg = x481; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][22 * steps + cycle]; assert(reg == Fp::invalid() || reg == x482); reg = x482; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][23 * steps + cycle]; assert(reg == Fp::invalid() || reg == x483); reg = x483; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][24 * steps + cycle]; assert(reg == Fp::invalid() || reg == x484); reg = x484; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][25 * steps + cycle]; assert(reg == Fp::invalid() || reg == x485); reg = x485; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x486 = host_outs.at(0); auto x487 = host_outs.at(1); auto x488 = host_outs.at(2); auto x489 = host_outs.at(3); auto x490 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][0 * steps + cycle]; assert(reg == Fp::invalid() || reg == x486); reg = x486; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][1 * steps + cycle]; assert(reg == Fp::invalid() || reg == x487); reg = x487; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][2 * steps + cycle]; assert(reg == Fp::invalid() || reg == x488); reg = x488; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][3 * steps + cycle]; assert(reg == Fp::invalid() || reg == x489); reg = x489; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][4 * steps + cycle]; assert(reg == Fp::invalid() || reg == x490); reg = x490; } } // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x491 = args[2][21 * steps + ((cycle - 0) & mask)]; assert(x491 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("zirgen/circuit/recursion/wom.cpp":61:40)) auto x492 = args[2][0 * steps + ((cycle - 1) & mask)]; assert(x492 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x493 = x491 - x492; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x494 = x0 - x493; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x495 = x493 * x494; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x495 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x494 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x496 = args[2][22 * steps + ((cycle - 0) & mask)]; assert(x496 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x497 = args[2][1 * steps + ((cycle - 1) & mask)]; assert(x497 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x498 = x497 - x496; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x498 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x499 = args[2][23 * steps + ((cycle - 0) & mask)]; assert(x499 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x500 = args[2][2 * steps + ((cycle - 1) & mask)]; assert(x500 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x501 = x500 - x499; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x501 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x502 = args[2][24 * steps + ((cycle - 0) & mask)]; assert(x502 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x503 = args[2][3 * steps + ((cycle - 1) & mask)]; assert(x503 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x504 = x503 - x502; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x504 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x505 = args[2][25 * steps + ((cycle - 0) & mask)]; assert(x505 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x506 = args[2][4 * steps + ((cycle - 1) & mask)]; assert(x506 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x507 = x506 - x505; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x507 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x508 = args[2][0 * steps + ((cycle - 0) & mask)]; assert(x508 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x509 = x508 - x491; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x510 = x0 - x509; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x511 = x509 * x510; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x511 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x510 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x512 = args[2][22 * steps + ((cycle - 0) & mask)]; assert(x512 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x513 = args[2][1 * steps + ((cycle - 0) & mask)]; assert(x513 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x514 = x512 - x513; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x514 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x515 = args[2][23 * steps + ((cycle - 0) & mask)]; assert(x515 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x516 = args[2][2 * steps + ((cycle - 0) & mask)]; assert(x516 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x517 = x515 - x516; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x517 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x518 = args[2][24 * steps + ((cycle - 0) & mask)]; assert(x518 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x519 = args[2][3 * steps + ((cycle - 0) & mask)]; assert(x519 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x520 = x518 - x519; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x520 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/sha_mix(recursion::ShaWrap)/sha_cycle(recursion::ShaCycle)/recursion::WomBody/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x521 = args[2][25 * steps + ((cycle - 0) & mask)]; assert(x521 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x522 = args[2][4 * steps + ((cycle - 0) & mask)]; assert(x522 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x523 = x521 - x522; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x523 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } } // loc("zirgen/compiler/edsl/component.cpp":39:15) auto x524 = args[0][17 * steps + ((cycle - 0) & mask)]; assert(x524 != Fp::invalid()); if (x524 != 0) { { host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x525 = host_outs.at(0); auto x526 = host_outs.at(1); auto x527 = host_outs.at(2); auto x528 = host_outs.at(3); auto x529 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][35 * steps + cycle]; assert(reg == Fp::invalid() || reg == x525); reg = x525; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][36 * steps + cycle]; assert(reg == Fp::invalid() || reg == x526); reg = x526; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][37 * steps + cycle]; assert(reg == Fp::invalid() || reg == x527); reg = x527; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][38 * steps + cycle]; assert(reg == Fp::invalid() || reg == x528); reg = x528; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][39 * steps + cycle]; assert(reg == Fp::invalid() || reg == x529); reg = x529; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x530 = host_outs.at(0); auto x531 = host_outs.at(1); auto x532 = host_outs.at(2); auto x533 = host_outs.at(3); auto x534 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][40 * steps + cycle]; assert(reg == Fp::invalid() || reg == x530); reg = x530; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][41 * steps + cycle]; assert(reg == Fp::invalid() || reg == x531); reg = x531; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][42 * steps + cycle]; assert(reg == Fp::invalid() || reg == x532); reg = x532; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][43 * steps + cycle]; assert(reg == Fp::invalid() || reg == x533); reg = x533; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][44 * steps + cycle]; assert(reg == Fp::invalid() || reg == x534); reg = x534; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x535 = host_outs.at(0); auto x536 = host_outs.at(1); auto x537 = host_outs.at(2); auto x538 = host_outs.at(3); auto x539 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][45 * steps + cycle]; assert(reg == Fp::invalid() || reg == x535); reg = x535; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][46 * steps + cycle]; assert(reg == Fp::invalid() || reg == x536); reg = x536; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][47 * steps + cycle]; assert(reg == Fp::invalid() || reg == x537); reg = x537; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][48 * steps + cycle]; assert(reg == Fp::invalid() || reg == x538); reg = x538; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][49 * steps + cycle]; assert(reg == Fp::invalid() || reg == x539); reg = x539; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x540 = host_outs.at(0); auto x541 = host_outs.at(1); auto x542 = host_outs.at(2); auto x543 = host_outs.at(3); auto x544 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][0 * steps + cycle]; assert(reg == Fp::invalid() || reg == x540); reg = x540; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][1 * steps + cycle]; assert(reg == Fp::invalid() || reg == x541); reg = x541; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][2 * steps + cycle]; assert(reg == Fp::invalid() || reg == x542); reg = x542; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][3 * steps + cycle]; assert(reg == Fp::invalid() || reg == x543); reg = x543; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][4 * steps + cycle]; assert(reg == Fp::invalid() || reg == x544); reg = x544; } } // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x545 = args[2][35 * steps + ((cycle - 0) & mask)]; assert(x545 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("zirgen/circuit/recursion/wom.cpp":61:40)) auto x546 = args[2][0 * steps + ((cycle - 1) & mask)]; assert(x546 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x547 = x545 - x546; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x548 = x0 - x547; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x549 = x547 * x548; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x549 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x548 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x550 = args[2][36 * steps + ((cycle - 0) & mask)]; assert(x550 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x551 = args[2][1 * steps + ((cycle - 1) & mask)]; assert(x551 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x552 = x551 - x550; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x552 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x553 = args[2][37 * steps + ((cycle - 0) & mask)]; assert(x553 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x554 = args[2][2 * steps + ((cycle - 1) & mask)]; assert(x554 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x555 = x554 - x553; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x555 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x556 = args[2][38 * steps + ((cycle - 0) & mask)]; assert(x556 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x557 = args[2][3 * steps + ((cycle - 1) & mask)]; assert(x557 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x558 = x557 - x556; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x558 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x559 = args[2][39 * steps + ((cycle - 0) & mask)]; assert(x559 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x560 = args[2][4 * steps + ((cycle - 1) & mask)]; assert(x560 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x561 = x560 - x559; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x561 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x562 = args[2][40 * steps + ((cycle - 0) & mask)]; assert(x562 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x563 = x562 - x545; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x564 = x0 - x563; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x565 = x563 * x564; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x565 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x564 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x566 = args[2][36 * steps + ((cycle - 0) & mask)]; assert(x566 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x567 = args[2][41 * steps + ((cycle - 0) & mask)]; assert(x567 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x568 = x566 - x567; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x568 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x569 = args[2][37 * steps + ((cycle - 0) & mask)]; assert(x569 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x570 = args[2][42 * steps + ((cycle - 0) & mask)]; assert(x570 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x571 = x569 - x570; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x571 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x572 = args[2][38 * steps + ((cycle - 0) & mask)]; assert(x572 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x573 = args[2][43 * steps + ((cycle - 0) & mask)]; assert(x573 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x574 = x572 - x573; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x574 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x575 = args[2][39 * steps + ((cycle - 0) & mask)]; assert(x575 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x576 = args[2][44 * steps + ((cycle - 0) & mask)]; assert(x576 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x577 = x575 - x576; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x577 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x578 = args[2][45 * steps + ((cycle - 0) & mask)]; assert(x578 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x579 = x578 - x562; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x580 = x0 - x579; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x581 = x579 * x580; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x581 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x580 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x582 = args[2][41 * steps + ((cycle - 0) & mask)]; assert(x582 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x583 = args[2][46 * steps + ((cycle - 0) & mask)]; assert(x583 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x584 = x582 - x583; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x584 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x585 = args[2][42 * steps + ((cycle - 0) & mask)]; assert(x585 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x586 = args[2][47 * steps + ((cycle - 0) & mask)]; assert(x586 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x587 = x585 - x586; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x587 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x588 = args[2][43 * steps + ((cycle - 0) & mask)]; assert(x588 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x589 = args[2][48 * steps + ((cycle - 0) & mask)]; assert(x589 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x590 = x588 - x589; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x590 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x591 = args[2][44 * steps + ((cycle - 0) & mask)]; assert(x591 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x592 = args[2][49 * steps + ((cycle - 0) & mask)]; assert(x592 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x593 = x591 - x592; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x593 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x594 = args[2][0 * steps + ((cycle - 0) & mask)]; assert(x594 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x595 = x594 - x578; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x596 = x0 - x595; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x597 = x595 * x596; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x597 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x596 != 0) { // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x598 = args[2][46 * steps + ((cycle - 0) & mask)]; assert(x598 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x599 = args[2][1 * steps + ((cycle - 0) & mask)]; assert(x599 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x600 = x598 - x599; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x600 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x601 = args[2][47 * steps + ((cycle - 0) & mask)]; assert(x601 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x602 = args[2][2 * steps + ((cycle - 0) & mask)]; assert(x602 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x603 = x601 - x602; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x603 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x604 = args[2][48 * steps + ((cycle - 0) & mask)]; assert(x604 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x605 = args[2][3 * steps + ((cycle - 0) & mask)]; assert(x605 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x606 = x604 - x605; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x606 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/macro_ops(recursion::MacroOp)/mux(Mux)/set_global(recursion::SetGlobal)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x607 = args[2][49 * steps + ((cycle - 0) & mask)]; assert(x607 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x608 = args[2][4 * steps + ((cycle - 0) & mask)]; assert(x608 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x609 = x607 - x608; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x609 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } } } if (x4 != 0) { { host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x610 = host_outs.at(0); auto x611 = host_outs.at(1); auto x612 = host_outs.at(2); auto x613 = host_outs.at(3); auto x614 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][50 * steps + cycle]; assert(reg == Fp::invalid() || reg == x610); reg = x610; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][51 * steps + cycle]; assert(reg == Fp::invalid() || reg == x611); reg = x611; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][52 * steps + cycle]; assert(reg == Fp::invalid() || reg == x612); reg = x612; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][53 * steps + cycle]; assert(reg == Fp::invalid() || reg == x613); reg = x613; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][54 * steps + cycle]; assert(reg == Fp::invalid() || reg == x614); reg = x614; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x615 = host_outs.at(0); auto x616 = host_outs.at(1); auto x617 = host_outs.at(2); auto x618 = host_outs.at(3); auto x619 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][55 * steps + cycle]; assert(reg == Fp::invalid() || reg == x615); reg = x615; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][56 * steps + cycle]; assert(reg == Fp::invalid() || reg == x616); reg = x616; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][57 * steps + cycle]; assert(reg == Fp::invalid() || reg == x617); reg = x617; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][58 * steps + cycle]; assert(reg == Fp::invalid() || reg == x618); reg = x618; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][59 * steps + cycle]; assert(reg == Fp::invalid() || reg == x619); reg = x619; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x620 = host_outs.at(0); auto x621 = host_outs.at(1); auto x622 = host_outs.at(2); auto x623 = host_outs.at(3); auto x624 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][60 * steps + cycle]; assert(reg == Fp::invalid() || reg == x620); reg = x620; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][61 * steps + cycle]; assert(reg == Fp::invalid() || reg == x621); reg = x621; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][62 * steps + cycle]; assert(reg == Fp::invalid() || reg == x622); reg = x622; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][63 * steps + cycle]; assert(reg == Fp::invalid() || reg == x623); reg = x623; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][64 * steps + cycle]; assert(reg == Fp::invalid() || reg == x624); reg = x624; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x625 = host_outs.at(0); auto x626 = host_outs.at(1); auto x627 = host_outs.at(2); auto x628 = host_outs.at(3); auto x629 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][65 * steps + cycle]; assert(reg == Fp::invalid() || reg == x625); reg = x625; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][66 * steps + cycle]; assert(reg == Fp::invalid() || reg == x626); reg = x626; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][67 * steps + cycle]; assert(reg == Fp::invalid() || reg == x627); reg = x627; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][68 * steps + cycle]; assert(reg == Fp::invalid() || reg == x628); reg = x628; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][69 * steps + cycle]; assert(reg == Fp::invalid() || reg == x629); reg = x629; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x630 = host_outs.at(0); auto x631 = host_outs.at(1); auto x632 = host_outs.at(2); auto x633 = host_outs.at(3); auto x634 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][70 * steps + cycle]; assert(reg == Fp::invalid() || reg == x630); reg = x630; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][71 * steps + cycle]; assert(reg == Fp::invalid() || reg == x631); reg = x631; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][72 * steps + cycle]; assert(reg == Fp::invalid() || reg == x632); reg = x632; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][73 * steps + cycle]; assert(reg == Fp::invalid() || reg == x633); reg = x633; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][74 * steps + cycle]; assert(reg == Fp::invalid() || reg == x634); reg = x634; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x635 = host_outs.at(0); auto x636 = host_outs.at(1); auto x637 = host_outs.at(2); auto x638 = host_outs.at(3); auto x639 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][75 * steps + cycle]; assert(reg == Fp::invalid() || reg == x635); reg = x635; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][76 * steps + cycle]; assert(reg == Fp::invalid() || reg == x636); reg = x636; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][77 * steps + cycle]; assert(reg == Fp::invalid() || reg == x637); reg = x637; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][78 * steps + cycle]; assert(reg == Fp::invalid() || reg == x638); reg = x638; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][79 * steps + cycle]; assert(reg == Fp::invalid() || reg == x639); reg = x639; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x640 = host_outs.at(0); auto x641 = host_outs.at(1); auto x642 = host_outs.at(2); auto x643 = host_outs.at(3); auto x644 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][80 * steps + cycle]; assert(reg == Fp::invalid() || reg == x640); reg = x640; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][81 * steps + cycle]; assert(reg == Fp::invalid() || reg == x641); reg = x641; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][82 * steps + cycle]; assert(reg == Fp::invalid() || reg == x642); reg = x642; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][83 * steps + cycle]; assert(reg == Fp::invalid() || reg == x643); reg = x643; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][84 * steps + cycle]; assert(reg == Fp::invalid() || reg == x644); reg = x644; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x645 = host_outs.at(0); auto x646 = host_outs.at(1); auto x647 = host_outs.at(2); auto x648 = host_outs.at(3); auto x649 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][85 * steps + cycle]; assert(reg == Fp::invalid() || reg == x645); reg = x645; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][86 * steps + cycle]; assert(reg == Fp::invalid() || reg == x646); reg = x646; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][87 * steps + cycle]; assert(reg == Fp::invalid() || reg == x647); reg = x647; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][88 * steps + cycle]; assert(reg == Fp::invalid() || reg == x648); reg = x648; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][89 * steps + cycle]; assert(reg == Fp::invalid() || reg == x649); reg = x649; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x650 = host_outs.at(0); auto x651 = host_outs.at(1); auto x652 = host_outs.at(2); auto x653 = host_outs.at(3); auto x654 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][0 * steps + cycle]; assert(reg == Fp::invalid() || reg == x650); reg = x650; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][1 * steps + cycle]; assert(reg == Fp::invalid() || reg == x651); reg = x651; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][2 * steps + cycle]; assert(reg == Fp::invalid() || reg == x652); reg = x652; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][3 * steps + cycle]; assert(reg == Fp::invalid() || reg == x653); reg = x653; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][4 * steps + cycle]; assert(reg == Fp::invalid() || reg == x654); reg = x654; } } // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x655 = args[2][50 * steps + ((cycle - 0) & mask)]; assert(x655 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("zirgen/circuit/recursion/wom.cpp":61:40)) auto x656 = args[2][0 * steps + ((cycle - 1) & mask)]; assert(x656 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x657 = x655 - x656; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x658 = x0 - x657; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x659 = x657 * x658; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x659 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x658 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x660 = args[2][51 * steps + ((cycle - 0) & mask)]; assert(x660 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x661 = args[2][1 * steps + ((cycle - 1) & mask)]; assert(x661 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x662 = x661 - x660; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x662 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x663 = args[2][52 * steps + ((cycle - 0) & mask)]; assert(x663 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x664 = args[2][2 * steps + ((cycle - 1) & mask)]; assert(x664 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x665 = x664 - x663; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x665 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x666 = args[2][53 * steps + ((cycle - 0) & mask)]; assert(x666 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x667 = args[2][3 * steps + ((cycle - 1) & mask)]; assert(x667 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x668 = x667 - x666; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x668 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x669 = args[2][54 * steps + ((cycle - 0) & mask)]; assert(x669 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x670 = args[2][4 * steps + ((cycle - 1) & mask)]; assert(x670 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x671 = x670 - x669; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x671 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x672 = args[2][55 * steps + ((cycle - 0) & mask)]; assert(x672 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x673 = x672 - x655; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x674 = x0 - x673; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x675 = x673 * x674; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x675 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x674 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x676 = args[2][51 * steps + ((cycle - 0) & mask)]; assert(x676 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x677 = args[2][56 * steps + ((cycle - 0) & mask)]; assert(x677 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x678 = x676 - x677; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x678 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x679 = args[2][52 * steps + ((cycle - 0) & mask)]; assert(x679 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x680 = args[2][57 * steps + ((cycle - 0) & mask)]; assert(x680 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x681 = x679 - x680; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x681 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x682 = args[2][53 * steps + ((cycle - 0) & mask)]; assert(x682 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x683 = args[2][58 * steps + ((cycle - 0) & mask)]; assert(x683 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x684 = x682 - x683; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x684 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x685 = args[2][54 * steps + ((cycle - 0) & mask)]; assert(x685 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x686 = args[2][59 * steps + ((cycle - 0) & mask)]; assert(x686 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x687 = x685 - x686; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x687 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x688 = args[2][60 * steps + ((cycle - 0) & mask)]; assert(x688 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x689 = x688 - x672; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x690 = x0 - x689; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x691 = x689 * x690; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x691 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x690 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x692 = args[2][56 * steps + ((cycle - 0) & mask)]; assert(x692 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x693 = args[2][61 * steps + ((cycle - 0) & mask)]; assert(x693 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x694 = x692 - x693; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x694 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x695 = args[2][57 * steps + ((cycle - 0) & mask)]; assert(x695 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x696 = args[2][62 * steps + ((cycle - 0) & mask)]; assert(x696 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x697 = x695 - x696; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x697 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x698 = args[2][58 * steps + ((cycle - 0) & mask)]; assert(x698 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x699 = args[2][63 * steps + ((cycle - 0) & mask)]; assert(x699 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x700 = x698 - x699; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x700 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x701 = args[2][59 * steps + ((cycle - 0) & mask)]; assert(x701 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x702 = args[2][64 * steps + ((cycle - 0) & mask)]; assert(x702 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x703 = x701 - x702; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x703 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x704 = args[2][65 * steps + ((cycle - 0) & mask)]; assert(x704 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x705 = x704 - x688; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x706 = x0 - x705; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x707 = x705 * x706; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x707 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x706 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x708 = args[2][61 * steps + ((cycle - 0) & mask)]; assert(x708 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x709 = args[2][66 * steps + ((cycle - 0) & mask)]; assert(x709 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x710 = x708 - x709; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x710 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x711 = args[2][62 * steps + ((cycle - 0) & mask)]; assert(x711 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x712 = args[2][67 * steps + ((cycle - 0) & mask)]; assert(x712 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x713 = x711 - x712; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x713 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x714 = args[2][63 * steps + ((cycle - 0) & mask)]; assert(x714 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x715 = args[2][68 * steps + ((cycle - 0) & mask)]; assert(x715 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x716 = x714 - x715; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x716 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x717 = args[2][64 * steps + ((cycle - 0) & mask)]; assert(x717 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x718 = args[2][69 * steps + ((cycle - 0) & mask)]; assert(x718 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x719 = x717 - x718; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x719 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x720 = args[2][70 * steps + ((cycle - 0) & mask)]; assert(x720 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x721 = x720 - x704; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x722 = x0 - x721; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x723 = x721 * x722; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x723 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x722 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x724 = args[2][66 * steps + ((cycle - 0) & mask)]; assert(x724 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x725 = args[2][71 * steps + ((cycle - 0) & mask)]; assert(x725 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x726 = x724 - x725; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x726 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x727 = args[2][67 * steps + ((cycle - 0) & mask)]; assert(x727 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x728 = args[2][72 * steps + ((cycle - 0) & mask)]; assert(x728 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x729 = x727 - x728; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x729 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x730 = args[2][68 * steps + ((cycle - 0) & mask)]; assert(x730 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x731 = args[2][73 * steps + ((cycle - 0) & mask)]; assert(x731 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x732 = x730 - x731; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x732 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x733 = args[2][69 * steps + ((cycle - 0) & mask)]; assert(x733 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x734 = args[2][74 * steps + ((cycle - 0) & mask)]; assert(x734 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x735 = x733 - x734; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x735 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x736 = args[2][75 * steps + ((cycle - 0) & mask)]; assert(x736 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x737 = x736 - x720; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x738 = x0 - x737; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x739 = x737 * x738; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x739 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x738 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x740 = args[2][71 * steps + ((cycle - 0) & mask)]; assert(x740 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x741 = args[2][76 * steps + ((cycle - 0) & mask)]; assert(x741 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x742 = x740 - x741; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x742 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x743 = args[2][72 * steps + ((cycle - 0) & mask)]; assert(x743 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x744 = args[2][77 * steps + ((cycle - 0) & mask)]; assert(x744 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x745 = x743 - x744; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x745 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x746 = args[2][73 * steps + ((cycle - 0) & mask)]; assert(x746 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x747 = args[2][78 * steps + ((cycle - 0) & mask)]; assert(x747 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x748 = x746 - x747; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x748 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x749 = args[2][74 * steps + ((cycle - 0) & mask)]; assert(x749 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x750 = args[2][79 * steps + ((cycle - 0) & mask)]; assert(x750 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x751 = x749 - x750; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x751 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x752 = args[2][80 * steps + ((cycle - 0) & mask)]; assert(x752 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x753 = x752 - x736; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x754 = x0 - x753; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x755 = x753 * x754; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x755 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x754 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x756 = args[2][76 * steps + ((cycle - 0) & mask)]; assert(x756 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x757 = args[2][81 * steps + ((cycle - 0) & mask)]; assert(x757 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x758 = x756 - x757; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x758 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x759 = args[2][77 * steps + ((cycle - 0) & mask)]; assert(x759 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x760 = args[2][82 * steps + ((cycle - 0) & mask)]; assert(x760 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x761 = x759 - x760; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x761 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x762 = args[2][78 * steps + ((cycle - 0) & mask)]; assert(x762 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x763 = args[2][83 * steps + ((cycle - 0) & mask)]; assert(x763 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x764 = x762 - x763; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x764 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x765 = args[2][79 * steps + ((cycle - 0) & mask)]; assert(x765 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x766 = args[2][84 * steps + ((cycle - 0) & mask)]; assert(x766 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x767 = x765 - x766; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x767 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x768 = args[2][85 * steps + ((cycle - 0) & mask)]; assert(x768 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x769 = x768 - x752; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x770 = x0 - x769; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x771 = x769 * x770; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x771 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x770 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x772 = args[2][81 * steps + ((cycle - 0) & mask)]; assert(x772 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x773 = args[2][86 * steps + ((cycle - 0) & mask)]; assert(x773 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x774 = x772 - x773; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x774 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x775 = args[2][82 * steps + ((cycle - 0) & mask)]; assert(x775 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x776 = args[2][87 * steps + ((cycle - 0) & mask)]; assert(x776 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x777 = x775 - x776; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x777 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x778 = args[2][83 * steps + ((cycle - 0) & mask)]; assert(x778 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x779 = args[2][88 * steps + ((cycle - 0) & mask)]; assert(x779 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x780 = x778 - x779; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x780 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x781 = args[2][84 * steps + ((cycle - 0) & mask)]; assert(x781 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x782 = args[2][89 * steps + ((cycle - 0) & mask)]; assert(x782 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x783 = x781 - x782; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x783 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x784 = args[2][0 * steps + ((cycle - 0) & mask)]; assert(x784 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x785 = x784 - x768; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x786 = x0 - x785; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x787 = x785 * x786; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x787 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x786 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x788 = args[2][86 * steps + ((cycle - 0) & mask)]; assert(x788 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x789 = args[2][1 * steps + ((cycle - 0) & mask)]; assert(x789 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x790 = x788 - x789; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x790 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x791 = args[2][87 * steps + ((cycle - 0) & mask)]; assert(x791 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x792 = args[2][2 * steps + ((cycle - 0) & mask)]; assert(x792 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x793 = x791 - x792; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x793 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x794 = args[2][88 * steps + ((cycle - 0) & mask)]; assert(x794 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x795 = args[2][3 * steps + ((cycle - 0) & mask)]; assert(x795 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x796 = x794 - x795; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x796 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_load(recursion::Poseidon2Load)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x797 = args[2][89 * steps + ((cycle - 0) & mask)]; assert(x797 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x798 = args[2][4 * steps + ((cycle - 0) & mask)]; assert(x798 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x799 = x797 - x798; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x799 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } } if (x5 != 0) { // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("zirgen/circuit/recursion/wom.cpp":22:27)) auto x800 = args[2][0 * steps + ((cycle - 1) & mask)]; assert(x800 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":44:14)) auto x801 = args[2][1 * steps + ((cycle - 1) & mask)]; assert(x801 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":44:14)) auto x802 = args[2][2 * steps + ((cycle - 1) & mask)]; assert(x802 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":44:14)) auto x803 = args[2][3 * steps + ((cycle - 1) & mask)]; assert(x803 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":44:14)) auto x804 = args[2][4 * steps + ((cycle - 1) & mask)]; assert(x804 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][0 * steps + cycle]; assert(reg == Fp::invalid() || reg == x800); reg = x800; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][1 * steps + cycle]; assert(reg == Fp::invalid() || reg == x801); reg = x801; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][2 * steps + cycle]; assert(reg == Fp::invalid() || reg == x802); reg = x802; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][3 * steps + cycle]; assert(reg == Fp::invalid() || reg == x803); reg = x803; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][4 * steps + cycle]; assert(reg == Fp::invalid() || reg == x804); reg = x804; } } if (x6 != 0) { // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("zirgen/circuit/recursion/wom.cpp":22:27)) auto x805 = args[2][0 * steps + ((cycle - 1) & mask)]; assert(x805 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":44:14)) auto x806 = args[2][1 * steps + ((cycle - 1) & mask)]; assert(x806 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":44:14)) auto x807 = args[2][2 * steps + ((cycle - 1) & mask)]; assert(x807 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":44:14)) auto x808 = args[2][3 * steps + ((cycle - 1) & mask)]; assert(x808 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":44:14)) auto x809 = args[2][4 * steps + ((cycle - 1) & mask)]; assert(x809 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][0 * steps + cycle]; assert(reg == Fp::invalid() || reg == x805); reg = x805; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][1 * steps + cycle]; assert(reg == Fp::invalid() || reg == x806); reg = x806; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][2 * steps + cycle]; assert(reg == Fp::invalid() || reg == x807); reg = x807; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][3 * steps + cycle]; assert(reg == Fp::invalid() || reg == x808); reg = x808; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][4 * steps + cycle]; assert(reg == Fp::invalid() || reg == x809); reg = x809; } } if (x7 != 0) { { host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x810 = host_outs.at(0); auto x811 = host_outs.at(1); auto x812 = host_outs.at(2); auto x813 = host_outs.at(3); auto x814 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][50 * steps + cycle]; assert(reg == Fp::invalid() || reg == x810); reg = x810; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][51 * steps + cycle]; assert(reg == Fp::invalid() || reg == x811); reg = x811; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][52 * steps + cycle]; assert(reg == Fp::invalid() || reg == x812); reg = x812; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][53 * steps + cycle]; assert(reg == Fp::invalid() || reg == x813); reg = x813; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][54 * steps + cycle]; assert(reg == Fp::invalid() || reg == x814); reg = x814; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x815 = host_outs.at(0); auto x816 = host_outs.at(1); auto x817 = host_outs.at(2); auto x818 = host_outs.at(3); auto x819 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][55 * steps + cycle]; assert(reg == Fp::invalid() || reg == x815); reg = x815; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][56 * steps + cycle]; assert(reg == Fp::invalid() || reg == x816); reg = x816; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][57 * steps + cycle]; assert(reg == Fp::invalid() || reg == x817); reg = x817; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][58 * steps + cycle]; assert(reg == Fp::invalid() || reg == x818); reg = x818; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][59 * steps + cycle]; assert(reg == Fp::invalid() || reg == x819); reg = x819; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x820 = host_outs.at(0); auto x821 = host_outs.at(1); auto x822 = host_outs.at(2); auto x823 = host_outs.at(3); auto x824 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][60 * steps + cycle]; assert(reg == Fp::invalid() || reg == x820); reg = x820; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][61 * steps + cycle]; assert(reg == Fp::invalid() || reg == x821); reg = x821; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][62 * steps + cycle]; assert(reg == Fp::invalid() || reg == x822); reg = x822; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][63 * steps + cycle]; assert(reg == Fp::invalid() || reg == x823); reg = x823; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][64 * steps + cycle]; assert(reg == Fp::invalid() || reg == x824); reg = x824; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x825 = host_outs.at(0); auto x826 = host_outs.at(1); auto x827 = host_outs.at(2); auto x828 = host_outs.at(3); auto x829 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][65 * steps + cycle]; assert(reg == Fp::invalid() || reg == x825); reg = x825; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][66 * steps + cycle]; assert(reg == Fp::invalid() || reg == x826); reg = x826; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][67 * steps + cycle]; assert(reg == Fp::invalid() || reg == x827); reg = x827; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][68 * steps + cycle]; assert(reg == Fp::invalid() || reg == x828); reg = x828; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][69 * steps + cycle]; assert(reg == Fp::invalid() || reg == x829); reg = x829; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x830 = host_outs.at(0); auto x831 = host_outs.at(1); auto x832 = host_outs.at(2); auto x833 = host_outs.at(3); auto x834 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][70 * steps + cycle]; assert(reg == Fp::invalid() || reg == x830); reg = x830; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][71 * steps + cycle]; assert(reg == Fp::invalid() || reg == x831); reg = x831; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][72 * steps + cycle]; assert(reg == Fp::invalid() || reg == x832); reg = x832; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][73 * steps + cycle]; assert(reg == Fp::invalid() || reg == x833); reg = x833; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][74 * steps + cycle]; assert(reg == Fp::invalid() || reg == x834); reg = x834; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x835 = host_outs.at(0); auto x836 = host_outs.at(1); auto x837 = host_outs.at(2); auto x838 = host_outs.at(3); auto x839 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][75 * steps + cycle]; assert(reg == Fp::invalid() || reg == x835); reg = x835; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][76 * steps + cycle]; assert(reg == Fp::invalid() || reg == x836); reg = x836; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][77 * steps + cycle]; assert(reg == Fp::invalid() || reg == x837); reg = x837; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][78 * steps + cycle]; assert(reg == Fp::invalid() || reg == x838); reg = x838; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][79 * steps + cycle]; assert(reg == Fp::invalid() || reg == x839); reg = x839; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x840 = host_outs.at(0); auto x841 = host_outs.at(1); auto x842 = host_outs.at(2); auto x843 = host_outs.at(3); auto x844 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][80 * steps + cycle]; assert(reg == Fp::invalid() || reg == x840); reg = x840; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][81 * steps + cycle]; assert(reg == Fp::invalid() || reg == x841); reg = x841; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][82 * steps + cycle]; assert(reg == Fp::invalid() || reg == x842); reg = x842; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][83 * steps + cycle]; assert(reg == Fp::invalid() || reg == x843); reg = x843; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][84 * steps + cycle]; assert(reg == Fp::invalid() || reg == x844); reg = x844; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x845 = host_outs.at(0); auto x846 = host_outs.at(1); auto x847 = host_outs.at(2); auto x848 = host_outs.at(3); auto x849 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][85 * steps + cycle]; assert(reg == Fp::invalid() || reg == x845); reg = x845; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][86 * steps + cycle]; assert(reg == Fp::invalid() || reg == x846); reg = x846; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][87 * steps + cycle]; assert(reg == Fp::invalid() || reg == x847); reg = x847; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][88 * steps + cycle]; assert(reg == Fp::invalid() || reg == x848); reg = x848; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][89 * steps + cycle]; assert(reg == Fp::invalid() || reg == x849); reg = x849; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x850 = host_outs.at(0); auto x851 = host_outs.at(1); auto x852 = host_outs.at(2); auto x853 = host_outs.at(3); auto x854 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][0 * steps + cycle]; assert(reg == Fp::invalid() || reg == x850); reg = x850; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][1 * steps + cycle]; assert(reg == Fp::invalid() || reg == x851); reg = x851; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][2 * steps + cycle]; assert(reg == Fp::invalid() || reg == x852); reg = x852; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][3 * steps + cycle]; assert(reg == Fp::invalid() || reg == x853); reg = x853; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][4 * steps + cycle]; assert(reg == Fp::invalid() || reg == x854); reg = x854; } } // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x855 = args[2][50 * steps + ((cycle - 0) & mask)]; assert(x855 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("zirgen/circuit/recursion/wom.cpp":61:40)) auto x856 = args[2][0 * steps + ((cycle - 1) & mask)]; assert(x856 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x857 = x855 - x856; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x858 = x0 - x857; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x859 = x857 * x858; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x859 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x858 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x860 = args[2][51 * steps + ((cycle - 0) & mask)]; assert(x860 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x861 = args[2][1 * steps + ((cycle - 1) & mask)]; assert(x861 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x862 = x861 - x860; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x862 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x863 = args[2][52 * steps + ((cycle - 0) & mask)]; assert(x863 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x864 = args[2][2 * steps + ((cycle - 1) & mask)]; assert(x864 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x865 = x864 - x863; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x865 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x866 = args[2][53 * steps + ((cycle - 0) & mask)]; assert(x866 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x867 = args[2][3 * steps + ((cycle - 1) & mask)]; assert(x867 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x868 = x867 - x866; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x868 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x869 = args[2][54 * steps + ((cycle - 0) & mask)]; assert(x869 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x870 = args[2][4 * steps + ((cycle - 1) & mask)]; assert(x870 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x871 = x870 - x869; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x871 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x872 = args[2][55 * steps + ((cycle - 0) & mask)]; assert(x872 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x873 = x872 - x855; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x874 = x0 - x873; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x875 = x873 * x874; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x875 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x874 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x876 = args[2][51 * steps + ((cycle - 0) & mask)]; assert(x876 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x877 = args[2][56 * steps + ((cycle - 0) & mask)]; assert(x877 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x878 = x876 - x877; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x878 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x879 = args[2][52 * steps + ((cycle - 0) & mask)]; assert(x879 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x880 = args[2][57 * steps + ((cycle - 0) & mask)]; assert(x880 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x881 = x879 - x880; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x881 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x882 = args[2][53 * steps + ((cycle - 0) & mask)]; assert(x882 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x883 = args[2][58 * steps + ((cycle - 0) & mask)]; assert(x883 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x884 = x882 - x883; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x884 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x885 = args[2][54 * steps + ((cycle - 0) & mask)]; assert(x885 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x886 = args[2][59 * steps + ((cycle - 0) & mask)]; assert(x886 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x887 = x885 - x886; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x887 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x888 = args[2][60 * steps + ((cycle - 0) & mask)]; assert(x888 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x889 = x888 - x872; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x890 = x0 - x889; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x891 = x889 * x890; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x891 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x890 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x892 = args[2][56 * steps + ((cycle - 0) & mask)]; assert(x892 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x893 = args[2][61 * steps + ((cycle - 0) & mask)]; assert(x893 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x894 = x892 - x893; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x894 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x895 = args[2][57 * steps + ((cycle - 0) & mask)]; assert(x895 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x896 = args[2][62 * steps + ((cycle - 0) & mask)]; assert(x896 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x897 = x895 - x896; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x897 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x898 = args[2][58 * steps + ((cycle - 0) & mask)]; assert(x898 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x899 = args[2][63 * steps + ((cycle - 0) & mask)]; assert(x899 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x900 = x898 - x899; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x900 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x901 = args[2][59 * steps + ((cycle - 0) & mask)]; assert(x901 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x902 = args[2][64 * steps + ((cycle - 0) & mask)]; assert(x902 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x903 = x901 - x902; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x903 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x904 = args[2][65 * steps + ((cycle - 0) & mask)]; assert(x904 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x905 = x904 - x888; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x906 = x0 - x905; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x907 = x905 * x906; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x907 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x906 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x908 = args[2][61 * steps + ((cycle - 0) & mask)]; assert(x908 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x909 = args[2][66 * steps + ((cycle - 0) & mask)]; assert(x909 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x910 = x908 - x909; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x910 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x911 = args[2][62 * steps + ((cycle - 0) & mask)]; assert(x911 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x912 = args[2][67 * steps + ((cycle - 0) & mask)]; assert(x912 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x913 = x911 - x912; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x913 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x914 = args[2][63 * steps + ((cycle - 0) & mask)]; assert(x914 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x915 = args[2][68 * steps + ((cycle - 0) & mask)]; assert(x915 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x916 = x914 - x915; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x916 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x917 = args[2][64 * steps + ((cycle - 0) & mask)]; assert(x917 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x918 = args[2][69 * steps + ((cycle - 0) & mask)]; assert(x918 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x919 = x917 - x918; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x919 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x920 = args[2][70 * steps + ((cycle - 0) & mask)]; assert(x920 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x921 = x920 - x904; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x922 = x0 - x921; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x923 = x921 * x922; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x923 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x922 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x924 = args[2][66 * steps + ((cycle - 0) & mask)]; assert(x924 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x925 = args[2][71 * steps + ((cycle - 0) & mask)]; assert(x925 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x926 = x924 - x925; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x926 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x927 = args[2][67 * steps + ((cycle - 0) & mask)]; assert(x927 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x928 = args[2][72 * steps + ((cycle - 0) & mask)]; assert(x928 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x929 = x927 - x928; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x929 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x930 = args[2][68 * steps + ((cycle - 0) & mask)]; assert(x930 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x931 = args[2][73 * steps + ((cycle - 0) & mask)]; assert(x931 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x932 = x930 - x931; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x932 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x933 = args[2][69 * steps + ((cycle - 0) & mask)]; assert(x933 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x934 = args[2][74 * steps + ((cycle - 0) & mask)]; assert(x934 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x935 = x933 - x934; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x935 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x936 = args[2][75 * steps + ((cycle - 0) & mask)]; assert(x936 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x937 = x936 - x920; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x938 = x0 - x937; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x939 = x937 * x938; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x939 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x938 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x940 = args[2][71 * steps + ((cycle - 0) & mask)]; assert(x940 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x941 = args[2][76 * steps + ((cycle - 0) & mask)]; assert(x941 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x942 = x940 - x941; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x942 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x943 = args[2][72 * steps + ((cycle - 0) & mask)]; assert(x943 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x944 = args[2][77 * steps + ((cycle - 0) & mask)]; assert(x944 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x945 = x943 - x944; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x945 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x946 = args[2][73 * steps + ((cycle - 0) & mask)]; assert(x946 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x947 = args[2][78 * steps + ((cycle - 0) & mask)]; assert(x947 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x948 = x946 - x947; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x948 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x949 = args[2][74 * steps + ((cycle - 0) & mask)]; assert(x949 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x950 = args[2][79 * steps + ((cycle - 0) & mask)]; assert(x950 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x951 = x949 - x950; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x951 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x952 = args[2][80 * steps + ((cycle - 0) & mask)]; assert(x952 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x953 = x952 - x936; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x954 = x0 - x953; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x955 = x953 * x954; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x955 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x954 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x956 = args[2][76 * steps + ((cycle - 0) & mask)]; assert(x956 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x957 = args[2][81 * steps + ((cycle - 0) & mask)]; assert(x957 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x958 = x956 - x957; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x958 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x959 = args[2][77 * steps + ((cycle - 0) & mask)]; assert(x959 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x960 = args[2][82 * steps + ((cycle - 0) & mask)]; assert(x960 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x961 = x959 - x960; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x961 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x962 = args[2][78 * steps + ((cycle - 0) & mask)]; assert(x962 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x963 = args[2][83 * steps + ((cycle - 0) & mask)]; assert(x963 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x964 = x962 - x963; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x964 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x965 = args[2][79 * steps + ((cycle - 0) & mask)]; assert(x965 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x966 = args[2][84 * steps + ((cycle - 0) & mask)]; assert(x966 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x967 = x965 - x966; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x967 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x968 = args[2][85 * steps + ((cycle - 0) & mask)]; assert(x968 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x969 = x968 - x952; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x970 = x0 - x969; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x971 = x969 * x970; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x971 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x970 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x972 = args[2][81 * steps + ((cycle - 0) & mask)]; assert(x972 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x973 = args[2][86 * steps + ((cycle - 0) & mask)]; assert(x973 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x974 = x972 - x973; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x974 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x975 = args[2][82 * steps + ((cycle - 0) & mask)]; assert(x975 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x976 = args[2][87 * steps + ((cycle - 0) & mask)]; assert(x976 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x977 = x975 - x976; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x977 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x978 = args[2][83 * steps + ((cycle - 0) & mask)]; assert(x978 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x979 = args[2][88 * steps + ((cycle - 0) & mask)]; assert(x979 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x980 = x978 - x979; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x980 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x981 = args[2][84 * steps + ((cycle - 0) & mask)]; assert(x981 != Fp::invalid()); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x982 = args[2][89 * steps + ((cycle - 0) & mask)]; assert(x982 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x983 = x981 - x982; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x983 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x984 = args[2][0 * steps + ((cycle - 0) & mask)]; assert(x984 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x985 = x984 - x968; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x986 = x0 - x985; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x987 = x985 * x986; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x987 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x986 != 0) { // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x988 = args[2][86 * steps + ((cycle - 0) & mask)]; assert(x988 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x989 = args[2][1 * steps + ((cycle - 0) & mask)]; assert(x989 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x990 = x988 - x989; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x990 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x991 = args[2][87 * steps + ((cycle - 0) & mask)]; assert(x991 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x992 = args[2][2 * steps + ((cycle - 0) & mask)]; assert(x992 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x993 = x991 - x992; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x993 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x994 = args[2][88 * steps + ((cycle - 0) & mask)]; assert(x994 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x995 = args[2][3 * steps + ((cycle - 0) & mask)]; assert(x995 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x996 = x994 - x995; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x996 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/poseidon2_store(recursion::Poseidon2Store)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x997 = args[2][89 * steps + ((cycle - 0) & mask)]; assert(x997 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x998 = args[2][4 * steps + ((cycle - 0) & mask)]; assert(x998 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x999 = x997 - x998; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x999 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } } if (x8 != 0) { { host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x1000 = host_outs.at(0); auto x1001 = host_outs.at(1); auto x1002 = host_outs.at(2); auto x1003 = host_outs.at(3); auto x1004 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][15 * steps + cycle]; assert(reg == Fp::invalid() || reg == x1000); reg = x1000; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][16 * steps + cycle]; assert(reg == Fp::invalid() || reg == x1001); reg = x1001; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][17 * steps + cycle]; assert(reg == Fp::invalid() || reg == x1002); reg = x1002; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][18 * steps + cycle]; assert(reg == Fp::invalid() || reg == x1003); reg = x1003; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][19 * steps + cycle]; assert(reg == Fp::invalid() || reg == x1004); reg = x1004; } host(ctx, "plonkRead", "wom", host_args.data(), 0, host_outs.data(), 5); auto x1005 = host_outs.at(0); auto x1006 = host_outs.at(1); auto x1007 = host_outs.at(2); auto x1008 = host_outs.at(3); auto x1009 = host_outs.at(4); // loc("zirgen/circuit/recursion/wom.cpp":31:3) { auto& reg = args[2][0 * steps + cycle]; assert(reg == Fp::invalid() || reg == x1005); reg = x1005; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][1 * steps + cycle]; assert(reg == Fp::invalid() || reg == x1006); reg = x1006; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][2 * steps + cycle]; assert(reg == Fp::invalid() || reg == x1007); reg = x1007; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][3 * steps + cycle]; assert(reg == Fp::invalid() || reg == x1008); reg = x1008; } // loc("zirgen/circuit/recursion/wom.cpp":33:5) { auto& reg = args[2][4 * steps + cycle]; assert(reg == Fp::invalid() || reg == x1009); reg = x1009; } } // loc("top(recursion::Top)/mux(Mux)/checked_bytes(recursion::CheckedBytes)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x1010 = args[2][15 * steps + ((cycle - 0) & mask)]; assert(x1010 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("zirgen/circuit/recursion/wom.cpp":61:40)) auto x1011 = args[2][0 * steps + ((cycle - 1) & mask)]; assert(x1011 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x1012 = x1010 - x1011; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x1013 = x0 - x1012; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x1014 = x1012 * x1013; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x1014 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x1013 != 0) { // loc("top(recursion::Top)/mux(Mux)/checked_bytes(recursion::CheckedBytes)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x1015 = args[2][16 * steps + ((cycle - 0) & mask)]; assert(x1015 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x1016 = args[2][1 * steps + ((cycle - 1) & mask)]; assert(x1016 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x1017 = x1016 - x1015; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x1017 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/checked_bytes(recursion::CheckedBytes)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x1018 = args[2][17 * steps + ((cycle - 0) & mask)]; assert(x1018 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x1019 = args[2][2 * steps + ((cycle - 1) & mask)]; assert(x1019 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x1020 = x1019 - x1018; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x1020 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/checked_bytes(recursion::CheckedBytes)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x1021 = args[2][18 * steps + ((cycle - 0) & mask)]; assert(x1021 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x1022 = args[2][3 * steps + ((cycle - 1) & mask)]; assert(x1022 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x1023 = x1022 - x1021; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x1023 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/checked_bytes(recursion::CheckedBytes)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x1024 = args[2][19 * steps + ((cycle - 0) & mask)]; assert(x1024 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x1025 = args[2][4 * steps + ((cycle - 1) & mask)]; assert(x1025 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x1026 = x1025 - x1024; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x1026 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/addr(Reg)"("./zirgen/compiler/edsl/edsl.h":118:61)) auto x1027 = args[2][0 * steps + ((cycle - 0) & mask)]; assert(x1027 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":62:19) auto x1028 = x1027 - x1010; // loc("zirgen/circuit/recursion/wom.cpp":64:19) auto x1029 = x0 - x1028; // loc("zirgen/circuit/recursion/wom.cpp":64:7) auto x1030 = x1028 * x1029; // loc("zirgen/circuit/recursion/wom.cpp":64:7) if (x1030 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:64"); if (x1029 != 0) { // loc("top(recursion::Top)/mux(Mux)/checked_bytes(recursion::CheckedBytes)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x1031 = args[2][16 * steps + ((cycle - 0) & mask)]; assert(x1031 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[0](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x1032 = args[2][1 * steps + ((cycle - 0) & mask)]; assert(x1032 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x1033 = x1031 - x1032; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x1033 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/checked_bytes(recursion::CheckedBytes)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x1034 = args[2][17 * steps + ((cycle - 0) & mask)]; assert(x1034 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[1](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x1035 = args[2][2 * steps + ((cycle - 0) & mask)]; assert(x1035 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x1036 = x1034 - x1035; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x1036 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/checked_bytes(recursion::CheckedBytes)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x1037 = args[2][18 * steps + ((cycle - 0) & mask)]; assert(x1037 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[2](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x1038 = args[2][3 * steps + ((cycle - 0) & mask)]; assert(x1038 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x1039 = x1037 - x1038; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x1039 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); // loc("top(recursion::Top)/mux(Mux)/checked_bytes(recursion::CheckedBytes)/wom_body(recursion::WomBody)/plonk_body(PlonkBody)/recursion::impl::WomPlonkElement/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:38)) auto x1040 = args[2][19 * steps + ((cycle - 0) & mask)]; assert(x1040 != Fp::invalid()); // loc("top(recursion::Top)/recursion::WomHeader/element(recursion::impl::WomPlonkElement)/data[3](Reg)"("zirgen/circuit/recursion/wom.cpp":68:41)) auto x1041 = args[2][4 * steps + ((cycle - 0) & mask)]; assert(x1041 != Fp::invalid()); // loc("zirgen/circuit/recursion/wom.cpp":68:38) auto x1042 = x1040 - x1041; // loc("zirgen/circuit/recursion/wom.cpp":68:38) if (x1042 != 0) throw std::runtime_error("eqz failed at: zirgen/circuit/recursion/wom.cpp:68"); } } return x1; } } // namespace risc0::circuit::recursion // clang-format on